0% encontró este documento útil (0 votos)
122 vistas16 páginas

SQL: DDL, DML y Consultas Multitablas

El documento proporciona una introducción a SQL, abarcando conceptos de DDL, DML y consultas multitablas. Se explican las funciones principales como la creación y modificación de bases de datos y tablas, así como las operaciones de inserción, actualización y eliminación de datos. Además, se detallan las consultas simples y multitablas, incluyendo el uso de JOIN y condiciones para filtrar resultados.

Cargado por

juliantejerina5
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 PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
122 vistas16 páginas

SQL: DDL, DML y Consultas Multitablas

El documento proporciona una introducción a SQL, abarcando conceptos de DDL, DML y consultas multitablas. Se explican las funciones principales como la creación y modificación de bases de datos y tablas, así como las operaciones de inserción, actualización y eliminación de datos. Además, se detallan las consultas simples y multitablas, incluyendo el uso de JOIN y condiciones para filtrar resultados.

Cargado por

juliantejerina5
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 PPTX, PDF, TXT o lee en línea desde Scribd

Clase 4: SQL – DDL –

DML –Consultas Simples


y Multitablas
BASE DE DATOS – Ing. José Farfán
FAC.DE INGENIERIA – UNJu
2.023
SQL (Structured query language)
Es 1leng.de
consulta
estructurado,
surgido de un
proyecto de
investig.de
IBM p/el
acceso a BD
relac..
Actualmente
se ha
convertido en
un estándar
de leng.de
BD, y la
mayoría de
los sist.de BD
lo soportan,
desde
sist.p/comput
TCL
DDL Clasificació Leng.de Control de Transacciones, q
es considerado como 1leng.de
n
Data Description Language:
incluye órdenes p/definir, programac.y 1subconj.de SQL q se
modificar o borrar las tablas utiliza p/controlar el procesamiento de
en las q se almacenan los transacciones en 1BD. Una
datos y de las relac.entre transacción es 1unidad lógica de
estas. CREATE, DROP. trabajo que comprende 1o+ sent.SQL,
DCL x lo general un grupo de DML.
COMMIT, SAVEPOINT, ROLLBACK, SET
Data Control Language: contiene elementos
TRANSACTION
útiles p/trabajar en un entorno multiusuario, DML
en el q es importante la protección de los Data Manipulation Language: permite
datos, la seguridad de las tablas y el recuperar datos almacenados en la BD e
establecimiento de restricciones en el incluye órdenes p/permitir al us.
acceso (us.concurrentes). GRANT, REVOKE actualizar la BD añadiendo nuevos datos,
suprimiendo datos antiguos o
modificando datos previamente
almacenados. SELECT, INSERT, UPDATE,
DELETE
DROP TABLE CREATE INDEX
DROP INDEX
DDL Permite crear 1índice sobre
1óvarias columnas de1tabla.

CREATE DATABASE CREATE TABLE


Ej.en PostgreSQL Crea la estructura de 1tabla, definiendo las
CREATE DATABASE columnas y las restricc. q deben cumplir
name esas columnas
[ [ WITH ] [ OWNER
[=] user_name ]
[ TEMPLATE [=]
La restricción es 1característica adicional q ALTER TABLE
template ]
tiene1columna o1combinación de columnas
[ ENCODING Modifica la estruct.d 1tabla q ya
[=] encoding ] existe. S puede añadir columnas
[ LC_COLLATE nuevas, eliminar columnas. Hay q
[=] lc_collate ] tener en cuenta q cuando s
elimina1columna s pierden todos
[ LC_CTYPE [=]
lc_ctype ] los datos almacenados en ella.
También permite crear nuevas
[ TABLESPACE
[=] tablespace ]
restricciones o borrar algunas
X ej.: CREATE TABLE tab1 ( col1 INTEGER existentes.
[ CONNECTION
LIMIT [=] connlimit ] ] CONSTRAINT pk PRIMARY KEY, col2
CHAR(25) NOT NULL, col3 CHAR(10)
CONSTRAINT uni1 UNIQUE, col4 INTEGER,
col5 INT CONSTRAINT fk5 REFERENCES tab2
);
DDL CREATE DATABASE: Ej.en PostgresQL - pgAdmin

1º Abrimos pgAdmin, nos dirigimos a Databases  Create  Database

Podemos dirigirnos a la pestaña SQL para observar la sent.SQL


2º Le ponemos un nombre

4º Podemos 3º Procedemos a hacer clic en Save


observar que
se creado
correctamente
DDL CREATE TABLE: Ej.en PostgresQL - pgAdmin 2º Colocamos el
nombre de la tabla
1º Abrimos la BD  Schemas  Public  Tables  Create  Table…

3ºNos dirigimos a la pestaña Column.y hacemos


clic en +

3º Nos dirigimos a la pestaña Columnas, hacemos clic en + y sumamos el atrib. lu


(entero, clave primaria), el
nombre (character de 20, no nulo)
y fecha de ingreso (date)

4º Hay 1pestaña Contraints p/agregar


restricciones, y otra SQL donde podemos
observar el código SQL de la creación de la
tabla. Finalmente procedemos a grabar
hacienda clic en Save.
INSERT INTO
DML
Permite insertar datos en 1tabla se realiza añadiendo filas enteras a la tabla. Sintaxis:
INSERT INTO nombre_tabla [(nombreatrib1, nombreatrib2, …)] VALUES (valoratrib1, valoratrib2, …)
Por ej: a ) INSERT INTO empleados VALUES (200, ‘Juan López’, 30, NULL, ‘rep ventas’, CTOD(‘06/23/01’), NULL, 350000, 0)
b) INSERT INTO empleados (numemp, oficina, nombre, titulo, fecha) VALUES (200, 30, ‘Juan López’, NULL, ‘rep ventas’,
NULL, CTOD(‘06/23/01’))

Supongamos que deseamos incorporar registros en alumnos, hay dos formas de hacerlo en postgreSQL:
1º Ir a Tables  alumnos  clic con el botón derecho 
View/Edit DataAll RowsData OutputIngresar valores
Save Data Changes o F6

2ºIr a Tablesclic con el botón derecho Query Tool …


Query EditorEscribir las sentF5 o Flecha Der.

Debe mostrar el
mensaje de que se
realice
correctamente
DMLUPDATEModifica los valores de 1 o + columnas en las filas seleccionadas d 1 o varias
tablas. Sintaxis:
El origen puede ser 1nombre d tabla, 1nombre d
consulta o 1composición d tablas, también puede
incluir la cláusula IN si la tabla a modificar se
encuentra en una BD externa.
Ej: a ) UPDATE oficinas SET cuota=ventas*0.90; SET especifica q columnas van a modificarse y q
b) UPDATE empleados SET ventas = 0 WHERE oficina = 12 asignar a esas columnas.
valores
1º Ir a Tables  alumnos  clic con el botón derecho  nbcolumna indica el nombre d la columna a la cual
View/Edit DataAll RowsData OutputModificar los queremos asignar1nuevo valor
valores Save Data Changes o F6
Where establece la condición q s debe cumplir
p/realizar la actualización
2ºIr a Tablesclic con el botón derecho Query Tool
… Query EditorEscribir las sentF5 o Flecha Der.

Debe mostrar el
mensaje de que se
realizó
correctamente
DML SELEC
Muestra informac.sobre los datos almacenados en la BD, puede ser d 1o varias tablas (consultas
T
SIMPLES o MULTITABLAS). El result.d 1SELECT devuelve 1tabla lógica (son1relac.d datos con filas y
columnas, igual a 1tabla d la BD), la q está en memoria mientras s utiliza y luego se descarta. C/vez que
s ejecuta la consulta se vuelve a calcular el result. Sintaxis:
SELECT [ ALL / DISTINCT ] [ * ] / [ListaAtributos_Expresiones] AS [Expresion]
FROM OrigenDatos ALL es el valor predeterminado, especifica q el conj. de
resultados puede incluir filas duplicadas. No se utiliza.
[WHERE Condiciones]
DISTINCT especifica q el conj.d result.sólo puede incluir filas
[GROUP BY ColumnasAgrupamiento] únicas. Es decir, si al realizar1consulta hay registros
[HAVING Condiciones] exactamente iguales q aparecen + d 1vez, éstos se eliminan.

[ORDER BY ListaColumnas [ ASC / DESC ]]ListaAtributos especifica 1lista de nombres d campos d la


tabla q interesan. S separan mediante comas.

Se puede anteponer el Si queremos q nos devuelva todos los


nombre d la tabla al campos d la tabla se usa el comodín “*”
nombre d las columnas, (asterisco), x ej.
utilizando el formato
Tabla.Columna. Además d
nombres de columnas, en
esta lista se pueden
poner constantes,
expresiones aritméticas, y
funciones, p/obtener
campos calculados de
DML SELEC
T
Si s quiere q en la tabla lógica d resultados tengan 1nombre diferente s
puede utilizar un alias, x ej. AS q permite renombrar columnas si s usa en
la cláusula SELECT, o renombrar tablas si lo utilizamos en la cláusula
FROM. El alias es
FROM permite opcional.
indicar las tablas o vistas de las cuales vamos a obtener la información.
WHERE especifica la condición de filtro de las filas devueltas. Se utiliza cuando no se desea que se
devuelvan todas las filas de una tabla, sino sólo las que cumplen ciertas condiciones.
Las CONDICIONES son expresiones lógicas p/la condición d filtro, q tras su resolución devuelven
p/c/fila TRUE o FALSE, en fción d q s cumplan o no. S puede utilizar cualquier expresión lógica y en
ella usar diversos operadores como:
>, >=, <, <=, =, <> LIKE: permite comparar cadenas. S combina con: “%” y “_”. “%” indica q
o != (Distinto) o IS en su lugar puede ir cualquier cadena de caracteres, y “_” señala q
[NOT] NULL (null es puede ir cualquier carácter individual (1solo carácter). X ej: el nombre
vacío y es distinto empieza con A: Nombre LIKE ‘A%’, el nombre acaba con A: Nombre LIKE
blanco o cero) ‘%A’, el nombre contiene la letra A: Nombre LIKE ‘%A%’, el nombre
empieza con A y después contiene 1solo carácter cualquiera: Nombre
LIKE ‘A_’, el nombre empieza con 1 A, después cualquier carácter, luego
una E y al final cualquier cadena de caracteres: Nombre LIKE ‘A_E%’
DML SELEC
BETWEEN: p/un T
intervalo de valores. X
ej.alumnos con lu
entre 200 y 400

IN() p/especificar 1 conj. o 1 relac.d valores concretos. X ej.: Ventas d


los Clientes 10, 15, 30 y 75: CodCliente IN(10, 15, 30, 75). Es posible
combinar varias condiciones simples d los operadores anteriores
usando los operadores lógicos OR, AND y NOT, así como el uso de
paréntesis p/controlar la prioridad d los operadores X ej.: … (Cliente =
100 AND Provincia = 30) OR Ventas > 1000 … q sería p/los clientes d
las prov.100 y 30 o cualquier cliente cuyas ventas superen 1000).

ORDER BY define el orden de las filas del conjunto de


resultados. Se especifica el campo o campos
(separados por comas) por los cuales queremos
ordenar los resultados. ASC / DESC: ASC es el valor
predeterminado, especifica q la columna indicada en la
cláusula ORDER BY se ordena de forma ascendente, o
sea, de menor a mayor. Si x el contrario se especifica
DESC se ordenará de forma descendente (de mayor a
menor).
DML-SELECT:
Son consultas basadas en +d 1tabla d la
Consultas Multitablas
BD al mismo tiempo. Existen varias
formas d hacerlo.
1ºProduct Crea combinaciones q permiten mostrar columnas de
o diferentes tablas como 1sola tabla, no se hace coincidir
los valores d las columnas relacionadas (claves prim.y for.) x lo
Cartesianoq hay duplicidad d filas al relacionar todas las filas de las
diferentes tablas seleccionadas.
X ej.s tienen 2 tablas, Alumnos con 3 registr.y Sanción con 4 registr., si se ejecuta la sig.sent:
SELECT * FROM Alumnos, Sancion Se obtendrá como resultado 1 tabla con 12 registros

P/nuestro ej.creamos la tabla Al hacer el producto cartesiano


sanción observamos lo sig.

En nuestro caso
obtenemos como result.16
registros

Y agregamos 4
registros
DML-SELECT: Consultas Multitablas (Cont)
2º Composición de Tablas
Se unen las filas de las tablas a través d las columnas “de conexión” q s han definido entre
las mismas y q deben contener los mismos tipos de datos, es decir, mediante la unión Alum de San
la clave foránea y primaria respectiva. X ej.p/el caso anterior d las tablas Alumnos y ción
nos
Sanción el atrib.q relaciona dichas tablas es “lu”, x lo tanto la sent.a realizar es:
SELECT * FROM Alumnos, Sancion WHERE Alumnos.lu = Sancion.lu
P/el ej.creamos la tabla sanción, donde q los3primeros registros d sanción corresponden a lu 100 y el
últ.a
1º la lu 400
Agregamos la columna lu_fk de tipo entero, para eso vamos a
la tabla sancion  clic con el botón derecho  Create  Column…
2º Modificamos la tabla sancion, vamos a Contraints 
clic con el botón derecho  Create  Foreign Key …

3º -
Actual
izamo
4º Hacemos la
s la
composición
tabla de Tablas
DML-SELECT: 3º Consultas
Multitablas
JOIN:(cont.)
La 3er.forma es a través del operador JOIN q permite mostrar columnas d
varias tablas como si se fuese 1sola tabla, combinando entre sí los registros relacionados usando
p/ello claves foráneas. Las tablas relacionadas se especifican en la cláusula FROM, y deben coincidir
los valores
SELECT q /relacionan
[ ALL DISTINCT ]las
[ *col.d las tablas. Sintaxis:
] / [ListaAtributos_Expresiones] AS
[Expresion]
FROM NombreTabla1 JOIN NombreTabla2 ON
Condiciones_Vinculos_Tablas
Ej1.si s quiere relacionar Empleado y Sueldo x legajo
SELECT E.legajo FROM Empleados E JOIN Sueldos S ON E.Legajo = S.Legajo

Ej2: SELECT OrdenID, C.ClienteID, NombreEmpresa, FechaOrden FROM Clientes C JOIN Ordenes O ON
C.ClienteID=O.ClienteID JOIN Empleados E ON O.EmpleadosID=E.EmpleadosID WHERE C.Pais=‘España' OR
E.EmpleadoID=5
IMPORTANTE: existen variantes de JOIN con LEFT, OUTER, INNER Y CROSS q
resultan+eficientes con grandes cant.d registros pero también tienen 1complejidad mayor
DMLDELETE Elimina los valores de una tabla o de un conjunto de filas seleccionadas d 1
tabla (según lo definido por la clausula WHERE). Sintaxis

DELETE FROM nombre_tabla [WHERE condición]

Por ejemplo:
a ) DELETE * FROM sancion WHERE idsancion = 3;
b) DELETE * FROM sancion;  NO se puede recuperar las filas borradas

Porque si ejecuto la siguiente sentencia:

¿postgreSQL me muestra un mensaje


de error y no lo ejecuta?
Páginas recomendadas

• BEGINNER COURSE
https://www.sqlcourse.com/beginner-course/selecting-data/

• SQL fácil https://www.sql-easy.com/

También podría gustarte