Usado para recibir un conjunto de registros de una o mas tablas.
SELECT [*][campo1,campo2...] FROM tabla [WHERE condición] [GROUP BY campo] [HAVING condicion] [ORDER BY campo] [LIMIT n]
Clausula | Descripción |
---|---|
ALL | DISTINCT | DISTINCTROW | |
FROM | tabla. Es la tabla de donde se extraen los registros. |
WHERE | Condición lógica. Solo se muestran los registros donde la condición es verdadera. |
GROUP BY | Campo. ASC | DESC. |
HAVING | Condición lógica. Solo se muestran los registros donde la condición es verdadera. |
ORDER BY | Campo. Campos por los que se ordenara el resultado. ASC | DESC. |
LIMIT | Valor. Numero de registros a recuperar. |
INTO OUTFILE | Archivo de salida. |
SELECT * FROM tabla1 WHERE id>100; SELECT edad,COUNT(*) AS n FROM personal GROUP BY edad;
Esta clausula te permite hacer busquedas que cumplan un patron usando comodines simple (_) o multiple (%).
Caracter | Descripción |
---|---|
_ | Representa un caracter |
% | Repesenta muchos caracteres |
SELECT sexo,MAX(edad) AS viejo FROM tabla WHERE edad LIKE '_0';
Esta clausula te permite buscar si un campo tiene algunos es uno de los valores mencionados.
SELECT campo(s) FROM tabla WHERE campo1 IN (val1, val2, ...); SELECT campo(s) FROM tabla WHERE campo1 IN (SELECT);
Esta clausula te permite buscar si un campo tiene un valor entre dos valores dados.
SELECT campo(s) FROM tabla WHERE campo1 BETWEEN val1 AND val2;
Comprueba si el valor de un campo existe en otra tabla.
SELECT campo(s) FROM tabla1 WHERE EXIST (SELECT campo1 FROM tabla2 WHERE condicion);
Para comparara el valor de un campo con un rango.
SELECT campo(s) FROM tabla1 WHERE campo1 operador ANY (SELECT campo2 FROM tabla2 WHERE condicion);
Para comparara el valor de un campo con un rango.
SELECT ALL campo(s) FROM tabla WHERE condition; SELECT campo(s) FROM table1 WHERE campo1 operador ALL (SELECT campo2 FROM tabla2 WHERE condicion);
Cuando los registros deben provenir de mas de una tabla debes usar una union (JOIN). Al unir dos tablas es importante entender cual es la tabla de la izquierda y cual la de la derecha.
SELECT tabla1.campo1[,tabla2.campo1] FROM tabla1 [AS apodo],tabla2 [AS apodo] WHERE tabla1.campo=tabla2.campo] SELECT tabla1.campo1[,tabla2.campo1] FROM tabla1 [AS apodo] LEFT JOIN tabla2 [AS apodo] ON tabla1.campo=tabla2.campo]
Clausula | Descripción |
---|---|
STRAIGHT_JOIN | |
INNER JOIN | |
LEFT [OUTER] JOIN | |
NATURAL [LEFT [OUTER]] JOIN | |
RIGHT [OUTER] JOIN | |
NATURAL [RIGHT [OUTER]] JOIN |
a LEFT JOIN b USING (c1,c2,c3) a LEFT JOIN b ON a.c1=b.c1,a.c2=b.c2,a.c3=b.c3)
SELECT personal.nom,SUM(ventas.tot) AS tot FROM personal,ventas WHERE personal.id=ventas.vendedor SELECT personal.nom FROM personal LEFT JOIN ventas ON personal.id=ventas.vendedor
Esta clausula es obligatoria si usas algún tipo de agrupamiento como AVG(), STD(), SUM, MAX(), MIN() y GROUP_CONCAT().
SELECT sexo,MAX(edad) AS viejo FROM tabla1 GROUP BY sexo;
Añadir registros a una tabla.
INSERT INTO tabla campo1=valor1[,campo2=valor2]; INSERT INTO tabla (campo1,campos2...) VALUES (valor1,valor2...); INSERT INTO tabla1 SELECT campo1,campo2 FROM tabla2 WHERE condicion];
Luego de operar devuelve el numero de registros afectados. Ver LAST_INSERT_ID()
Actualizar registros en una tabla.
UPDATE tabla SET campo1=valor1[,campo2=valor2] WHERE condición;
COn multiple tablas:
UPDATE tabla1 JOIN tabla2 ON tabla1.campo1 = tabla2.campo2 SET tabla1.campo3 = tabla2.campo4 WHERE condicion;
Luego de operar devuelve el numero de registros afectados.
Borrar registros en una tabla.
DELETE FROM tabla WHERE condición;
Luego de operar devuelve el numero de registros afectados.
Tenemos los operadores: =. <>, <, <=, >, >=, >>, <<, <=>, AND, OR y LIKE.
Operador | Descripción |
---|---|
<> | Diferente |
>> | |
<< | |
<=> |