CHULETA SQL - 1
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] [Link] ALTER {DATABASE | SCHEMA} [nombre_base_datos]
[DEFAULT] [CHARACTER SET [Link]] [DEFAULT] [CHARACTER SET [Link] ]
[DEFAULT] [COLLATE [Link]ón] [DEFAULT] [COLLATE [Link]ón]
DROP {DATABASE | SCHEMA} [IF EXISTS] nombre_base_datos; USE nombreBBDD; SHOW DATABASES;
TIPO DE DATOS CREATE TABLE [IF NOT EXISTS] tabla (
BIT[(M)] Campo1 tipo [TIPO_RESTRICCIÓN],
TINYINT[(M)] campo2 tipo [NOT] [NULL],
SMALLINT [(M)] campo3 tipo [DEFAULT valor]
MEDIUMINT[(M)] campo4 tipo
INT[(M)] [, CONSTRAINT nomRestr TIPO_RESTRICCIÓN (campo)]
INTEGER[(M)] )
BIGINT [(M)] [COMMENT = 'texto‘
BOOL, BOOLEAN [DEFAULT] CHARACTER SET juego_carácteres [COLLATE colación]
DECIMAL[M,[D])] AUTO_INCREMENT = valor
DEC[(M[,D])] MAX_ROWS = valor | MIN_ROWS = valor DROP TABLE tabla1, tabla2;
NUMERIC[(M[,D])] CHECKSUM ={0 | 1} TRUNCATE TABLE tabla;
FIXED[(M[,D])] ENGINE = nombre_motor];
FLOAT (p) RENAME TABLE nombreViejo
FLOAT [(M,D)] ALTER TABLE tabla modificaciones; TO nombreNuevo;
DOUBLE [(M, D)] Modificaciones:
DOUBLE PRECISION [(M,D)] ADD COLUMN campo tipo [AFTER campo2] [FIRST];
REAL[(M,D)] DROP COLUMN campo;
DATE MODIFY COLUMN campo tipo [NOT] [NULL] | [DEFAULT valor];
DATETIME ADD TIPO-RESTRICCIÓN (Campo1);
TIMESTAMP ADD CONSTRAINT nomRestr TIPO-RESTRICCIÓN (campo)]);
TIME ALTER campo DROP DEFAULT;
YEAR DROP PRIMARY KEY;
CHAR [(M)] DROP INDEX | CHECK | FOREIGN KEY nomRestr;
VARCHAR (M) RENAME COLUMN campoViejo TO campoNuevo;
TINYBLOB/TINYTEXT
BLOB/TEXT TIPO RESTRICCIÓN SHOW TABLES;
MEDIUMBLOB/MEDIUMTEXT PRIMARY KEY SHOW CREATE TABLE tabla;
LONGTEXT/LONGBLOB UNIQUE DESCRIBE [esquema.]nombre_tabla;
ENUM (“V1, V2”,…) CHECK
SET (“V1, V2,…) FOREIGN KEY (campo) REFERENCES tabla2 (campo2)
ATRIBUTOS [ON DELETE NO ACTION | CASCADE | SET NULL]
UNSIGNED [ON UPDATE NO ACTION | CASCADE | SET NULL]
AUTO_INCREMENT
INSERT INTO tabla [(NomCol1 [, NomCol2...])] UPDATE tabla DELETE FROM tabla
VALUES (valorCol1 [, valorCol2...]); SET col1= valor1[,col2= valor2, ...] [WHERE condición];
[WHERE condición];
CHULETA SQL - 2
SELECT [DISTINCT] Condición:
[ * ] Campo operador valor
[ Campo [, campo,….]] Campo [NOT ] IN (valor, valor,..)
[ Expresión [, expresión,….]] Campo BETWEEN valor AND valor
[ Función [, función,….]] campo IS [NOT ] NULL
[AS] alias campo [NOT ] LIKE ‘[%|_]texto[%|_]texto[%|_]’ ESCAPE ‘carácter’
FROM {tabla [alias] [,tabla...]
SELECT listadoDeCampos
| tabla [LEFT|RIGHT] [NATURAL] JOIN tabla ON condición }
FROM tabla
[WHERE [NOT] condición [AND | OR] [condición] ….
Consulta WHERE { expresión|campo
[GROUP BY campo [, campo,… ] ]
UNION [ALL] operador [ANY | ALL ]
[HAVING where_condition]
Consulta | IN
[ORDER BY {campo | alias | posición} [ASC | DESC]
| EXISTS }
[LIMIT [desplazamiento,] nfilas]
(SELECT campo …..);
AVG (n) CONCAT(cadena1, cadena2)
CONCAT_WS(separator,str1,str2,...) CURDATE()
COUNT (*) – COUNT (campos) INSTR(str,substr) CURRENT_DATE,
MAX (campo) LEFT (cadena, longitud) CURRENT_DATE()
RIGHT (cadena, longitud) CURTIME()
MIN(campo) LENGHT (cadena) CURRENT_TIME
LOCATE(substr,str,[pos]) CURRENT_TIME()
SUM(n)
LOWER (cadena) CURRENT_TIMESTAMP,
UPPER (cadena) CURRENT_TIMESTAMP()
CEILING(n), CEIL(n)
LPAD(str,len,padstr) NOW(). SYSDATE()
FLOOR (n)
RPAD(str,len,padstr) LOCALTIME, LOCALTIME()
ROUND (n, [decimales])
LTRIM (cadena) LOCALTIMESTAMP,
TRUNCATE (X, D)
RTRIM (cadena) LOCALTIMESTAMP()
ABS (n)
TRIM(cadena) ADDDATE(date,INTERVAL expr type);
MOD(A,B)
REPLACE(str,from_str,to_str) ADDDATE(expr,days);
A%B
REVERSE (cadena) DATE_ADD(date,INTERVAL expr type);
A MOD B
SUBSTRING (cadena, n, longitud) DATE_SUB(date,INTERVAL expr type);
POW (b, e)
STRCMP (cadena1, cadena2) DATEDIFF(expr,expr2)
POWER (b, e)
DATE_FORMAT(date,format)
SQRT (n)
DAY(date)
CASE value
DAYOFMONTH()
WHEN [compare-value]
DAYNAME(date)
SELECT * THEN result
DAYOFWEEK(date)
[WHEN [compare-value]
FROM MONTH(date)
THEN result ...]
MONTHNAME(date)
(SELECT campos…. [ELSE result] END
WEEKDAY(date)
IF (expr1, exprVerdad,exprFalso)
FROM tabla YEAR(date)
IFNULL(expr1,expr2)
WHERE condiciones) NULLIF(expr1,expr2)
COALESCE( val1, val2, ...., val_n)
as tabla_derivada;
CHULETA SQL - 3
CREATE TABLE tablaNueva [(DefiniciónColumna1, DefiniciónColumna2,...)] UPDATE tabla
AS subconsulta; SET columna =
[ , column = (SELECT column
INSERT INTO tabla (columna1 , columna2) FROM table
SELECT campo1, campo2 WHERE condition)]
DELETE FROM tabla [WHERE condition ] ;
FROM tabla [WHERE campo = (SELECT columna
…. FROM tabla
WHERE condición)
START TRANSACTION; ];
SAVEPOINT punto_grabación; SET AUTOCOMMIT= {ON | OFF } ;
…;
SET [SESSION | GLOBAL] TRANSACTION ISOLATION
ROLLBACK TO punto_grabación;
LEVEL { READ UNCOMMITTED | READ COMMITTED
…;
| REPEATABLE READ | SERIALIZABLE}
{COMMIT | ROLLBACK };
LOCK TABLES nombre_tabla { READ | WRITE };
UNLOCK TABLES;
CREATE VIEW nombre_vista [(campo1, campo2…)] AS subconsulta SELECT * FROM [Link];
ALTER VIEW nombre_vista AS subconsulta SHOW GRANTS FOR nombre_Usuario;
DROP VIEW [IF EXISTS] nombre_vista SHOW INDEXES FROM nombreTabla;
nombre_Usuario: 'user_name'@'host_name' Privilegios/Permiso
CREATE USER nombre_Usuario [IDENTIFIED BY [PASSWORD] 'contraseña'] ALL [PRIVILEGES]
DROP USER nombre_usuario [ , nombre_otro_usuario] GRANT OPTION
RENAME USER nombre_viejo TO nombre_nuevo CREATE
SET PASSWORD [FOR nombre_usuario] = 'contraseña'; ALTER
ALTER USER nombre_usuario IDENTIFIED BY "contraseña"; DROP
REFERENCES
GRANT permiso ON [Link] nombre_Usuario: 'rol_name'@'host_name' INSERT
TO nombre_Usuario CREATE ROLE IF NOT EXISTS nombreROL; DELETE
[WITH GRANT OPTION]; GRANT NombreRol TO NombreUsuario UPDATE
DROP ROLE NombreRol; SELECT
REVOKE permiso ON [Link] LOCK TABLES
FROM nombre_Usuario; CREATE ROLE | DROP ROLE
CREATE INDEX NombreÍndice CREATE USER
ON tabla CREATE VIEW
(columna [(tamaño), columna (tamaño) ,...]); INDEX
DROP INDEX NombreÍndice ON tabla; TRIGGER
ALTER ROUTINE |CREATE
CREATE ROUTINE
[ DEFINER = { user | CURRENT_USER } ] [Link] EXECUTE
TRIGGER nombreTrigger [Link]
BEFORE | AFTER
INSERT | UPDATE | DELETE DROP TRIGGER nombre_disparador;
ON nombreTabla
FOR EACH ROW SHOW TRIGGERS
[ {FOLLOWS | PRECEDES } otroTriggers ] [{FROM | IN} nombreBD]
código [LIKE ‘patrón' | WHERE condición];
CHULETA SQL - 4
CREATE CREATE
[DEFINER = usuario] [DEFINER = user]
FUNCTION nombreFunción ([parámetro tipo [,...]]) PROCEDURE nombreProce ([parámetro [,...]])
RETURNS tipoDatoDevuelto [características ...]
[características ...] [BEGIN]
[BEGIN] [sentencias]
[sentencias] SELECT nombre_func(); [END];
RETURN valor; DROP FUNCTION nombre_función;
[END] SHOW FUNCTION STATUS; Parámetros:
[ IN | OUT | INOUT ] nombreParámetro tipo
Características (funciones y procedimientos: CALL miProcedimiento( [@mi_variable])
{ COMMENT 'string' DROP PROCEDURE nombre_procedimiento;
| LANGUAGE SQL SHOW PROCEDURE STATUS;
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | SET var_name = expr [, var_name = expr] ...
MODIFIES SQL DATA } SELECT col_name[,...] INTO var_name[,...] FROM
| SQL SECURITY { DEFINER | INVOKER } } …
SELECT @mi_variable;
DECLARE nombreVariable tipo[DEFAULT valor];
IF condicion THEN CREATE [DEFINER = { usuario| CURRENT_USER }]
statement_list; EVENT [IF NOT EXISTS]
[ELSEIF search_condition THEN statement_list] ... nombreEvento
[ELSE statement_list] ON SCHEDULE planificación
END IF; [ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
CASE variable [COMMENT 'comment']
WHEN valor THEN statement_list; DO sentencias_eventos;
[WHEN valor2 THEN statement_list] ...
[ELSE statement_list] Planificación:
END CASE; AT timestamp [+ INTERVAL intervalo] ...
nombreLoop: LOOP | EVERY intervalo
códigoLoop; [STARTS timestamp [+ INTERVAL intervalo] ...]
[etiqueta:] REPEAT
código; END LOOP nombreLoop; [ENDS timestamp [+ INTERVAL intervalo] ...]
UNTIL condición Intervalo:
END REPEAT [etiqueta]; [etiqueta:] WHILE condición DO cantidad {YEAR | QUARTER | MONTH | DAY |
código; HOUR | MINUTE | WEEK | SECOND |
END WHILE [etiqueta]; YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND |
DECLARE nombrecursor CURSOR FOR consulta;
MINUTE_SECOND}
OPEN nombrecursor;
FETCH nombrecursor INTO variable1 [, variable2 ] ...
SELECT @@event_scheduler;
CLOSE nombrecursor;
SHOW PROCESSLIST;
DROP EVENT nombre_evento;
DECLARE { CONTINUE | EXIT | UNDO } HANDLER
ALTER EVENT nombre_evento DISABLE;
FOR condición [, condición ] ...
ALTER EVENT nombre_evento ENABLE;
código;