Está en la página 1de 4

CHULETA MySQL v2.3. Marzo2008. Felipe J.

Romero

DDL
name VARCHAR(20) NOT NULL AUTO_INCREMENT character_set_server='latin1';
PRIMARY KEY,
Cambiar la colación en el MySQL
sex CHAR(1),
(global):
Línea de comandos: birth DATE, SET GLOBAL
age INT(2), collation_server='latin1_spanish_ci';
Iniciar: raza ENUM('salchicha','pastor alemán')
mysql -u user -p ); Crear una BD con un juego de caracteres
Ejecutar un fichero bach. y colación determinados:
Cambiar Sistema de almacenamiento CREATE DATABASE hipermercado
mysql -u user -p < batch_file
ALTER TABLE clientes CHARACTER SET latin1
ENGINE MyISAM; COLLATE latin1_spanish_ci;
Crear una copia de seguridad de
una BD. Modificar una BD con un juego de
Insertar/Modificar/eliminar caracteres y colación determinados:
mysqldump --opt -u username -p database campos: ALTER DATABASE hipermercado
> database_backup.sql CHARACTER SET latin1
Añadir una columna:
ALTER TABLE clientes COLLATE latin1_spanish_ci;
mysqldump --opt --all-databases >
all_backup.sql ADD COLUMN direccion VARCHAR(40)
AFTER apellido2; Borrar BD, Tablas y campos
Mostrar Información de Tablas y BD Modificar una columna: Eliminar DB:
ALTER TABLE clientes DROP DATABASE nombre_bd;
Seleccionar una BD: CHANGE dni nif VARCHAR(10);
USE database; Eliminar TABLA:
Eliminar una columna: DROP TABLA nombre_tabla;
Listar las BD existentes: ALTER TABLE clientes
SHOW DATABASES; DROP COLUMN dni; Eliminar un campo:
Mostrar las tablas de una BD: ALTER TABLE tbl DROP COLUMN col;
SHOW TABLES; Juegos de Caracteres Y colaciones:
Mostrar/Describir el formato/diseño de Consultar juego de caracteres: Cambiar Nombre a Tabla y a Campo.
una tabla: SHOW GLOBAL VARIABLES LIKE
DESCRIBE table; RENAME TABLE clientes TO clientes2009;
'character_set_server';
ALTER TABLE clientes
Consultar colación:
Crear BD y Tablas SHOW GLOBAL VARIABLES LIKE CHANGE dni nif VARCHAR(10);
Crear una BD: 'collation_server';
CREATE DATABASE db_name; Cambiar juego de caracteres en MySQL Crear/Eliminar llave primaria y
Crear una tabla: (Global): ajena.
cREATE TABLE pet ( SET GLOBAL //Crear Llave primaria

1 de 4
CHULETA MySQL v2.3. Marzo2008. Felipe J. Romero

ALTER TABLE jugadores mysql> LOAD DATA LOCAL INFILE WHERE (Porcentaje>50.0);
ADD PRIMARY KEY (id_equipo); "infile.txt" INTO TABLE table;
Suma:
//Crear Llave ajena SELECT SUM(Superficie) AS
ALTER TABLE jugadores Actualizar datos. superficietotal
ADD FOREIGN KEY (id_equipo) UPDATE clientes FROM paises;
REFERENCES equipo(id_equipo); SET dni = '2603232'
WHERE nombre ="Pedro" AND ape1='Pérez'; Union
//Eliminar Llave primaria.
ALTER TABLE nombretabla //Crea una unión con las filas de las
DROP PRIMARY KEY;
Eliminar Datos dos tablas (han de coincidir las
DELETE FROM clientes columnas).
//Eliminar llave ajena. where sexo='v';
ALTER TABLE nombretabla
//Borra todos los datos. TABLE jugadores_nuevos
DROP FOREIGN KEY nombre_fk;
TRUNCATE TABLE clientes; UNION ALL
TABLE jugadores_antiguos

DML
ORDER BY nombre_jugador;

DML //Unión de select:


SELECT nombre_alumn

TRABAJAR CON CONSULTAS


FROM curso0708
WHERE ciclo='ESI'
UNION
DATOS Funciones
SELECT nombre_alumn
FROM curso0809
Cargar/Insertar datos WHERE ciclo='ESI';
Valor máximo y mínimo:
Cargar datos de un fichero TABULADO: SELECT MAX(edad) AS edad_maxima
FROM alumnos; Múltiples tablas
LOAD DATA LOCAL INFILE "fichero.txt"
INTO TABLE table_name; Producto cartesiano
SELECT MIN(edad) AS edad_mInima SELECT nombre_equipo, COUNT(id_jugador)
(Use \n for NULL) FROM alumnos; FROM jugadores, equipos
Insertar un registro: Contar columnas: WHERE
INSERT INTO clientes jugadores.id_equipo=equipos.id_equipo;
VALUES ('Pío Pérez', 'Gran Plaza 12', SELECT COUNT(*)
'2002-08-31',NULL); FROM clientes; INNER JOIN
//Media: media de los porcentajes de //Similar al producto cartesiano, pero más
Reloading a new data set into existing rápido si las columnas de emparejamiento
aquellas lenguas cuyo porcentaje supere
table: están indexadas.
el 50%.
SELECT AVG(Porcentaje) AS SELECT nombre_equipo, COUNT(id_jugador)
mysql> SET AUTOCOMMIT=1; # used for
mediaporcentaje FROM jugadores INNER JOIN equipos
quick recreation of table
FROM lenguas ON jugadores.id_equipo=equipos.id_equipo;
mysql> DELETE FROM pet;

2 de 4
CHULETA MySQL v2.3. Marzo2008. Felipe J. Romero

LEFT JOIN subconsulta.


//Aparecen todos los registros de la tabla Subconsultas con ANY, IN y SOME SELECT AVG(porcentmayor)
izquierda (todos los jugadores), aunque no FROM (SELECT Porcentaje AS porcentmayor
se correspondan con ningún registro de la //ANY o IN (ALIAS): es true si la
condición se cumple con cualquiera de FROM lenguas
derecha (aunque no juegen en ningún equipo). WHERE Porcentaje>50.0);
los valores de la subconsulta.
SELECT * SELECT s1
FROM jugadores LEFT JOIN equipos FROM t1 Ordenar Registros
ON jugadores.id_equipo = equipos.id_equipo; WHERE s1 > ANY (SELECT s1 FROM t2); Ordenar:
RIGHT JOIN SELECT nombre, edad FROM amigos ORDER BY
//Aparecen todos los registros de la tabla //ALL: es true si la condición se cumple edad DESC;
derecha (todos los equipos), aunque no se con todos los valores devueltos por la
correspondan con ningún registro de la subconsulta.
izquierda (aunque no tengan ningún jugador).
SELECT s1 Cálculos con fechas:
FROM t1 SELECT CURRENT_DATE,
SELECT * (YEAR(CURRENT_DATE)-YEAR(fechanac)) AS
FROM empleados RIGHT JOIN oficinas WHERE s1 > ALL (SELECT s1 FROM t2); time_diff
ON empleados.oficina = oficinas.oficina; FROM amigos;
Subconsultas con EXISTS y NOT
Seleccionar Registros distintos EXISTS Selección con caracteres comodín:
(DISTINCT) //Qué país tiene una o más ciudades. SELECT *
FROM clientes
SELECT (general): SELECT DISTINCT nombre WHERE nombre LIKE "Jua%";
SELECT dni,nombre FROM paises
FROM clientes WHERE EXISTS
( SELECT *
Agrupamientos (group by)
WHERE dni='22234432' OR 'dni=25343234';
FROM ciudades SELECT id_equipo, COUNT(*)
WHERE FROM jugadores
SELECT * FROM pedidos; ciudades.Cod_pais=paises.Cod_pais); GROUP BY id_equipo;
Listado de todos los nombres de clientes //Qué país NO tiene una o más ciudades.
distintos:
SELECT DISTINCT nombre FROM clientes; SELECT DISTINCT nombre Condiciones con HAVING
FROM paises SELECT id_proveedor, MAX(precio_compra)
WHERE NOT EXISTS FROM compras
Subconsultas ( SELECT * GROUP BY id_proveedor
SELECT nombre_equipo FROM ciudades HAVING MAX(precio_compra)>100;
FROM equipos WHERE
WHERE (id_equipo= ciudades.Cod_pais=paises.Cod_pais);
(SELECT DISTINCT id_equipo
FROM jugadores
WHERE numero_goles>0) Subconsultas en FROM
); //Es obligatorio el AS dentro de la

3 de 4
CHULETA MySQL v2.3. Marzo2008. Felipe J. Romero

TIPOS DE VarChar(n)
bytes)
Longitud variable.
De 0 a 255 caracteres.

DATOS TinyText
TinyBlob
(n+1 bytes)
Máx 255 char.
Máx. 255 bytes
TINYINT 1 byte (binarios).
SMALLINT 2 bytes Text Máx. 65535 char.
MEDIUMINT 3 bytes Blob Máx. 65535 bytes (bin).
INT 4 bytes MediumText Máx. 16 Mill. char.
INTEGER 4 bytes MediumBlob Máx 16 Mill. bytes (bin)
BIGINT 8 bytes LongText Máx 4294 mill. Char.
FLOAT(X) 4 ú 8 bytes LongBlob Máx 4294 mill. Bytes
FLOAT 4 bytes (bin).
DOUBLE 8 bytes
Enum Hasta 65535 valores.
DOUBLE PRECISION 8 bytes
Fruta ENUM
REAL 8 bytes ('limón','naranja');
DECIMAL(M,D) M+2 bytes sí D > 0, Set puede contener ninguno, uno ó
M+1 bytes sí D = 0 varios valores de una lista.
(Máx 64 valores).
NUMERIC(M,D) M+2 bytes if D > 0,
M+1 bytes if D = 0

Date FECHA (3 bytes)


DateTime FECHA Y HORA (8bytes)
TimeStamp FECHA Y HORA (4bytes)
Time HORA (3bytes)
Year AÑO (1901-2155) (1byte)

Char(n) Longitud fija.


De 0 a 255 caract. (n

4 de 4

También podría gustarte