Está en la página 1de 41

Msc. Ing.

Joel Reynaldo Alánez Durán


SQL: Introducción
• Structured Query Language
• Es el lenguaje universal más
usado para BdD Relacionales
• Lenguaje declarativo de alto
nivel
• Desarrollado por IBM (1974-
1977)
• Se convirtió en un standard
definido por :
 ANSI (American National
Standards Institute) e
 ISO (International Standards
Organization)
SQL: Introducción
• Las Sentencias SQL se dividen en:
• Sentencias DDL (Data Definition
Language): Permiten
crear/modificar/borrar estructuras
de datos.
• Sentencias DML (Data
Manipulation Languaje): para
manipular datos
• Tambien provee sentencias para:
 Definir permisos (control de
acceso de usuarios)
 Manejo de transacciones
 Otros
SQL: Crear Tablas
Sintaxis:
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
)
SQL: Crear Tablas
Ejemplo:
CREATE TABLE empleado (
enombre varchar(15) NOT NULL,
ecod integer NOT NULL,
efnac date,
dcod integer
)
SQL: Crear Tablas
Ejemplo:
CREATE TABLE empleado(
enombre varchar(15) NOT NULL,
ecod integer NOT NULL,
efnac date,
dcod integer
) Primary Key (edoc)

Es posible definir una clave primaria


SQL: Crear Tablas
Ejemplo:
CREATE TABLE empleado (
enombre varchar(15) NOT NULL,
ecod integer NOT NULL,
efnac date,
dcod integer
) Primary Key (edoc)
Foreign Key dcod References Deptos

Define la columna dcod como clave foránea apuntando a Deptos


SQL: Eliminar Tabla
Sintaxis:
DROP TABLE "nombre_tabla“

Ejemplo:

DROP TABLE empleado

Borra la tabla y todas sus filas


SQL: Truncate Tabla
Elimina todos los datos de una tabla pero no la tabla
Sintaxis:
TRUNCATE TABLE "nombre_tabla“

Ejemplo:

TRUNCATE TABLE empleado


SQL: Alter Tabla
Permite:
agregar columnas
cambiar la definición de columnas
Sintaxis:
ALTER TABLE table_name
ADD (column datatype [DEFAULT expr]);
ALTER TABLE table
MODIFY (column datatype [DEFAULT expr] );
ALTER TABLE table
ADD FOREIGN KEY (column [,...]),
REFERENCES table((column [,...]);
SQL: Instrucciones
Instrucciones DML: Permiten Manipular (leer y modificar)
los datos almacenados en las tablas.
• INSERT: Crear nuevas filas en una tabla
• UPDATE: Modificar filas existentes en una tabla
• DELETE: Borrar filas de una tabla.
• SELECT: Leer filas (o columnas) de tablas.
SQL: INSERT
Sintaxis:
Una fila a la Vez:
INSERT INTO nombre_tabla (columna1, columna2, ...)
VALUES ("valor1", "valor2", ...)

Filas múltiples en una tabla:


INSERT INTO "tabla1" ("columna1", "columna2", ...)
SELECT "columna3", "columna4", ...
FROM "tabla2"
SQL: INSERT
Ejemplo:
INSERT INTO empleado (enombre, ecod, efnac,dcod)
VALUES (“Juan”, 55, “2001-06-06”,4)
SQL: UPDATE
Sintaxis:
Una sola columna:
UPDATE nombre_tabla
SET columna_1 = [nuevo valor]
WHERE {condición}
Varias Columnas
UPDATE nombre_tabla
SET col1 = [[valor1], col2 = [valor2]…………..
WHERE {condición}
SQL: UPDATE
Ejemplo:
Una sola columna:
UPDATE empleado
SET enombre=“JAIME”
WHERE ecod=55

Varias Columnas
UPDATE empleado
SET enombre=“JAIME”, dcod=7
WHERE efnac>”2000-05-01”
SQL: DELETE
Sintaxis:
DELETE FROM nombre_tabla
WHERE {condición}

Delete sin where borra todas las filas, pero la tabla


permanece creada (sin filas)
SQL: DELETE
Ejemplo:
DELETE FROM empleado
WHERE ecod=55

DELETE FROM empleado


WHERE nombre=«Juan» AND efnac> «2001-03-21»
SQL: SELECT
Sintaxis General:
SELECT [*/DISTINCT] select_list
FROM table [table alias] [,...]
[WHERE condition]
[GROUP BY column_list]
[HAVING condition]
[ORDER BY column_name [ASC/DESC] [,...]
SQL: SELECT
Sintaxis:
SELECT nombre_columna
FROM nombre_tabla

Ejemplo
SELECT nombre
FROM empleado

SELECT *
FROM empleado
SQL: SELECT DISTINCT
DISTINCT: Elimina tuplas duplicadas
Sintaxis:
SELECT DISTINCT nombre_columna
FROM nombre_tabla
Ejemplo
SELECT DISTINCT nombre
FROM empleado
SQL: SELECT - WHERE
Selección condicional de datos
Sintaxis:
SELECT nombre_columna
FROM nombre_tabla
WHERE condición
Ejemplo
SELECT nombre
FROM empleado
WHERE ecod=55
SQL: SELECT – WHERE – AND/OR
• La condición establecida en WHERE puede ser una condición simple
(como la que se presenta en la diapositiva anterior), o puede ser una
condición compuesta.
• Las condiciones compuestas están formadas por múltiples condiciones
simples conectadas por AND u OR. No hay límites en el número de
condiciones simples que pueden presentarse en una sola instrucción
SQL.
• Sintaxis:
SELECT nombre_columna
FROM nombre_tabla
WHERE condición simple [AND|OR] condición simple [AND|OR]
condición simple….
SQL: SELECT – WHERE – AND/OR
• Ejemplo:

SELECT tienda_nombre
FROM tienda
WHERE ventas > 1000
OR (ventas < 500 AND ventas > 275)
SQL: SELECT – WHERE – IN
• Aplicable cuando se sabe exactamente el valor de los datos
regresados que se desean ver para al menos una de las
columnas

Sintaxis:
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" IN (''valor1', ''valor2', ...)
SQL: SELECT – WHERE – IN
• Ejemplo:

SELECT enombre, efnac


FROM empleado
WHERE efnac IN («1990-05-02», «1991-07-12», «1995-07-15»)
SQL: SELECT – WHERE – BETWEEN
• BETWEEN: permite la selección de un rango
• Sintaxis:
SELECT nombre_columna
FROM nombre_tabla
WHERE nombre_columna BETWEEN 'valor1' AND
'valor2'
SQL: SELECT – WHERE – BETWEEN
• Ejemplo:

SELECT *
FROM empleado
WHERE efnac BETWEEN '1999-06-01' AND '1999-10-01‘

• El formato de la fecha depende del DBMS, aunque varios manejan el


formato de almacenamiento:
• yyyy-mm-dd hh:mm:ss
SQL: SELECT – WHERE – LIKE
• LIKE permite hacer una búsqueda basada en un patrón en vez de
especificar exactamente lo que se desea (como en IN) o
determinar un rango (como en BETWEEN)

• Sintaxis

SELECT nombre_columna
FROM nombre_tabla
WHERE nombre_columna LIKE {patrón}
SQL: SELECT – WHERE – LIKE
• {patrón} generalmente consiste en comodines

• 'A_Z': Toda línea que comience con 'A', otro carácter y termine con 'Z'. Por ejemplo,
'ABZ' y 'A2Z' deberían satisfacer la condición, mientras 'AKKZ' no debería (debido a que
hay dos caracteres entre A y Z en vez de uno).

• 'ABC%': Todas las líneas que comienzan con 'ABC'. Por ejemplo, 'ABCD' y 'ABCABC'
ambas deberían satisfacer la condición.

• '%XYZ': Todas las líneas que terminan con 'XYZ'. Por ejemplo, 'WXYZ' y 'ZZXYZ' ambas
deberían satisfacer la condición.

• '%AN%': : Todas las líneas que contienen el patrón 'AN' en cualquier lado. Por ejemplo,
'LOS ANGELES' y 'SAN FRANCISCO' ambos deberían satisfacer la condición.
SQL: SELECT – WHERE – LIKE
• Ejemplo:

SELECT *
FROM empleado
WHERE enombre LIKE '%AN%'
SQL: ORDER BY
• Ordena el resultado de la consulta de forma ascendente (por defecto)
o descendente
• Sintaxis:
SELECT nombre_columna
FROM nombre_tabla
[WHERE "condición"]
ORDER BY "nombre_columna" [ASC, DESC]
Ejemplo:
SELECT ecod, enombre
FROM empleado
ORDER BY enombre
SQL: ORDER BY
• Además del nombre de la columna, es posible utilizar la posición de la
columna (según la consulta SQL) para indicar en qué columna se desea
aplicar la cláusula ORDER BY. La primera columna es 1, y la segunda
columna es 2, y así sucesivamente.
• En el ejemplo anterior, puede obtener el mismo resultado con el
siguiente comando:
• Ejemplo:
SELECT ecod, enombre
FROM empleado
ORDER BY 2
SQL: FUNCIONES AGREGADAS
• AVG: Promedio
• COUNT: Conteo
• MAX: Máximo Valor
• MIN: Mínimo valor
• SUM: Suma

Sintaxis:
SELECT "tipo de función"(nombre_columna)
FROM nombre_tabla
SQL: FUNCIONES AGREGADAS
SELECT SUM(total)
FROM ventas
WHERE fventa BETWEEN '01-01-1999' AND ‘31-12-1999‘

SELECT COUNT(ecod)
FROM empleado

SELECT AVG(edad)
FROM estudiante

SELECT MAX(nota)
FROM calificacion
WHERE codMateria=‘BdD’

SELECT MIN(nota)
FROM calificacion
WHERE codMateria=‘BdD’
SQL: GROUP BY
• La palabra clave GROUP BY se utiliza cuando se seleccionan columnas
múltiples desde una tabla (o tablas) y aparece al menos un operador
aritmético en la instrucción SELECT.

• Sintaxis:
SELECT nombre1_columna, "tipo de función"(nombre2_columna)
FROM nombre_tabla
GROUP BY nombre1-columna
SQL: HAVING
• La función HAVING se utiliza para incluir condiciones con alguna
función SQL del tipo SUM, MAX, ..

• La cláusula WHERE no se puede utilizar con funciones SQL del tipo SUM,
MAX, por lo que se utiliza HAVING.

• Sintaxis:
SELECT nom_columna1, FUNCION_ARIT(nom_columna2)
FROM nombre_tabla
GROUP BY nom_columna1
HAVING (condición de función aritmética)
SQL: ALIAS
• Existen alias de columna y alias de tabla.
• Los alias de columna existen para ayudar en la organización del
resultado.
• El alias de la tabla se define al colocar un alias directamente luego del
nombre de tabla en la cláusula FROM. Es aplicable cuando se desea
obtener información de dos tablas separadas (el término técnico es
'realizar uniones').
• Sintaxis:
SELECT alias_tabla.nom_columna1 AS alias_columna
FROM nombre_tabla alias_tabla
SQL: ALIAS
• Ejemplo:
SELECT E.nombre AS Nombre_Empleado
FROM empleado E

También podría gustarte