Página principal

Comandos básicos sql Los nombres de las tablas así como el nombre de los campos deben de seguir las siguientes reglas


Descargar 44.48 Kb.
Fecha de conversión18.07.2016
Tamaño44.48 Kb.
Comandos básicos sql

Los nombres de las tablas así como el nombre de los campos deben de seguir las siguientes reglas:

  1. Solo acepta letras de la A-Z (mayúsculas y minúsculas), números de 0 al 9 y el unció carácter especial que acepta es el guion bajo _

  2. El nombre de los campos y tablas no es correcto que comience con números

  3. Y no deben de contener caracteres especiales en el nombre como #$,etc



  1. Comando para crear una base de datos


CREATE DATABASE nombre_de_la_base_de_datos

CREATE DATABASE ESCUELA;


  1. Comando para poner en uso una base de datos


USE nombre_de_la_base_de_datos

USE ESCUELA;


  1. Comando para crear una tabla


CREATE TABLE nombre_de_la_tabla

(nombre_del_campo tipo_de_dato (longitud),

nombre_del_campo tipo_de_dato (longitud),

primary key(nombre_del_campo_que_sera_llave_primaria este debe ser del mismo tipo que el declarado en la lista de atributos) , foreign key(atributo que será llave foránea tambein debe de estar declarado en la lsita de tributos) references nombre_de_la_tabla_a_la_que_hace_referencia_este_atributo(atributo))
create table dos(id int(4) not null,nombre varchar(25), primary key(id));
create table tres (id1 int(4) not null, nombre1 varchar(25), id int(4), primary key(id1), foreign key(id) references dos(id));


  1. Comando para mostrar las tablas que contiene una base de datos.

SHOW TABLES;


  1. Comando para mostrar la estructura de la tabla.


DESCRIBE nombre_tabla
DESCRIBE dos;


  1. Comando para alterar una tabla




  1. Con este comando se agrega un campo a la tabla


ALTER TABLE nombre_tabla ADD (campo (longitud);

ALTER TABLE dos add (apellido_pat varchar(20) not null);


  1. Con este comando se modifican los tipos de datos así como su longitud de un campo ya existente en la tabla.

ALTER TABLE nombre_tabla MODIFY campo_existente tipo_de_dato cambiar o longitud.
ALTER TABLE dos MODIFY apellido_pat varchar(10);


  1. Este comando se utiliza para cambiar el nombre de un campo así como su tipo de dato y longitud.


ALTER TABLE nombre_tabla CHANGE nombre_campo_existente nuevo_nombre_campo nuevo_tipo_dato(longitud);
ALTER TABLE dos CHANGE apellido_pat ape_paterno varchar(15);


  1. Este comando se utiliza para eliminar un campo de una tabla


ALTER TABLE nombre_tabla DROP campo;
ALTER TABLE dos DROP ape_paterno;


  1. Comando para insertar registros

Se pueden insertar registros de dos maneras.

  1. INSER INTO nombre_tabla (nombre_campos) VALUES (valores de los campos)

insert into dos (id, nombre) values (4, "Kevin");

  1. INSERT INTO nombre_tabla VALUES (valores de los campos)

INSERT INTO dos VALUES (5, "Yaquelin");

Cuando se insertan valores con el formato del inciso a se deben de especificar los campos y los valores de los mismos es decir estos deben de coincidir sin embargo con la opción b no se especifican el nombre de los campos sin embargo si debe de coincidir el orden de los campos tal cual se fueron creando en la tabla.

  1. Comando para mostrar todos los registros que contiene una tabla.


SELECT * (comodín que indica todos los registros) FROM nombre_tabla
SELECT * FROM dos;


  1. Comando para actualizar el contenido de un registro.


UPDATE nombre_tabla SET nombre_campo_a_modificar = contenido del campo, nombre_campo_a_modificar = contenido del campo WHERE nombre_del_campo_sobre_el_cual_se_va_a_modificar = contenido_del_campo
UPDATE dos SET nombre = "Karina" WHERE id = 4;


  1. Comando para eliminar un registro


DELETE FROM nombre_tabla WHERE nombre_campo_que_condiciona_cual_registro_se_va_a_eliminar
DELETE FROM dos WHERE id = 5;

  1. Comando para mostrar los registros ordenados


SELECT * (comodín que indica todos los registros) FROM nombre_tabla ORDER BY campo_por_el_que_se_va_a_ordenar_la_tabla ASC, DESC

SELECt * FROM dos ORDER BY nombre ASC;

SELECT * FROM dos ORDER BY nombre DESC;

SELECT * FROM dos ORDER BY nombre ;
Las cláusulas ASC y DESC son para ordenar de manera (ascendente y descendente y si no se especifica en la consulta ninguna de estas dos clausulas por default los ordena de manera ascendente.


  1. Con este comando se exporta el script de la base de datos a n archivo .sql desde la linea de comando

a) Ir a MS-DOS. Escribir en ejecutar cmd y nos mostrara la siguiente linea C:\Users\Yayis>

Para salir al directorio raíz escribir cd\ y nos mostrara la siguiente linea. C:\>

Debemos de escribir C:\> cd wamp\bin\mysql\mysql5.5.8\bin y nos mostrara el prompt de la siguiente manera. C:\wamp\bin\mysql\mysql5.5.8\bin> y eseguida escribir

C:\wamp\bin\mysql\mysql5.5.8\bin>mysqldump -u root -p - -opt tienda>script1.sql

Donde tienda es el nombre de la base de datos y script1.sql es el nombre del script

Al presionar enter nos pedirá el password y como no hay entonces se deberá de presionar la tecla enter

b) Buscar en la ruta C:\wamp\bin\mysql\mysql5.5.8\bin el archivo script1.sql y ese es el que deberas de copiar en tu memoria y ya generaste el script con la estructgura delas tablas y los registros de la misma.



  1. Con este comando se importa el archivo .sql a MySQL

a) abrir Wamp Server en MySqlConsole

b) crear una base de datos CREATE DATABASE TIEDA2;

c) Poner en uso la base de datos USE TIENDA2

  1. Escribir el siguiente comando

source C:\wamp\bin\mysql\mysql5.5.8\bin\script1.sql

Donde la ruta es en donde se quedo guardado el script al momento de exportar la base de datos el archivo script1.sql es el nombre que se le dio al archivo.

e) O bien escribir el comando mysql> \. C:\wamp\bin\mysql\mysql5.5.8\bin\script1.sql


  1. Esta clausula se utiliza para asignarle un alias a los campos que se muestran resultado de una consulta


select nombre_campo_a_mostrar_en_la_consulta AS nombre_o_aslias_que_se_le_asignara_ al_campo_resultado_de_la_consulta from dos;

SELECT nombre AS Name FROM dos;


  1. Comando que se utiliza para mostrar registros diferentes respecto aun campo especificado.


SELECT DISTINCT(campo_del_que_se_mostraran_los_registros_diferentes) FROM DOS;

SELECT DISTINCT(NOMBRE) FROM DOS;


  1. Este comando muestra el valor máximo de un campo especificado


SELECT MAX(campo_del _que_se_mostrara_el_valor_maximo) AS Alias_para_el_campo FROM nombre de la tabla;

SELECT MAX(calificaicon) AS Calif_Maxima FROM tres;


  1. Este comando muestra el valor minimo de un campo especificado


SELECT MIN(campo_del _que_se_mostrara_el_valor_maximo) AS Alias_para_el_campo FROM nombre de la tabla;

SELECT MIN(calificaicon) AS Calif_Minima FROM tres;


  1. Este comando muestra la sumatoria de un campo especificado


SELECT SUM(campo_del _que_se_mostrara_el_valor_maximo) AS Alias_para_el_campo FROM nombre de la tabla;

SELECT SUM(calificaicon) AS Calif_Sum FROM tres;


  1. Este comando muestra el promedio de un campo especificado


SELECT PROM(campo_del _que_se_mostrara_el_valor_maximo) AS Alias_para_el_campo FROM nombre de la tabla;

SELECT AVG(calificaicon) AS Calif_Promedio FROM tres;


  1. Este coman do se utiliza para contar registros.


SELECT COUNT(comodin) FROM nombre_tabla;

SELECT COUNT(*) FROM DOS;


  1. Comando que se utiliza para agrupar registros respecto a un campo especifico y este comando se debe de utilizar junto con el comando COUNT el cual cuanta los registros y con group by agrupa lo que cuenta.


SELECT COUNT (nombre_del_campo_a_contar), campos_a_mostrar_en_la_consulta FROM nombre_tabla GROUP BY (nombre_campo_por_el_que_se_va_a_agrupar

SELECT COUNT(nombre), nombre FROM dos GROUP BY (nombre);


  1. Comando que Se utiliza "having", seguido de la condición de búsqueda, para seleccionar ciertas filas retornadas por la cláusula "group by

SELECT COUNT (nombre_del_campo_a_contar), campos_a_mostrar_en_la_consulta FROM nombre_tabla GROUP BY (nombre_campo_por_el_que_se_va_a_agrupar HAVING instrucción(SUM,AVG,MAX,MIN) = valor

SELECT count(nombre), nombre FROM dos group by (NOMBRE) having count(nombre) =2;


  1. Comando que muestra el contenido de un campo especifico de tipo varchar en letras mayúsculas.

SELECT UCASE/UPPER(nombre_del_campo_de_tipo_varchar) FROM nombre_tabla;

SELECT UCASE(NOMBRE) FROM DOS;

SELECT UPPER(NOMBRE) FROM DOS;

  1. Comando que muestra el contenido de un campo especifico de tipo varchar en letras minúsculas.

SELECT LCASE/LOWER(nombre_del_campo_de_tipo_varchar) FROM nombre_tabla;

SELECT LCASE(NOMBRE) FROM DOS;

SELECT LOWER(NOMBRE) FROM DOS;

  1. Este comando devuelve el numero de carcateres que tienen un campo

SELECT LENGTH(nombre_campo_al_que_se_le_contaran_los_caracteres) AS alias_del_Campo FROM nombre_tabla;

SELECT LENGTH(NOMBRE) AS NUMERO_DE_CARACTERES FROM DOS;


  1. Esta consulta muestra la unión entre dos tablas en donde la llave primaria de ambas tablas debe de ser la misa.


select dos.id, dos.nombre, tres.nombre1 from dos, tres where dos.id=tres.id;
O la consulta también se puede expresar de la siguiente manera.

select d.id, d.nombre, t.nombre1 from dos d, tres t where d.id=t.id;
** observe que en lugar de escribir el nombre completo de la tabla dos como en la consulta anterior solo se escribe la letra d ya que en la clausula from al elegir las tablas después de escribir dos el nombre de la tabal se escribió la letra d lo cual nos indica que se está renombrando a la tabal es decir en esta consulta para hacer referencia a la tabla dos se escribirá la letra d. Y lo mismo con la tabla tres se le renombró t.
+----+-------------+-------------+

| id | nombre | nombre1 |

+----+-------------+-------------+

| 5 | Yaquelin | Juan Carlos |

| 4 | Jose Luis | Leslie |

| 3 | Juan Carlos | Javier |

| 3 | Juan Carlos | Javier |

| 2 | Yaneth | Karen |

+----+-------------+-------------+

5 rows in set (0.00 sec)

select * from dos;

+----+-------------+

| id | nombre |

+----+-------------+

| 5 | Yaquelin |

| 1 | Yoselin |

| 2 | Yaneth |

| 3 | Juan Carlos |

| 4 | Jose Luis |

| 6 | Rogelio |

| 7 | Raul |

+----+-------------+

7 rows in set (0.00 sec)

select * from tres;

+-----+-------------+------+

| id1 | nombre1 | id |

+-----+-------------+------+

| 1 | Juan Carlos | 5 |

| 2 | Leslie | 4 |

| 3 | Javier | 3 |

| 4 | Javier | 3 |

| 5 | Karen | 2 |

+-----+-------------+------+

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

| id | nombre | nombre1 |

+----+-------------+-------------+

| 5 | Yaquelin | Juan Carlos |

| 4 | Jose Luis | Leslie |

| 3 | Juan Carlos | Javier |

| 3 | Juan Carlos | Javier |

| 2 | Yaneth | Karen |

+----+-------------+-------------+

5 rows in set (0.00 sec)


  1. Este comando se utiliza para realizar la unión de tablas igual que la consulta anterior solo que con la clausula INNER JOIN


select d.id, d.nombre, t.nombre1 from dos d inner join tres t ON d.id = t.id;
Observe que esta consulta arroja los mismos registros que la consulta anterior ya que la clausula WHERE se sustituye por la clausula ON en la instrucción INNER JOIN.

+----+-------------+-------------+

| id | nombre | nombre1 |

+----+-------------+-------------+

| 5 | Yaquelin | Juan Carlos |

| 4 | Jose Luis | Leslie |

| 3 | Juan Carlos | Javier |

| 3 | Juan Carlos | Javier |

| 2 | Yaneth | Karen |

+----+-------------+-------------+

5 rows in set (0.00 sec)
Este tipo de JOIN une los resultados coincidentes en ambas tablas, no devolverá un registro de una tabla si no coincide con otro de la otra.



  1. Este comando es el equivalente del INNER JOIN pues la consulta muestra el mismo resultado. El comando JOIN tambien realiza la unión de dos tablas


select d.id, d.nombre, t.nombre1 from dos d join tres t using(id);
+----+---------+---------+

| id | nombre | nombre1 |

+----+---------+---------+

| 2 | Raul | KArina |

| 4 | Kevin | Olivia |

| 4 | Kevin | Benny |

| 1 | Rogelio | Toño |

| 3 | Yayis | Argy |

+----+---------+---------+

5 rows in set (0.00 sec)
A diferencia de INNER JOIN este comando no utiliza la clausula WHERE ya que esta se sustituye por la clausula using en la cual se especifica cual campo relaciona a ambas tabasl en este caso son al clave primaria y la clave foranea.


  1. Este comando también realiza la unión de tablas de manera natural es decir ya no es necesario indicarle los campos (llaves) sobre los cuales debe de unirse ya que lo realiza de manera natural es decir a través de las aves que están indicadas en cada tala este comando es el NATURAL JOIN.


Este JOIN retorna los registros de ambas tablas que coincidan en todos los campos con el mismo nombre
select d.id, d.nombre, t.nombre1 from dos d natural join tres t;
+----+---------+---------+

| id | nombre | nombre1 |

+----+---------+---------+

| 2 | Raul | KArina |

| 4 | Kevin | Olivia |

| 4 | Kevin | Benny |

| 1 | Rogelio | Toño |

| 3 | Yayis | Argy |

+----+---------+---------+

5 rows in set (0.00 sec)
Notese que a diferencia del anterior no se utiliza la clausula USING


  1. Muestra la unión de tablas solo que muestra todos los registros que están a la izquierda pero que no están en la derecha. LEFT JOIN.


LEFT JOIN retorna los registros de la primera tabla aunque no coincidan con ninguno de la otra.

select * from dos;

+----+----------+

| id | nombre |

+----+----------+

| 1 | Rogelio |

| 2 | Raul |

| 3 | Yayis |

| 4 | Kevin |

| 5 | Yaquelin |

| 6 | Angel |

+----+----------+

6 rows in set (0.00 sec)

select * from tres;

+-----+---------+------+

| id1 | nombre1 | id |

+-----+---------+------+

| 1 | KArina | 2 |

| 2 | Olivia | 4 |

| 3 | Benny | 4 |

| 4 | Toño | 1 |

| 7 | Argy | 3 |

+-----+---------+------+

5 rows in set (0.01 sec)

select d.id, d.nombre, t.nombre1 from dos d left join tres t on d.id = t.id;

+----+----------+---------+

| id | nombre | nombre1 |

+----+----------+---------+

| 1 | Rogelio | Toño |

| 2 | Raul | KArina |

| 3 | Yayis | Argy |

| 4 | Kevin | Olivia |

| 4 | Kevin | Benny |

| 5 | Yaquelin | NULL |

| 6 | Angel | NULL |

+----+----------+---------+

7 rows in set (0.00 sec)
select d.id, d.nombre, t.nombre1 from dos d natural left join tres t;
Con esta consulta utilizando NATURAL LEFT JOIN se muestran os mismos registros que la consulta anterior.


  1. Muestra la unión de tablas solo que muestra lo que muestra todos los registros que están a la derecha pero que no están en la izquierda. RIGTH JOIN


RIGHT JOIN realiza lo mismo pero en base a la segunda tabla.

select d.id, d.nombre, t.nombre1 from dos d right join tres t on d.id = t.id;
+------+---------+---------+

| id | nombre | nombre1 |

+------+---------+---------+

| 2 | Raul | KArina |

| 4 | Kevin | Olivia |

| 4 | Kevin | Benny |

| 1 | Rogelio | Toño |

| 3 | Yayis | Argy |

+------+---------+---------+

5 rows in set (0.00 sec)
select d.id, d.nombre, t.nombre1 from dos d natural right join tres t;
Con esta consulta utilizando NATURAL RIGHT JOIN se muestran os mismos registros que la consulta anterior.


La base de datos está protegida por derechos de autor ©espanito.com 2016
enviar mensaje