Download create table

Document related concepts

SQL wikipedia , lookup

Null (SQL) wikipedia , lookup

Clave primaria wikipedia , lookup

Clave foránea wikipedia , lookup

Lenguaje de manipulación de datos wikipedia , lookup

Transcript
UNIDAD 3 - MySQL
Rafael Albertti
SQL
Structured Query Language (en español Lenguaje
Estructurado de Consultas)
Ya muchos productos son compatibles con SQL y se ha
hecho un estándar de bases de datos relacionales.
Componentes de SQL
Lenguaje de definición de datos (LDD).
El LDD de SQL proporciona órdenes para la definición de esquemas de relación, borrado de relaciones, creación de índices y modificación de esquemas de
relación.
Lenguaje interactivo de manipulación de datos (LMD).
El LMD de SQL incluye un lenguaje de consultas, basado tanto en el álgebra relacional como en el cálculo relacional de tuplas. Incluye también órdenes para
insertar, borrar y modificar tuplas de la base de datos.
Definición de vistas.
El LDD de SQL incluye órdenes para la definición de vistas.
Control de transacciones.
SQL incluye órdenes para la especificación del comienzo y final de transacciones.
SQL incorporado y SQL dinámico.
SQL dinámico e incorporado define cómo se pueden incorporar las instrucciones SQL en lenguajes de programación de propósito general, tales como C,
C++, Java, PL/I, Cobol, Pascal y Fortran.
Integridad.
El LDD de SQL incluye órdenes para la especificación de las restricciones de integridad que deben satisfacer los datos almacenados en la base de datos. Las
actualizaciones que violen las restricciones de integridad se rechazan.
Autorización.
El LDD de SQL incluye órdenes para especificar derechos de acceso para las relaciones y vistas.
Comandos SQL
Principales comandos para empezar a
administrar.
Comando
show databases;
create database nombre_BD
use nombre_BD
Descripción
Mostrar todas las bases de datos que
tenemos
Crear una base de datos
Usar una base de datos de las disponibles
Comandos SQL
Existen dos tipos de comandos SQL:
1. LDD que permiten crear y definir nuevas bases de
datos, campos e índices.
2. LMD que permiten generar consultas para ordenar,
filtrar y extraer datos de la base de datos.
3. Lenguaje de Control de Datos (LCD): Algunas
instrucciones de SQL que no pertenecen al LDD ni al LMD.
Comandos SQL
Lenguaje de Definición de Datos (LDD).
Comando
CREATE
DROP
ALTER
Truncate
Descripción
Podemos crear tablas, campos y la base
de datos.
Nos permite eliminar tablas.
Permite modificar las tablas agregando
campos o cambiando la definición de
los campos.
Vacía la Tabla
Comando CREATE
Podemos crear una base de datos:
Create database nombre_BD
O crear una tabla:
Create table nombres de campos y tipos de datos
Ejemplo de crear Tabla
CREATE TABLE JUEGOS
(id INT not null AUTO_INCREMENT,
nombre VARCHAR (50) not null ,
empresa VARCHAR (50) not null ,
plataforma VARCHAR (50) not null,
copias INT (3) not null,
PRIMARY KEY (id));
id
1
2
3
4
5
6
7
nombre
Dark Souls II
Mario Kart 8
Uncharted
Grand Theft Auto V
Destiny
King of Fighters 2002
Fifa 15
JUEGOS
empresa
From Software
Nintendo
Sony
Rockstar
Bungie Studios
SNK
EA
plataforma
Playstation 4
WII
Playstation 4
XBOX ONE
XBOX ONE
PC
Playstation 4
copias
12
10
11
13
9
4
14
Comando TRUNCATE
Permite vaciar la tabla:
TRUNCATE TABLE nombre_tabla
Ejemplo
id
nombre
JUEGOS
empresa
TRUNCATE TABLE JUEGOS
plataforma
copias
Comando ALTER
Permite agregar y quitar columnas
ALTER TABLE `nombre_tabla` ADD `campo`
char(100) NOT NULL
alter table NOMBRETABLA drop column
NOMBRECAMPO
Cambiar nombre al campo
ALTER TABLE nombre_tabla CHANGE
nombre_campo_actual nuevo_nombre
varchar(30)
Cambiar nombre Tabla
RENAME TABLE nombre_tabla
TO nuevo_nombre_tabla
Eliminar SQL
Se puede eliminar tanto la tabla como la Base de
datos.
Drop table nombre_tabla
Drop Database nombre_BD
Comandos SQL
Lenguaje de Manipulación de Datos (LMD).
• Consultas de selección.
• Consultas de acción.
• Consultas de control de concurrencia.
Consulta de Selección
Comando
SELECT
Descripción
Filtra registros sin modificar
información.
Ejemplo de Selección
SELECT nombre FROM prueba.juegos
JUEGOS
nombre
Dark Souls II
Mario Kart 8
Uncharted
Grand Theft Auto V
Destiny
King of Fighters 2002
Fifa 15
Ejemplo de Selección
SELECT * FROM juegos WHERE nombre = "Mario Kart 8"
id
nombre
2
Mario Kart 8
JUEGOS
empresa
Nintendo
plataforma
copias
WII
10
Ejemplo de Selección
SELECT * FROM juegos WHERE nombre = "Mario Kart 8" OR copias = 12
id
1
2
nombre
Dark Souls II
Mario Kart 8
JUEGOS
empresa
From Software
Nintendo
plataforma
Playstation 4
WII
copias
12
10
Ejemplo de Selección
id
nombre
JUEGOS
empresa
plataforma
copias
SELECT * FROM juegos WHERE nombre = "Mario Kart 8" AND copias = 12
Ir al menú
Selección de dos o más tablas
Select campos
From tabla1, tabla2
where tabla1.id = tabla2.id
Ir al menú
Selección con INNER JOIN
SELECT * FROM tabla1
INNER JOIN tabla2
ON tabla2.id_tabla1 = tabla1.id
INNER JOIN tabla3 ON tabla2.id
= tabla3.id_tabla2
Ir al menú
Comando ORDER BY
Permite ordenar el resultado
Ejemplo:
select campos
from nombre_tabla
order by campo
Ir al menú
Consultas de Acción
Para modificar la base de datos.
Comando
UPDATE
Descripción
Puede insertar grandes cantidades de
datos.
Modifica o actualiza registros.
DELETE
Elimina registros de la base de datos.
INSERT
Insertar datos
Insert into
nombre_tabla (campo) values ( ‘valor’)
Insertar varios datos ejemplo
insert into ciudad1 (nombre, poblacion)
values('México','Tlalpan'),('Nuevo
Leon','Monterrey');
Modificar registros
UPDATE nombre_tabla
SET campo = 20
WHERE campo = 12
Modificar registros ejemplo
UPDATE juegos
SET copias = 20
WHERE copias = 12
Eliminar datos
En MySQL Workbench hay una protección para
modificar o eliminar datos, para quitarla:
1. Vamos al menú en la opción “edit”.
2. Seleccionamos la opción preferencias.
Quitar opción
“Safe Updates”
Eliminar datos
Ahora si podemos eliminar
DELETE FROM nombre_tabla WHERE campo = valor
Consultas de control de concurrencia
Comando
COMMIT
ROLLBACK
Descripción
Se graban las ultimas modificaciones
en la base de datos de manera
permanente.
Permite volver al estado en el que
estaba la base de datos tras el último
COMMIT.
Comandos SQL
Lenguaje de Control de Datos (LCD).
Comando
GRANT
REVOKE
Descripción
Se emplea para dar permisos a los
usuarios.
Con él podemos eliminar permisos a
los usuarios.
Operadores agregados
SQL tiene algunos operadores que funcionan
con el nombre de un atributo, estos son:
AVG, COUNT, SUM, MIN, MAX
Valores agregados
AVERAGE
Se obtiene un promedio.
Ejemplo en la table llamada producto:
SELECT AVG (precio) FROM producto
Valores agregados
COUNT
Cuenta el número de registros, los registros repetidos son descartados.
Ejemplo:
SELECT COUNT(DISTINCT nombres)
FROM productos_orden;
Resultado = 2
Valores agregados
SUM
Suma los registros. Ejemplo:
select sum(precio) from producto
Valores agregados
SUM
Suma los registros. Ejemplo:
select sum(precio) from producto
Valores agregados
MAX
Muestra el valor máximo. Ejemplo:
select max(precio) from producto
Valores agregados
MIN
Muestra el valor mínimo. Ejemplo:
select min(precio) from producto
Respaldo en MySQL workbench
El respaldo es importante en cualquier
manejador.
Respaldo BD
Respaldo BD
Respaldo BD
Vistas
En SQL las vistas (“views”) son un mecanismo
que permite generar un resultado a partir de
una consulta (query) almacenada, después se
puede utilizar como si fuera una tabla existente.
Ejemplo
CREATE VIEW vista_paises AS
SELECT nombre_pais, nombre_estado, nombre_municipio
FROM pais
INNER JOIN estado
ON estado.id_pais = pais.id
INNER JOIN municipio
ON estado.id = municipio.id_estado
Tipos de datos
Int
Varchar
Char
Float
Llaves
Superclave. Conjunto de atributos que permiten
distinguir de forma única a una entidad dentro del
conjunto de entidades.
Por ejemplo, {Rfc} es una superclave de la entidad
CONTRIBUYENTE, también {Rfc, Nombre} es una
superclave, pero {Nombre} no es una superclave, pues
varios contribuyentes pueden tener el mismo nombre.
Clave Candidata
El concepto de clave candidata sirve para definir conjuntos con cardinalidad
mínima de atributos que identifiquen a las entidades. Pueden existir varias
claves candidatas para cada entidad.
Clave Primaria
Clave candidata que elige el diseñador para distinguir a
las entidades dentro del conjunto de entidades.
Clave Alterna
Clave candidata que no es la clave primaria.
Uso de Llave Foránea
Una llave foránea ayuda a relacionar tablas,
haciendo referencia a la llave primaria de otra
tabla. Una llave foránea también puede ser
llave primaría o incluso ser eliminada
automáticamente si se elimina la llave primaria
a la que hace referencia.
Uso de Llave Foránea con restricción
de borrado
CREATE TABLE producto ( id INT NOT NULL, precio FLOAT,
PRIMARY KEY (id));
Uso de Llave Foránea con restricción
de borrado
CREATE TABLE productos_orden
(no_orden INT NOT NULL AUTO_INCREMENT,
nombre VARCHAR(30) NOT NULL,
producto_id INT(2) NOT NULL, PRIMARY KEY(no_orden),
FOREIGN KEY (producto_id) REFERENCES producto(id));
Borrar llave primaria en cascada
Crear tabla sucursal
CREATE TABLE sucursal (id INT NOT NULL, nombre VARCHAR(50), PRIMARY KEY
(id));
Crear tabla cuenta
create table cuenta(id INT NOT NULL,
id_sucursal INT (3) not null,
foreign key (id_sucursal)
references sucursal (id)
on delete cascade
on update cascade)
LIKE en SQL
Permite hacer una selección de datos que empiecen, terminen o contengan ciertos caracteres.
Que la palabra empiece con M
atributo LIKE ‘M%'))
Que la palabra termine con M
atributo LIKE '%M'))
Que contenga la letra M
atributo LIKE '%M%'))
Tipos de JOIN
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
CROSS JOIN
Practica
1. Crear una base de datos llamada países
2. Crear 3 tablas:
3. Países, estados y municipios
4. Relacionarlos entre sí (llaves foráneas)
5. Insertar 15 municipios en una sola consulta
6. Insertar 10 estados en una sola consulta
7. Insertar 2 países en una sola consulta
8. Hacer una selección y mostrar un país con su respectivo estado y
municipio.
9. Respaldar la base de datos
Practica resultado
1. Crear una base de datos llamada países
Create database países
2. Crear 3 tablas: Países, estados y municipios, relacionarlos entre sí.
CREATE TABLE `paises` (
`id` int(11) NOT NULL
AUTO_INCREMENT,
`nombre_pais` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `estados` (
`id` int(11) NOT NULL
AUTO_INCREMENT,
`nombre_estado` varchar(50) NOT
NULL,
`id_pais` int(3) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `municipios` (
`id` int(11) NOT NULL
AUTO_INCREMENT,
`nombre_municipio` varchar(50) NOT
NULL,
`id_estado` int(3) NOT NULL,
PRIMARY KEY (`id`)
)
Practica resultado
5. Insertar 7 municipios en una sola consulta
INSERT INTO `municipios` VALUES (1,'San Juan del
Río',1),(2,'Pachuca',2),(3,'Zimapán',2),(4,'Cadereyta',1),(5,'Iztapalacra',3),(6,'Ja
lpan',1),(7,'Tlalpan',3);
6. Insertar 3 estados en una sola consulta
INSERT INTO `estados` VALUES (1,'Querétaro',1),(2,'Hidalgo',2),(3,'DF',3);
7. Insertar 2 países en una sola consulta
INSERT INTO `paises` VALUES (1,'México'),(2,'Argentina');
Practica resultado
8. Hacer una selección y mostrar un país con su respectivo estado y municipio (INNER
JOIN).
SELECT nombre_pais, nombre_estado, nombre_municipio FROM países INNER JOIN
estados ON estados.id_pais = paises.id INNER JOIN municipios ON estados.id =
municipios.id_estado Where nombre_pais = "México“
9. Respaldar la base de datos
Referencias
Silverschatz, A., Korth, H., Sudarshan, S. (2010).
http://luismido.wikidot.com/sql:structured-querylanguage
Fundamentos de Base de Datos (pp. 107-110) USA.
Mc Graw Hill.