Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MySQL Session 2
MySQL Session 2
1
Codigo SQL : Creacion de bases de datos
2
Codigo SQL : Creacion de bases de datos
3
Codigo SQL : Creacion de bases de datos
4
Codigo SQL : Creacion de bases de datos
5
6
MySQL Workbench
PK − Primary Key
NN − NOT NULL
UQ − Unique
BIN − Binary
UN − Unsigned
ZF − Zero Filled
AI − Auto Increment
G − Generate Column
7
8
MySQL
PK − Primary Key
Representa la clave principal.
NN − NOT NULL
Opcion para hacer que la columna no inserte un valor NULO.
UQ − Unique
Opcion para hacer que la columna inserte solo un valor único para una columna
específica.
AI − Auto Increment
En ocasiones puede ser necesario crear un campo autoincremental, por
ejemplo, usar como identificador en una tabla.
9
MySQL
Tipos de Datos
10
MySQL: TIPOS DE DATOS
Los tipos de datos definen la naturaleza de los datos que se pueden almacenar
en una columna particular de una tabla.
Numeric
Text
Date/time
11
MySQL: TIPOS DE DATOS: Numericos
NUMÉRICOS ENTEROS
Se utilizan para almacenar datos que sean númericos enteros (edades,
cantidades, magnitudes sin decimales).
12
MySQL: TIPOS DE DATOS: Numericos
NUMÉRICOS DECIMALES
Estos tipos de datos son necesarios para almacenar precios, salarios, importes de
cuentas bancarias, etc. que no son enteros.
FLOAT; Permite almacenar como minimo el valor -999.99 y como máximo 999.99
DOUBLE; Al ser de doble precisión, sólo permite que la cantidad de decimales se defina
entre 25 y 53.
13
MySQL: TIPOS DE DATOS: Alfanumericos
14
MySQL: TIPOS DE DATOS: Alfanumericos
CHAR
El tipo de dato alfanumérico mas simple: CHAR (character, o caracter). Permite
almacenar textos breves, de hasta 255 caracteres de longitud.
15
MySQL: TIPOS DE DATOS: Alfanumericos
BLOB
Guarda información en formato binario y se utiliza cuando se almacena en la
base de datos el contenido de un archivo binario (una imagen o un archivo
comprimido ZIP) leyéndolo byte a byte.
16
MySQL: TIPOS DE DATOS: Fecha
DATE
El tipo de dato DATE permite almacenar fechas en el formato: AAAA-MM-DD
(los cuatro primeros dígitos para el año, los dos siguientes para el mes, y los
ultimos dos para el dia).
17
MySQL: TIPOS DE DATOS: Fecha
18
MySQL: TIPOS DE DATOS: Fecha
19
MySQL
Querys
20
MySQL Querys: SELECT
21
MySQL Querys: SELECT
• SELECT es la palabra clave que le permite a la base de datos saber que desea
recuperar datos.
• [DISTINCT | ALL] son palabras clave opcionales que se pueden usar para ajustar los
resultados devueltos por la instrucción SQL SELECT.
22
MySQL Querys: SELECT
23
MySQL Querys: SELECT
• GROUP BY se utiliza para juntar registros que tienen los mismos valores de
campo.
24
MySQL Querys: SELECT
25
MySQL Querys: SELECT
26
MySQL Querys: SELECT
27
MySQL Querys: SELECT
28
MySQL Querys: SELECT
29
MySQL Querys: SELECT
30
MySQL Querys: SELECT
31
MySQL Querys: SELECT
• SELECT Concat(Titulo, ' (', director, ')’) Es la declaración SELECT regular que
puede ser un nombre de columna, valor o expresión.
• "[AS]" es la palabra clave opcional antes del nombre de alias que indica la
expresión, el valor o el nombre del campo se devolverá como.
32
MySQL Querys: SELECT
Si se requiere obtener una lista de todos los miembros que muestre el número
de membresía, los nombres completos y el año de nacimiento.
Se puede usar la función LEFT para extraer el año de nacimiento del campo de
fecha de nacimiento.
33
MySQL Querys: SELECT
34
MySQL Querys: SELECT
35
MySQL Querys: WHERE
36
MySQL Querys: WHERE
37
MySQL Querys: WHERE Combinado
38
MySQL Querys: WHERE Combinado
39
MySQL Querys: WHERE Combinado
40
MySQL Querys: INSERT
Se utiliza para almacenar datos en las tablas. El comando INSERT crea una
nueva fila en la tabla para almacenar datos.
41
MySQL Querys: DELETE
Se utiliza para eliminar filas que ya no son necesarias de las tablas de la base de
datos. Elimina toda la fila de la tabla y devuelve el recuento de filas eliminadas.
42
MySQL Querys: UPDATE
UPDATE table_name
SET column_name = `new_value'
[WHERE condition];
UPDATE mydb.Miembros
SET Nombre_Completo = `Carmen Lopez'
[WHERE condition];
43
MySQL Querys: ORDER BY
44
MySQL Querys: ORDER BY
SELECT {fieldName(s) | *}
FROM tableName(s)
[WHERE condition]
ORDER BY fieldname(s) ASC/DESC
SELECT *
FROM mydb.Miembros
ORDER BY genero ASC;
SELECT *
FROM mydb.Miembros
ORDER BY genero DESC;
45
MySQL Querys: Funciones
46
MySQL Querys: Funciones
47
MySQL Querys: Funciones
48
MySQL Querys: Funciones
49
MySQL Querys: Funciones
La función SUM () es una función que toma el nombre de una columna como
argumento y devuelve la suma de todos los valores de esa columna.
• SELECT SUM (nombre_columna) FROM nombre_tabla;
50
MySQL Querys: Palabras clave
AND ANY AS
BETWEEN DISTINCT IN
51
MySQL Querys: Palabras clave
52
MySQL Querys: Palabras clave
NOT NULL - Una restricción que obliga a una columna a no aceptar valores NULL
53
MySQL Querys: Palabras clave
54
MySQL Querys: Sub Querys
SELECT Nombre_Categoria
FROM mydb.Categoria
WHERE idcategoria = (SELECT MIN(idcategoria) from mydb.Peliculas )
55
MySQL Querys: JOINS
Tipos de Joins
INNER JOIN
LEFT JOIN
RIGHT JOIN
OUTER JOIN
56
MySQL Querys: JOINS
INNER JOIN
Solo muestra registros comunes a ambas tablas.
57
MySQL Querys: JOINS
LEFT JOIN
Selecciona registros de la primera tabla (la izquierda) con registros de la tabla
derecha coincidentes.
58
MySQL Querys: JOINS
RIGHT JOIN
Selecciona registros de la segunda tabla (a la derecha) que coincidan con los
registros de la tabla izquierda.
59
MySQL Querys: JOINS
OUTER JOIN
Todo el contenido de ambas tablas se fusiona, ya sea que coincidan o no.
60
MySQL Querys: JOINS
61
MySQL Querys: JOINS
62
MySQL Querys: JOINS
63
MySQL Querys: JOINS
64
MySQL Querys: UNION
Los únicos requisitos para que esto funcione es que el número de columnas
debe ser el mismo de todas las consultas SELECT que deben combinarse.
65
MySQL Querys: UNION
66
MySQL Querys: UNION
67
MySQL Querys: UNION
68
MySQL Querys: VIEWS
Las VISTAS son tablas virtuales que no almacenan ningún dato propio pero
muestran datos almacenados en otras tablas.
El comando DROP se utiliza para eliminar una vista de la base de datos que ya
no es necesaria.
69
MySQL Querys: VIEWS
70
MySQL Querys: VIEWS
71
MySQL
Querys Ejemplo
72
SELECT
e.employee_id AS "Employee #"
, e.first_name || ' ' || e.last_name AS "Name"
, e.email AS "Email"
, e.phone_number AS "Phone"
, TO_CHAR(e.hire_date, 'MM/DD/YYYY') AS "Hire Date"
, TO_CHAR(e.salary, 'L99G999D99', 'NLS_NUMERIC_CHARACTERS = ''.,'' NLS_CURRENCY = ''$''') AS "Salary"
, e.commission_pct AS "Comission %"
, 'works as ' || j.job_title || ' in ' || d.department_name || ' department (manager: '
|| dm.first_name || ' ' || dm.last_name || ') and immediate supervisor: ' || m.first_name || ' ' || m.last_name AS "Current Job"
, TO_CHAR(j.min_salary, 'L99G999D99', 'NLS_NUMERIC_CHARACTERS = ''.,'' NLS_CURRENCY = ''$''') || ' - ' ||
TO_CHAR(j.max_salary, 'L99G999D99', 'NLS_NUMERIC_CHARACTERS = ''.,'' NLS_CURRENCY = ''$''') AS "Current Salary"
, l.street_address || ', ' || l.postal_code || ', ' || l.city || ', ' || l.state_province || ', '
|| c.country_name || ' (' || r.region_name || ')' AS "Location"
, jh.job_id AS "History Job ID"
, 'worked from ' || TO_CHAR(jh.start_date, 'MM/DD/YYYY') || ' to ' || TO_CHAR(jh.end_date, 'MM/DD/YYYY') ||
' as ' || jj.job_title || ' in ' || dd.department_name || ' department' AS "History Job Title"
FROM employees e
JOIN jobs j ON e.job_id = j.job_id
LEFT JOIN employees m ON e.manager_id = m.employee_id
LEFT JOIN departments d ON d.department_id = e.department_id
LEFT JOIN employees dm ON d.manager_id = dm.employee_id
LEFT JOIN locations l ON d.location_id = l.location_id
LEFT JOIN countries c ON l.country_id = c.country_id
LEFT JOIN regions r ON c.region_id = r.region_id
LEFT JOIN job_history jh ON e.employee_id = jh.employee_id
LEFT JOIN jobs jj ON jj.job_id = jh.job_id
LEFT JOIN departments dd ON dd.department_id = jh.department_id
ORDER BY e.employee_id;
73
MySQL Querys
74
75
Query a Segmentar:
SELECT ens.company, ens.state, ens.zip_code, ens.complaint_count
FROM (select company, state, zip_code, count(complaint_id) AS complaint_count
FROM credit_card_complaints
WHERE state IS NOT NULL
GROUP BY company, state, zip_code) ens
INNER JOIN
(SELECT ppx.company, max(ppx.complaint_count) AS complaint_count
FROM (SELECT ppt.company, ppt.state, max(ppt.complaint_count) AS complaint_count
FROM (SELECT company, state, zip_code, count(complaint_id) AS complaint_count
FROM credit_card_complaints
WHERE company = 'Citibank'
AND state IS NOT NULL
GROUP BY company, state, zip_code
ORDER BY 4 DESC) ppt
GROUP BY ppt.company, ppt.state
ORDER BY 3 DESC) ppx
GROUP BY ppx.company) apx
ON apx.company = ens.company
AND apx.complaint_count = ens.complaint_count
ORDER BY 4 DESC;
76
Query Segmentado:
77
Resultado de Ejecucion:
78
MySQL
Bases Ejemplos
79
Structure
80
Structure
81