0% encontró este documento útil (0 votos)
4 vistas

MySQL V3

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas

MySQL V3

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 51

MySQL

Prof: Ing. Evangelina Del Río


Creación de la BD
• CREATE DATABASE nombreBaseDatos;
Consultar las BDs
• SHOW DATABASES;
USAR una BD
• USE nombreBaseDatos;
BORRAR una BD
• DROP nombreBaseDatos;
Ver las tablas de una BD
• SHOW TABLES;
Creación de TABLAS
• CREATE TABLE nombretabla
(
nombrecampo1 tipodato1,
nombrecampo2 tipodato2,
nombrecampo3 tipodato3,

CONSTRAINT [nombre] PRIMARY KEY [(campo1,campo2, ... campo_n),
FOREIGN KEY (campo) REFERENCES tabla2(campo)
);
Tipos de datos Numéricos:
Tipos de datos
Enteros Bytes Valor mínimo Valor máximo
TINYINT 1 -128 127
SMALLINT 2 -32768 32767
MEDIUMINT 3 -8388608 8388607
INT o INTEGER 4 -2147483648 2147483647
BIGINT 8 - 92233720368547758
92233720368547758 07
BIT(n) de 1 a 6 bits por defecto08
vale 1 se usa como booleano
Tipos de datos Decimales
FLOAT(Total,decimales) DOUBLE
DECIMAL
Tipos de datos Alfanuméricos:
Tipo de campo Tamaño de Almacenamiento Usos

Cadena con caracteres con


CHAR(n) n bytes
longitud fija
Cadena con caracteres con
VARCHAR(n) n +1 bytes
longitud variable
Objeto binario largo/ Cadena de
TINYBLOB, TINYTEXT Longitud+1 bytes
texto pequeña
Objeto binario largo/ Cadena de
BLOB, TEXT Longitud +2 bytes
texto
MEDIUMBLOB, Objeto binario largo/ Cadena de
Longitud +3 bytes
MEDIUMTEXT texto mediana
Objeto binario largo/ Cadena de
LONGBLOB, LONGTEXT Longitud +4 bytes
texto larga
1 ó dos bytes dependiendo del
ENUM('value1','value2',...) Enumeración
número de valores
Tamaño de
Tipo de Campo Formato
Almacenamiento
Tipos de datos
Fecha: DATE 3 bytes AAAA-MM-DD

DATETIME 8 bytes AAAA-MM-DD hh:mm:ss

AAAAMMDDhhmmss
Puede usarse DEFAULT
TIMESTAMP 4 bytes CURRENT_TIMESTAMP y
ON UPDATE
CURRENT_TIMESTAMP

TIME 3 bytes hh:mm:ss

YEAR 1 byte AAAA


Creación TABLA restricciones

• NOT NULL #Requerido


• UNIQUE #Sin repeticiones
• PRIMARY KEY #Clave principal
• FOREIGN KEY #Clave foránea
• CHECK #Regla de validación
• DEFAULT #Valor predeterminado
• AUTO_INCREMENT #Autonumérico
Agregar registros con INSERT
• INSERT INTO nombretabla
VALUES (valor1, ´valor2´, valor3, ...);
• INSERT INTO nombretabla (campo1, campo2, campo3,…)
VALUES (valor1, ´valor2´, valor3, …);
Agregar registros desde otra tabla
• INSERT INTO nombretabla
SELECT * FROM nombredetabla;

• INSERT INTO nombretabla (campo1, campo2, campo3)


SELECT campo1, campo2, campo3
FROM nombredetabla WHERE condición;
Reemplazar un registro existente
• REPLACE INTO nombretabla
VALUES (valor1, ´valor2´, valor3, ...);
• REPLACE INTO nombretabla (campo1, campo2, campo3,…)
VALUES (valor1, ´valor2´, valor3, …);
Consultas con SELECT
• SELECT * FROM nombretabla;
• SELECT campo1, campo2 FROM nombretabla;
• SELECT campo1, campo2 FROM nombretabla WHERE campo = ‘valor’;
• SELECT campo1, campo2 FROM nombretabla WHERE campo1 = ‘valora’ AND campo2 = ‘valor2’;
• SELECT campo1, campo2 FROM nombretabla WHERE campo1 = ‘valora’ OR campo2 = ‘valor2’;
• SELECT nombrecampos AS alias FROM nombretabla;
• SELECT Tabla1.campo1, Tabla2.campo2 FROM nombretabla1, nombretabla2;
• SELECT tabla.campo FROM nombretabla LIMIT registro_desde, cantidad de registros;
Ordenamiento
• SELECT nombrecampos FROM nombretabla ORDER BY nombrecampo ASC;
• SELECT nombrecampos FROM nombretabla ORDER BY nombrecampo DESC;
• SELECT nombrecampos FROM nombretabla ORDER BY númerodecampo ASC;
Agrupamiento
• SELECT nombrecampos FROM nombretabla GROUP BY nombrecampo;
• SELECT nombrecampos, función AS alias FROM nombretabla GROUP BY nombrecampo
HAVING filtro_grupos;
Consulta sin repeticiones con DISTINCT
• SELECT DISTINCT campo FROM nombretabla;
Creación de TABLAS a partir de otra tabla
• CREATE TABLE nombretabla
SELECT * FROM Tabla_origen;

• CREATE TABLE nombretabla


SELECT campo1 AS nombre_campo, campo2 AS nombre_campo FROM
tabla_origen;

• CREATE TABLE nombre_tabla LIKE tabla_origen;


Unión de consulta con UNION
• (SELECT campo1, campo2 FROM tabla)
UNION DISTINCT
(SELECT campo1, campo2 FROM tabla)
[ORDER BY campo 1 LIMIT cantidad_de_registros;
Se puede usar sólo UNION y no muestra los registros duplicados
• (SELECT campo1, campo2 FROM tabla)
UNION ALL
(SELECT campo1, campo2 FROM tabla);
Muestra los registros duplicados
SELECT completa
• SELECT [DISTINCT] select_expr [, select_expr] …
FROM tabla
[WHERE filtro]
[GROUP BY expr [, expr] …]
[ORDER BY {nombre_columna | expr | posición} [ASC | DESC], …]
Uso de LIMIT en SELECT
• SELECT campo1, campo2 FROM tabla LIMIT cantidad_desde_el_comenzando;
• SELECT campo1, campo2 FROM tabla LIMIT desde_registro, cantidad_de_registros;
Recupetación de registros aleatorios: rand()
• SELECT * FROM tabla ORDER BY RAND() LIMIT cantidad_registros;
Función: IF
• SELECT campo, IF (condición, si_se_cumple, si_no_se_cumple) FROM tabla;

Se puede usar con ORDER BY y con GROUP BY


Función: CASE
• SELECT campo, CASE campo_o_función
WHEN valor1 THEN acción1
WHEN valor2 THEN acción2

ELSE acción_si_no_se_cumple FROM tabla;
• Se puede usar con ORDER BY y con GROUP BY
OPERADORES
• Operadores aritméticos (+, -, *, /, %)
• Operadores relacionales (>, <, <>, >=, <=, =)
• Operadores lógicos (AND, OR, NOT)
• Paréntesis ()
• Funciones (date_add, concat, left, right, …)
MÁS OPERADORES
• Operadoradores de pertenencia a conjuntos
IN (valor1, valor2, …)
NOT IN (valor1, valor2, …)
• Operador de rango
BETWEEN Value1 AND Value2
NOT BETWEEN Value1 AND Value2
MÁS OPERADORES
• Test de valor nulo
IS NULL
IS NOT NULL
• Test de patrón (% y _)
LIKE ´patron´
NOT LIKE ´patron´
OPERADORES DE RESÚMENES

• SUM (campo) #suma los valores indicados en el argumento


• AVG (campo) #calcula la media de los valores
• MIN (campo) #calcula el mínimo
• MAX (campo) #calcula el máximo
• COUNT (campo) #cuenta el número de valores de una columna (excepto los nulos)
• COUNT (*) #cuenta el número de valores de una fila (incluyendo los nulos)
Visualizar los campos de una tabla con SHOW
COLUMNS
• SHOW COLUMNS FROM nombretabla;
Establecer valores a registros de una tabla con
UPDATE
• UPDATE nombretabla
SET campo1 = valor1, campo2 = ´valor2´
WHERE campo3 = valor3;
Agregar un campo a una tabla con ALTER TABLE
• ALTER TABLE nombretabla
ADD campo1 tipodedato restricciones;
• ALTER TABLE nombretabla
ADD COLUMN campo1 tipodedato restricciones;
Eliminar un campo de una tabla con ALTER
TABLE
• ALTER TABLE nombretabla
DROP campo;
• ALTER TABLE nombretabla
DROP COLUMN campo;
Modificar el tipo de dato de un campo de una tabla
con ALTER TABLE
• ALTER TABLE nombretabla
CHANGE campo tipo;
Renombrar un campo de una tabla con ALTER
TABLE
• ALTER TABLE nombretabla
CHANGE campo nombrenuevodelcampo;
Crear un INDICE único en una tabla

• ALTER TABLE nombretabla


ADD CONSTRAINT nombredeindice UNIQUE (nombredelcampo);
• CREATE UNIQUE INDEX nombredeindice ON nombredetabla
(nombredelcampo);
Eliminar un INDICE en una tabla

• DROP INDEX nombredeindice;


Agregar una Clave principal en una tabla

• ALTER TABLE nombretabla


ADD CONSTRAINT nombredecampo PRIMARY KEY;
Agregar la clave foránea en una tabla

• ALTER TABLE nombretabla


ADD CONSTRAINT nombredeindice FOREIGN KEY (nombredelcampo)
REFERENCES otratabla(campo);
Eliminar registros con DELETE
• DELETE * FROM nombretabla;
• DELETE FROM nombretabla
WHERE nombrecampo = valor;
• DELETE FROM nombretabla
WHERE nombrecampo = valor
ORDER BY nombrecampo LIMIT cantidad;
Vaciar la tabla con TRUNCATE
• TRUNCATE TABLE nombretabla;

Más rápido que usar DELETE


Eliminar Tabla
• DROP TABLE nombretabla;

Sólo para tablas vacías (sin NULLs)


Renombrar una Tabla
• ALTER TABLE nombretabla RENAME nombrenuevo;
Cargar datos en una Tabla desde un archivo de
texto
• LOAD DATA INFILE ´ruta\nombrearchivo.txt´ INTO TABLE nombretabla;
Cargar datos en una Tabla desde otra tabla

• INSERT INTO nombretabla


SELECT campo1, campo2, campo3 FROM tablaorigen WHERE campo1 =
valor;
Consulta entre dos tablas usando CROSS JOIN
Combinación todos con todos – Producto cartesiano
• SELECT A.campo1, B.campo2 FROM A CROSS JOIN B;
Consulta entre dos tablas usando INNER JOIN
Combinación interna
• SELECT A.campo1, B.campo2 FROM A INNER JOIN B ON A.Código =
B.Código;

Los valores nulos (donde no hay coincidencia) no los toma


Consulta entre dos tablas usando OUTER JOIN
Combinación externa
• SELECT A.campo1, B.campo2
FROM A LEFT OUTER JOIN B ON
A.Código = B.Código;

• SELECT A.campo1, B.campo2


FROM A LEFT OUTER JOIN B ON
A.Código = B.Código
WHERE B.Código IS NULL;
Consulta entre dos tablas usando OUTER JOIN
Combinación externa
• SELECT A.campo1, B.campo2
FROM A RIGHT OUTER JOIN B ON
A.Código = B.Código;

• SELECT A.campo1, B.campo2


FROM A RIGHT OUTER JOIN B ON
A.Código = B.Código
WHERE A.Código IS NULL;
Consulta entre dos tablas usando OUTER JOIN
Combinación externa
• SELECT A.campo1, B.campo2
FROM A FULL OUTER JOIN B ON
A.Código = B.Código;

• SELECT A.campo1, B.campo2


FROM A FULL OUTER JOIN B ON
A.Código = B.Código
WHERE A.Código IS NULL OR B.Código IS NULL;
Consulta entre dos tablas usando INNER JOIN, LEFT
JOIN, RIGHT, FULL OUTER JOIN con USING

• SELECT A.campo1, B.campo2


FROM A INNER JOIN B
USING (Campo_Código_con_el_mismo_nombre_en _ambas_tablas);

• SELECT A.campo1, B.campo2


FROM A LEFT o RIGHT JOIN B
USING (Campo_Código_con_el_mismo_nombre_en _ambas_tablas);

• SELECT A.campo1, B.campo2


FROM A FULL OUTER JOIN B
USING (Campo_Código_con_el_mismo_nombre_en _ambas_tablas);

También podría gustarte