SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
CAPITULO 8




                 GESTIÓN DE BASES DE DATOS PARA LA WEB

                              CON MYSQL




                               CONTENIDO
Funciones Basicas
Bases de Datos
Tablas
Usuarios
TALLER DE PROGRAMACIÓN WEB




Ing. Jaime Suasnábar Terrel                                Página 2
TALLER DE PROGRAMACIÓN WEB

1.    OPERACIONES BÁSICAS
      Se entra a la base de datos con:
      mysql -u root –p       y     como clave se pone admin.
      En la línea de comandos:

      mysql> SELECT VERSION(), CURRENT_DATE();

      lo cual mostrara:
      +-----------+----------------+
      | version() | current_date() |
      +-----------+----------------+
      | 5.01.49   | 2012-12-06     |
      +-----------+----------------+
      1 row in set (0.00 sec)


      se pueden hacer pequeñas operaciones como:

      mysql> SELECT SIN(PI()/4), (4+1)*5;



      +-------------+---------+
      | SIN(PI()/4) | (4+1)*5 |
      +-------------+---------+
      |    0.707107 |      25 |
      +-------------+---------+
      1 row in set (0.00 sec)



      mysql> select user();



      +----------------+
      | user()         |
      +----------------+
      | root@localhost |
      +----------------+
      1 row in set (0.04 sec)




2.    BASES DE DATOS
      2.1. MOSTRAR LAS BASES DE DATOS
            Para ver las bases de datos existentes se pone:
            mysql> SHOW DATABASES;



            +----------+
            | Database |
            +----------+
            | mysql    |
            | test     |
            +----------+
            2 rows in set (0.00 sec)



Ing. Jaime Suasnábar Terrel                                    Página 3
TALLER DE PROGRAMACIÓN WEB

      2.2. PASOS PARA CREAR BASES DE DATOS


            El comando para crear la base de datos es:

            mysql> CREATE DATABASE prueba;


            esto hará que se cree el directorio prueba en /var/lib/mysql/prueba.

3.    TABLAS
      3.1. CREACIÓN DE TABLAS


            Para crear las tablas de la base de datos se pone:

            mysql> use prueba;

            para elegir la tabla en la que se va ha trabajar


            mysql> create table clientes (nombre varchar(20), edad int(2),
                -> sueldo float(9,2), memo text);


            Tipos posibles de campos

            VARCHAR
            CHAR
            DATE
            TIME
            DATETIME
            TIMESTAMP(N)      Tipo fecha y hora. Se utiliza para generar campos en los
            cuales
                              automáticamente se guardan la fecha y hora de creación
                              o modificación del registro. Ejemplos de formatos:

            TIMESTAMP(14)
            TIMESTAMP(12)
            TIMESTAMP(10)
            TIMESTAMP(8)
            TIMESTAMP(6)
            TIMESTAMP(4)
            TIMESTAMP(2)

            YEAR(2 o 4)
            INTEGER (INT)
            FLOAT
            (-3.402823466E+38 a -1.175494351E-38, 0, y
             1.175494351E-38 a 3.402823466E+38.)
            DOUBLE(M,D)

              2.2250738585072014E-308 a 1.7976931348623157E+308)
            BLOB
            TEXT




Ing. Jaime Suasnábar Terrel                                                        Página 4
TALLER DE PROGRAMACIÓN WEB

            Opciones para los campos
            not null                El valor no puede ser nulo en el campo
            auto_increment automáticamente incrementa el número del registro anterior
            primary key      El PRIMARY KEY es un campo que MySQL usa como índice. Este
            índice puede hacer cosas como:
               Hallar rápidamente filas que acierten una cláusula WHERE.
               Regresar filas de una tabla desde otras tablas cuando se realizan uniones.
               Esto definitivamente te va a ayudar a agilizar sus peticiones también.

            Key               Crea una llave secundaria



      3.2. CREACIÓN DE UNA TABLA CON ÍNDICES O LLAVES:


            Mysql> create table prueba4 (llave1 int(1) not null, llave2 int(1),
            primary key(llave1),key(llave2));


            Toda llave primaria debe ser de tipo not null para que pueda indexar
            correctamente. En este ejemplo el campo llave1 es la llave primaria y el campo
            llave2 es la llave secundaria.


      3.3. CREACIÓN DE CAMPOS PARA BUSCAR TEXTOS EN ESTOS:


            mysql> CREATE TABLE articles (
                ->    id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
                ->    title VARCHAR(200),
                ->    body TEXT,
                ->    FULLTEXT (title,body)
                -> );
            Query OK, 0 rows affected (0.00 sec)



            mysql> INSERT INTO articles VALUES
                -> (0,'MySQL Tutorial', 'DBMS stands for DataBase ...'),
                -> (0,'How To Use MySQL Efficiently', 'After you went through a
            ...'),
                -> (0,'Optimising MySQL','In this tutorial we will show ...'),
                -> (0,'1001 MySQL Trick','1. Never run mysqld as root. 2. ...'),
                -> (0,'MySQL vs. YourSQL', 'In the following database comparison
            ...'),
                -> (0,'MySQL Security', 'When configured properly, MySQL ...');
            Query OK, 6 rows affected (0.00 sec)
            Records: 6 Duplicates: 0 Warnings: 0



            mysql> SELECT * FROM articles
                ->          WHERE MATCH (title,body) AGAINST ('database');
            +----+-------------------+------------------------------------------+
            | id | title             | body                                     |
            +----+-------------------+------------------------------------------+
            | 5 | MySQL vs. YourSQL | In the following database comparison ... |
            | 1 | MySQL Tutorial     | DBMS stands for DataBase ...             |

Ing. Jaime Suasnábar Terrel                                                       Página 5
TALLER DE PROGRAMACIÓN WEB


            +----+-------------------+------------------------------------------+
            2 rows in set (0.00 sec)


            Para ver todas las tablas de la base:
            mysql> show tables;

            +------------------+
            | Tables_in_prueba |
            +------------------+
            | clientes         |
            +------------------+
            1 row in set (0.00 sec)


            Para ver la estructura de la tabla se pone:
            mysql> DESCRIBE clientes;



            +--------+-------------+------+-----+---------+-------+
            | Field | Type            | Null | Key | Default | Extra |
            +--------+-------------+------+-----+---------+-------+
            | nombre | varchar(20) | YES |      | NULL     |         |
            | edad      | int(2)          | YES |       | NULL     |       |
            | sueldo   | float(9,2)    | YES |      | NULL     |       |
            | memo   | text              | YES |       | NULL    |       |
            +--------+-------------+------+-----+---------+-------+
            4 rows in set (0.00 sec)

4.    MODIFICACIÓN DE LA ESTRUCTURA DE UNA TABLA


      4.1. CAMBIA LOS ATRIBUTOS DE UNA COLUMNA QUE YA EXISTE

            ALTER TABLE [nombre_de_la_tabla] CHANGE [nombre_columna] [nombre_columna
            opciones_de _columna];
            ALTER TABLE clientes CHANGE nombre nombreapellido varchar(10);


      4.2. COLOCAR UNA COLUMNA AL FINAL DE LA TABLA

            ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones];
            ALTER TABLE clientes ADD cedula varchar(10);


      4.3. SI SE DESEA CREAR UNA COLUMNA AL INICIO DE UNA TABLA:

            ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones] FIRST;
            ALTER TABLE clientes ADD cedula varchar(10) FIRST;


      4.4. Y SI SE TRATA DE COLOCARLA DESPUÉS DE UNA COLUMNA DADA, ES:

            ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones] AFTER
            [nombre_de_columna];
            ALTER TABLE clientes ADD cedula varchar(10) AFTER nombre;




      4.5. PARA ELIMINARLA, SE UTILIZA ESTE COMANDO:

Ing. Jaime Suasnábar Terrel                                                    Página 6
TALLER DE PROGRAMACIÓN WEB


            ALTER TABLE [nombre_de_la_tabla] DROP [nombre_columna];
            ALTER TABLE clientes DROP cedula;


5.    PARA INSERTAR DATOS A LA TABLA
      Se utiliza la siguiente sentencia:
      mysql> INSERT INTO clientes
          -> VALUES ('Pablo','30','600',NULL);


      Nota: La comilla es obligatorio para el ingreso de datos

      Otra forma de ingresar datos es:

      mysql>   insert   into clientes
          ->   (nombre)
          ->   values
          ->   ('pablo');


      con esta forma se ingresa el nombre pablo en el campo nombre únicamente

      Para insertar datos a la tabla desde un archivo de textos la sentencia es:
      mysql> LOAD DATA LOCAL INFILE "datos.txt" INTO TABLE clientes;


      el archivo debe tener el siguiente formato:
      Pablo 30 600 N
      Juan 20 N         bueno

      El símbolo N sirve para cuando ese campo no tiene datos. El separador de campos es
      TAB y el de registros el fin de línea LF (o Enter)


      Si el archivo de texto tiene separado los campos por medio de comas y a su vez cada
      campo encerrado por comillas la sentencia que se utiliza es:

      mysql> LOAD DATA INFILE 'datos.txt' INTO TABLE clientes
          ->           FIELDS TERMINATED BY ',' ENCLOSED BY '"'
          ->           LINES TERMINATED BY 'n';


      Ejemplo de archivo datos.txt

      “Pabo”,”30”,”600”,”N”
      “Juan”,”25”,”500”,”N”




6.    MOSTRAR LOS DATOS DE UNA TABLA

Ing. Jaime Suasnábar Terrel                                                        Página 7
TALLER DE PROGRAMACIÓN WEB



      Para los datos de una tabla se utiliza la sentencia :
      SELECT [campos que se quiere mostrar]
      FROM [nombre de la tabla de la cual se extraen datos]
      WHERE [condiciones para extraer datos]


      Ejemplo:

      mysql> SELECT * FROM clientes;



      +--------+------+--------+------+
      | nombre | edad | sueldo | memo |
      +--------+------+--------+------+
      | pablo |    30 | 600.00 | NULL |
      | pablo | NULL |    NULL | NULL |
      +--------+------+--------+------+
      2 rows in set (0.00 sec)


      6.1. ENVIAR LA CONSULTA A UN ARCHIVO


            mysql> select * from empresas into outfile '/prueba/hola2.txt' fields
            terminated by '@@'
            ->          lines terminated by ‘n’;




      6.2. CONSULTA CON CONDICIONES:


            mysql> SELECT * FROM clientes WHERE nombre="pablo" and sueldo="500";
            mysql> SELECT * FROM clientes WHERE edad >= "30";
            mysql> SELECT nombre, edad FROM clientes WHERE edad >= "30";
            mysql> SELECT distinct nombre FROM clientes;
            distinct sirve para que saque solo los registros únicos no los repetidos
            en el campo nombre
            mysql> SELECT * FROM clientes ORDER BY edad;
                          para que el resultado se ordene por edad
            mysql> SELECT * FROM clientes ORDER BY edad DESC;
                          para que el resultado se ordene en forma descendente
            mysql> SELECT * FROM clientes GROUP BY edad;
            mysql> SELECT nombre, sueldo/100 from clientes;
                          para que muestre la columna sueldo dividido para 100
            mysql> select * from clientes where edad is NULL;
            mysql> select * from clientes where edad is NOT NULL;
            mysql> SELECT * FROM clientes WHERE nombre LIKE "P%";

            mysql> SELECT * FROM clientes WHERE nombre LIKE "%P";

            mysql> SELECT * FROM clientes WHERE nombre LIKE "%P%";

            mysql> SELECT * FROM clientes WHERE nombre LIKE "_";

            mysql> SELECT nombre, COUNT(*) FROM clientes
            mysql> SELECT DISTINCT nombre FROM clientes       saca los nombres sin
            repetidos
            mysql> SELECT * from tabla1 where not exists



Ing. Jaime Suasnábar Terrel                                                          Página 8
TALLER DE PROGRAMACIÓN WEB


                                 (SELECT * from tabla2 where tabla1.codigo =
            tabla2.codigo); muestra los códigos de la tabla1 que no existan en la
            tabla2




7.    MODIFICAR UN REGISTRO

      mysql> UPDATE clientes SET sueldo="500" WHERE nombre="pablo";
      mysql> UPDATE clientes set sueldo="600" where edad=30;


8.    BORRAR TODOS LOS REGISTROS DE LA TABLA

      mysql> DELETE from clientes;


      8.1. BORRAR UNA TABLA Y SU ESTRUCTURA

            mysql> drop table clientes;


      8.2. BORRAR UNA BASE DE DATOS

            mysql> drop database datos;


9.    RELACIONES ENTRE LAS TABLAS
      Se crean dos tablas con un campo que se llama factura de tipo int(1), este va ha ser la
      llave de las tablas por la cual se van ha relacionar.Para poder mostrar tablas con datos
      que las relacionan podemos hacerlo mediante el siguiente comando select:

      mysql> select cabecera.nombre,detalle.remedio from cabecera,detalle where
          -> cabecera.factura=1 and detalle.factura=1;




      +--------+------------+
      | nombre | remedio    |
      +--------+------------+
      | pablo | mejoral     |
      | pablo | aspirina    |
      | pablo | vitamina c |
      | pablo | cebion      |
      +--------+------------+


      los campos que relacionan estas tablas son el número de la factura
      Otra forma puede ser:

      select cabecera.nombre,detalle.remedio from cabecera,detalle where
          -> cabecera.factura=detalle.factura;


      esto mostrara todos los campos en orden de relación.


Ing. Jaime Suasnábar Terrel                                                           Página 9
TALLER DE PROGRAMACIÓN WEB


      +--------+------------+
      | nombre | remedio    |
      +--------+------------+
      | pablo | mejoral     |
      | pablo | aspirina    |
      | pablo | vitamina c |
      | pablo | cebion      |
      | juan   | complejo B |
      | juan   | contrex    |
      | juan   | mentol     |
      +--------+------------+
      7 rows in set (0.00 sec)




10.   CREACIÓN DE USUARIOS Y PERMISOS PARA LAS TABLAS
      Una vez creada la base de datos se le puede dar permisos para que solo un usuario
      determinado pueda usar dicha base de datos la forma de hacerlo es la siguiente:

      mysql –u root –p   se ingresa con el usuario de administrador
      grant all on pruebas.* to ua033333@localhost identified by ‘clave’
      flush privileges;


      donde pruebas es la base de datos y ua033333 es el usuario al que se quiere dar
      acceso y clave la clave del usuario.


      Para ingresar a la base se pone mysql -u ua033333 –p y se introduce la clave
      Para cambiar de clave se pone
      SET PASSWORD FOR 'ua033333@localhost' = PASSWORD( '**********' )


      Otra forma de crear usuarios es ingresar con la clave de root a la base de datos y poner
      las siguientes sentencias:

      use mysql;



      insert into user values("localhost", "nombredeusuario",
      password("clavedeusuario"), "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y",
      "Y", "Y", "Y", "Y");



      insert into db values ("localhost", "basededatosconcreta", "nombredeusuario",
      "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y");



      exit;




Ing. Jaime Suasnábar Terrel                                                          Página 10

Más contenido relacionado

La actualidad más candente

La actualidad más candente (15)

Modulo de programacion sql unidad II
Modulo de programacion sql   unidad IIModulo de programacion sql   unidad II
Modulo de programacion sql unidad II
 
Curso my sql
Curso my sqlCurso my sql
Curso my sql
 
My sql para principiantes
My sql para principiantesMy sql para principiantes
My sql para principiantes
 
Transact+Sql+2005
Transact+Sql+2005Transact+Sql+2005
Transact+Sql+2005
 
SQLite3
SQLite3SQLite3
SQLite3
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
Manualitosqlserver
 
Control JTable con base de datos.pdf
Control JTable con base de datos.pdfControl JTable con base de datos.pdf
Control JTable con base de datos.pdf
 
MySQL. Tutorial Básico
MySQL. Tutorial BásicoMySQL. Tutorial Básico
MySQL. Tutorial Básico
 
Taller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DMLTaller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DML
 
Sentencias create
Sentencias createSentencias create
Sentencias create
 
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez HGuía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
 
Instrucciones basicas de mySQL
Instrucciones basicas de mySQLInstrucciones basicas de mySQL
Instrucciones basicas de mySQL
 
Curso oracle por temas
Curso oracle por temasCurso oracle por temas
Curso oracle por temas
 
Bdii 09 ddl_new
Bdii 09 ddl_newBdii 09 ddl_new
Bdii 09 ddl_new
 

Similar a Parte 08 my sql

Material Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datosliras loca
 
Manual MySQL.pdf
Manual MySQL.pdfManual MySQL.pdf
Manual MySQL.pdfquesadah
 
MySQL - SQL.pdf
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdfkabern
 
MySQL.pdf
MySQL.pdfMySQL.pdf
MySQL.pdfkabern
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysqloskrsolis
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysqloskrsolis
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Wilian
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)José Toro
 
Tutorial mysql-basico
Tutorial mysql-basicoTutorial mysql-basico
Tutorial mysql-basicoGuiro Lin
 
Manualmysql
ManualmysqlManualmysql
Manualmysqlmi casa
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysqlkyaalena
 
Tutorial básico de my sql
Tutorial básico de my sqlTutorial básico de my sql
Tutorial básico de my sqlGuiro Lin
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)José Toro
 

Similar a Parte 08 my sql (20)

Mysql
MysqlMysql
Mysql
 
Material Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datos
 
210927124637-Manual MySQL.pdf
210927124637-Manual MySQL.pdf210927124637-Manual MySQL.pdf
210927124637-Manual MySQL.pdf
 
Manual MySQL.pdf
Manual MySQL.pdfManual MySQL.pdf
Manual MySQL.pdf
 
MySQL - SQL.pdf
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdf
 
MySQL.pdf
MySQL.pdfMySQL.pdf
MySQL.pdf
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
 
Tutorial mysql-basico
Tutorial mysql-basicoTutorial mysql-basico
Tutorial mysql-basico
 
Manualmysql
ManualmysqlManualmysql
Manualmysql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Tuning fondo-negro-2
Tuning fondo-negro-2Tuning fondo-negro-2
Tuning fondo-negro-2
 
Tutorial básico de my sql
Tutorial básico de my sqlTutorial básico de my sql
Tutorial básico de my sql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysql
 
DESPLIEGUE SERVIDOR BASE DE DATOS
DESPLIEGUE SERVIDOR BASE DE DATOSDESPLIEGUE SERVIDOR BASE DE DATOS
DESPLIEGUE SERVIDOR BASE DE DATOS
 

Parte 08 my sql

  • 1. CAPITULO 8 GESTIÓN DE BASES DE DATOS PARA LA WEB CON MYSQL CONTENIDO Funciones Basicas Bases de Datos Tablas Usuarios
  • 2. TALLER DE PROGRAMACIÓN WEB Ing. Jaime Suasnábar Terrel Página 2
  • 3. TALLER DE PROGRAMACIÓN WEB 1. OPERACIONES BÁSICAS Se entra a la base de datos con: mysql -u root –p y como clave se pone admin. En la línea de comandos: mysql> SELECT VERSION(), CURRENT_DATE(); lo cual mostrara: +-----------+----------------+ | version() | current_date() | +-----------+----------------+ | 5.01.49 | 2012-12-06 | +-----------+----------------+ 1 row in set (0.00 sec) se pueden hacer pequeñas operaciones como: mysql> SELECT SIN(PI()/4), (4+1)*5; +-------------+---------+ | SIN(PI()/4) | (4+1)*5 | +-------------+---------+ | 0.707107 | 25 | +-------------+---------+ 1 row in set (0.00 sec) mysql> select user(); +----------------+ | user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.04 sec) 2. BASES DE DATOS 2.1. MOSTRAR LAS BASES DE DATOS Para ver las bases de datos existentes se pone: mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.00 sec) Ing. Jaime Suasnábar Terrel Página 3
  • 4. TALLER DE PROGRAMACIÓN WEB 2.2. PASOS PARA CREAR BASES DE DATOS El comando para crear la base de datos es: mysql> CREATE DATABASE prueba; esto hará que se cree el directorio prueba en /var/lib/mysql/prueba. 3. TABLAS 3.1. CREACIÓN DE TABLAS Para crear las tablas de la base de datos se pone: mysql> use prueba; para elegir la tabla en la que se va ha trabajar mysql> create table clientes (nombre varchar(20), edad int(2), -> sueldo float(9,2), memo text); Tipos posibles de campos VARCHAR CHAR DATE TIME DATETIME TIMESTAMP(N) Tipo fecha y hora. Se utiliza para generar campos en los cuales automáticamente se guardan la fecha y hora de creación o modificación del registro. Ejemplos de formatos: TIMESTAMP(14) TIMESTAMP(12) TIMESTAMP(10) TIMESTAMP(8) TIMESTAMP(6) TIMESTAMP(4) TIMESTAMP(2) YEAR(2 o 4) INTEGER (INT) FLOAT (-3.402823466E+38 a -1.175494351E-38, 0, y 1.175494351E-38 a 3.402823466E+38.) DOUBLE(M,D) 2.2250738585072014E-308 a 1.7976931348623157E+308) BLOB TEXT Ing. Jaime Suasnábar Terrel Página 4
  • 5. TALLER DE PROGRAMACIÓN WEB Opciones para los campos not null El valor no puede ser nulo en el campo auto_increment automáticamente incrementa el número del registro anterior primary key El PRIMARY KEY es un campo que MySQL usa como índice. Este índice puede hacer cosas como:  Hallar rápidamente filas que acierten una cláusula WHERE.  Regresar filas de una tabla desde otras tablas cuando se realizan uniones.  Esto definitivamente te va a ayudar a agilizar sus peticiones también. Key Crea una llave secundaria 3.2. CREACIÓN DE UNA TABLA CON ÍNDICES O LLAVES: Mysql> create table prueba4 (llave1 int(1) not null, llave2 int(1), primary key(llave1),key(llave2)); Toda llave primaria debe ser de tipo not null para que pueda indexar correctamente. En este ejemplo el campo llave1 es la llave primaria y el campo llave2 es la llave secundaria. 3.3. CREACIÓN DE CAMPOS PARA BUSCAR TEXTOS EN ESTOS: mysql> CREATE TABLE articles ( -> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, -> title VARCHAR(200), -> body TEXT, -> FULLTEXT (title,body) -> ); Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO articles VALUES -> (0,'MySQL Tutorial', 'DBMS stands for DataBase ...'), -> (0,'How To Use MySQL Efficiently', 'After you went through a ...'), -> (0,'Optimising MySQL','In this tutorial we will show ...'), -> (0,'1001 MySQL Trick','1. Never run mysqld as root. 2. ...'), -> (0,'MySQL vs. YourSQL', 'In the following database comparison ...'), -> (0,'MySQL Security', 'When configured properly, MySQL ...'); Query OK, 6 rows affected (0.00 sec) Records: 6 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM articles -> WHERE MATCH (title,body) AGAINST ('database'); +----+-------------------+------------------------------------------+ | id | title | body | +----+-------------------+------------------------------------------+ | 5 | MySQL vs. YourSQL | In the following database comparison ... | | 1 | MySQL Tutorial | DBMS stands for DataBase ... | Ing. Jaime Suasnábar Terrel Página 5
  • 6. TALLER DE PROGRAMACIÓN WEB +----+-------------------+------------------------------------------+ 2 rows in set (0.00 sec) Para ver todas las tablas de la base: mysql> show tables; +------------------+ | Tables_in_prueba | +------------------+ | clientes | +------------------+ 1 row in set (0.00 sec) Para ver la estructura de la tabla se pone: mysql> DESCRIBE clientes; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | nombre | varchar(20) | YES | | NULL | | | edad | int(2) | YES | | NULL | | | sueldo | float(9,2) | YES | | NULL | | | memo | text | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) 4. MODIFICACIÓN DE LA ESTRUCTURA DE UNA TABLA 4.1. CAMBIA LOS ATRIBUTOS DE UNA COLUMNA QUE YA EXISTE ALTER TABLE [nombre_de_la_tabla] CHANGE [nombre_columna] [nombre_columna opciones_de _columna]; ALTER TABLE clientes CHANGE nombre nombreapellido varchar(10); 4.2. COLOCAR UNA COLUMNA AL FINAL DE LA TABLA ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones]; ALTER TABLE clientes ADD cedula varchar(10); 4.3. SI SE DESEA CREAR UNA COLUMNA AL INICIO DE UNA TABLA: ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones] FIRST; ALTER TABLE clientes ADD cedula varchar(10) FIRST; 4.4. Y SI SE TRATA DE COLOCARLA DESPUÉS DE UNA COLUMNA DADA, ES: ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones] AFTER [nombre_de_columna]; ALTER TABLE clientes ADD cedula varchar(10) AFTER nombre; 4.5. PARA ELIMINARLA, SE UTILIZA ESTE COMANDO: Ing. Jaime Suasnábar Terrel Página 6
  • 7. TALLER DE PROGRAMACIÓN WEB ALTER TABLE [nombre_de_la_tabla] DROP [nombre_columna]; ALTER TABLE clientes DROP cedula; 5. PARA INSERTAR DATOS A LA TABLA Se utiliza la siguiente sentencia: mysql> INSERT INTO clientes -> VALUES ('Pablo','30','600',NULL); Nota: La comilla es obligatorio para el ingreso de datos Otra forma de ingresar datos es: mysql> insert into clientes -> (nombre) -> values -> ('pablo'); con esta forma se ingresa el nombre pablo en el campo nombre únicamente Para insertar datos a la tabla desde un archivo de textos la sentencia es: mysql> LOAD DATA LOCAL INFILE "datos.txt" INTO TABLE clientes; el archivo debe tener el siguiente formato: Pablo 30 600 N Juan 20 N bueno El símbolo N sirve para cuando ese campo no tiene datos. El separador de campos es TAB y el de registros el fin de línea LF (o Enter) Si el archivo de texto tiene separado los campos por medio de comas y a su vez cada campo encerrado por comillas la sentencia que se utiliza es: mysql> LOAD DATA INFILE 'datos.txt' INTO TABLE clientes -> FIELDS TERMINATED BY ',' ENCLOSED BY '"' -> LINES TERMINATED BY 'n'; Ejemplo de archivo datos.txt “Pabo”,”30”,”600”,”N” “Juan”,”25”,”500”,”N” 6. MOSTRAR LOS DATOS DE UNA TABLA Ing. Jaime Suasnábar Terrel Página 7
  • 8. TALLER DE PROGRAMACIÓN WEB Para los datos de una tabla se utiliza la sentencia : SELECT [campos que se quiere mostrar] FROM [nombre de la tabla de la cual se extraen datos] WHERE [condiciones para extraer datos] Ejemplo: mysql> SELECT * FROM clientes; +--------+------+--------+------+ | nombre | edad | sueldo | memo | +--------+------+--------+------+ | pablo | 30 | 600.00 | NULL | | pablo | NULL | NULL | NULL | +--------+------+--------+------+ 2 rows in set (0.00 sec) 6.1. ENVIAR LA CONSULTA A UN ARCHIVO mysql> select * from empresas into outfile '/prueba/hola2.txt' fields terminated by '@@' -> lines terminated by ‘n’; 6.2. CONSULTA CON CONDICIONES: mysql> SELECT * FROM clientes WHERE nombre="pablo" and sueldo="500"; mysql> SELECT * FROM clientes WHERE edad >= "30"; mysql> SELECT nombre, edad FROM clientes WHERE edad >= "30"; mysql> SELECT distinct nombre FROM clientes; distinct sirve para que saque solo los registros únicos no los repetidos en el campo nombre mysql> SELECT * FROM clientes ORDER BY edad; para que el resultado se ordene por edad mysql> SELECT * FROM clientes ORDER BY edad DESC; para que el resultado se ordene en forma descendente mysql> SELECT * FROM clientes GROUP BY edad; mysql> SELECT nombre, sueldo/100 from clientes; para que muestre la columna sueldo dividido para 100 mysql> select * from clientes where edad is NULL; mysql> select * from clientes where edad is NOT NULL; mysql> SELECT * FROM clientes WHERE nombre LIKE "P%"; mysql> SELECT * FROM clientes WHERE nombre LIKE "%P"; mysql> SELECT * FROM clientes WHERE nombre LIKE "%P%"; mysql> SELECT * FROM clientes WHERE nombre LIKE "_"; mysql> SELECT nombre, COUNT(*) FROM clientes mysql> SELECT DISTINCT nombre FROM clientes saca los nombres sin repetidos mysql> SELECT * from tabla1 where not exists Ing. Jaime Suasnábar Terrel Página 8
  • 9. TALLER DE PROGRAMACIÓN WEB (SELECT * from tabla2 where tabla1.codigo = tabla2.codigo); muestra los códigos de la tabla1 que no existan en la tabla2 7. MODIFICAR UN REGISTRO mysql> UPDATE clientes SET sueldo="500" WHERE nombre="pablo"; mysql> UPDATE clientes set sueldo="600" where edad=30; 8. BORRAR TODOS LOS REGISTROS DE LA TABLA mysql> DELETE from clientes; 8.1. BORRAR UNA TABLA Y SU ESTRUCTURA mysql> drop table clientes; 8.2. BORRAR UNA BASE DE DATOS mysql> drop database datos; 9. RELACIONES ENTRE LAS TABLAS Se crean dos tablas con un campo que se llama factura de tipo int(1), este va ha ser la llave de las tablas por la cual se van ha relacionar.Para poder mostrar tablas con datos que las relacionan podemos hacerlo mediante el siguiente comando select: mysql> select cabecera.nombre,detalle.remedio from cabecera,detalle where -> cabecera.factura=1 and detalle.factura=1; +--------+------------+ | nombre | remedio | +--------+------------+ | pablo | mejoral | | pablo | aspirina | | pablo | vitamina c | | pablo | cebion | +--------+------------+ los campos que relacionan estas tablas son el número de la factura Otra forma puede ser: select cabecera.nombre,detalle.remedio from cabecera,detalle where -> cabecera.factura=detalle.factura; esto mostrara todos los campos en orden de relación. Ing. Jaime Suasnábar Terrel Página 9
  • 10. TALLER DE PROGRAMACIÓN WEB +--------+------------+ | nombre | remedio | +--------+------------+ | pablo | mejoral | | pablo | aspirina | | pablo | vitamina c | | pablo | cebion | | juan | complejo B | | juan | contrex | | juan | mentol | +--------+------------+ 7 rows in set (0.00 sec) 10. CREACIÓN DE USUARIOS Y PERMISOS PARA LAS TABLAS Una vez creada la base de datos se le puede dar permisos para que solo un usuario determinado pueda usar dicha base de datos la forma de hacerlo es la siguiente: mysql –u root –p se ingresa con el usuario de administrador grant all on pruebas.* to ua033333@localhost identified by ‘clave’ flush privileges; donde pruebas es la base de datos y ua033333 es el usuario al que se quiere dar acceso y clave la clave del usuario. Para ingresar a la base se pone mysql -u ua033333 –p y se introduce la clave Para cambiar de clave se pone SET PASSWORD FOR 'ua033333@localhost' = PASSWORD( '**********' ) Otra forma de crear usuarios es ingresar con la clave de root a la base de datos y poner las siguientes sentencias: use mysql; insert into user values("localhost", "nombredeusuario", password("clavedeusuario"), "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y"); insert into db values ("localhost", "basededatosconcreta", "nombredeusuario", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y"); exit; Ing. Jaime Suasnábar Terrel Página 10