• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Sql basico parte_i_
 

Sql basico parte_i_

on

  • 1,688 views

 

Statistics

Views

Total Views
1,688
Views on SlideShare
1,688
Embed Views
0

Actions

Likes
2
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Sql basico parte_i_ Sql basico parte_i_ Presentation Transcript

    • Base d D B de Datos: Lenguaje SQL guaj QProfesor:MSC.MSC Luis Serna Jherry Jherry.
    • Objetivos de HoyIntroducción al SQL BasicoSentencias DDL: CREATE TABLE ALTER TABLE DROP TABLESentencia DML: SELECT Cláusulas SELECT, FROM, INTO, WHERE Cláusulas GROUP BY, HAVING Cláusula ORDER BY á Tipos de JOIN Subqueries Sentencias INSERT UPDATE y DELETE INSERT,
    • SENTENCIAS DDL
    • SENTENCIAS DDL CREATE TABLELas tablas se definen en tres pasos: Dar el nombre a la tabla Definir cada columna, posiblemente incluyendo restricciones de columna Definir las restricciones de la tabla
    • SENTENCIAS DDL CREATE TABLECREATE TABLE nombre-tabla{campo1 (tipo ta a o / do ca po (t po tamaño dominio) [NOT NULL], o) [ O U ], [campo2 (tipo tamaño / dominio) [NOT NULL]], [PRIMARY KEY (c1, c2, ..., cn)], [ (c , c , , c ) [FOREIGN KEY (c1) REFERENCES tabla-x], [CHECK (P)]}
    • SENTENCIAS DDL CREATE TABLENombre-tabla: Es el nombre de la tabla que se va a crear.Campo i: son los nombres de los campos de la tabla. p pTipo: Es el tipo de datos del campo.Tamaño:Es el tamaño del campo en caracteres pDominio: es el nombre del dominio asignado al campo.
    • SENTENCIAS DDL CREATE TABLEPrimary Key: especifica las columnas que conforman laclave primaria de la tabla.Foreign key: indica las columnas que constituyen claveexterna en la tablaReferences: indica la tabla que provee la clave foránea.Check (P): especifica un predicado que debe satisfacercada fila de la tabla
    • SENTENCIAS DDLEjemplos: CREATE TABLECREATE TABLE Clientes ( (id-cliente char(5) not null, ( ) , nombre-cliente char(20), ca e c e te calle-cliente c a (30), char(30), primary key id-cliente)
    • SENTENCIAS DDL Ejemplos: CREATE TABLECREATE TABLE Cuenta ( (id-cuenta char(10) not null, ( ) , id-cliente char(5), sa do saldo integer tege check (saldo >= 0), primary key id cuenta id-cuenta foreign key id-cliente references clientes)
    • SENTENCIAS DDL Uso de ConstraintsUna restricción es similar a un índice, aunque también sepuede utilizar para establecer una relación con otra tabla.Puede utilizar la cláusula CONSTRAINT en las instruccionesALTER TABLE y CREATE TABLE para crear o eliminarrestricciones.restriccionesHay dos tipos de cláusulas CONSTRAINT: una para crearuna restricciones en un único campo y otra para crear una p prestricción en más de un campo.
    • SENTENCIAS DDL Uso de ConstraintsCONSTRAINT nombre{{PRIMARY KEY (p (principal1 [,principal2 [, ...]]) | p [,p p ]])UNIQUE (único1 [,único2 [, ...]]) |NOT NULL (negadonulo1 [,negadonulo2 [, ...]]) |FOREIGN KEY (referencia1 [,referencia2 [, ...]]) REFERENCES tabla_externa [(campo_externo1 [,campo_externo2 [, ]])]} [ campo externo2 [ ...]])]}
    • SENTENCIAS DDL Uso de ConstraintsNombre: Es el nombre de la restricción que se vaa crear.principal1, principal2: Son los nombres de loscampos que se van a designar como claveprincipal.p incipalúnico1, único2: Son los nombres de los camposque se van a designar como clave única única.
    • SENTENCIAS DDL Uso de Constraintsnegadonulo1, negadonulo2: Son los nombres decampos que se van a limitar a valores no Null. p qreferencia1, referencia2: Son los nombres de loscampos de la clave externa a los que se hacereferencia en otra tabla.
    • SENTENCIAS DDL Uso de ConstraintsTabla_externa: Es el nombre de la tabla externa quecontiene el campo o los campos especificados por p p p pcampo_externo.Campo_externo1, campo_externo2: Son los nombres delosl campos en tabla_externa especificados por t bl t ifi dreferencia1, referencia2. Puede omitir esta cláusula si elcampo al que se hace referencia es la clave principal detabla_externa.
    • SENTENCIAS DDL ALTER TABLEALTER TABLE nombre-tabla{{ADD | MODIFY[COLUMN campo tipo [(tamaño)] [NOT NULL] [CONSTRAINT nombre-constraint tipo-constraint]] |[CONSTRAINT nombre-constraint tipo-constraint (campo,…)]}
    • SENTENCIAS DDLALTER TABLETabla: Es el nombre de la tabla que se va amodificar.modificarCampo: Es el nombre del campo que se va aagregar o eliminar de tabla. tablaTipo: Es el tipo de datos del campo.Tamaño:Es el tamaño del campo en caracteres
    • SENTENCIAS DDLEjemplos: ALTER TABLEAdicionar un campo: ALTER TABLE Empleados ADD COLUMN Salario number(15,2)Quitar el campo Salario de la tablaEmpleados: ALTER TABLE Empleados DROP COLUMN Salario;
    • SENTENCIAS DDL Ejemplos: ALTER TABLEAdicionar una clave foránea: ALTER TABLE Pedidos ADD CONSTRAINT PedidosEmpleados FOREIGN KEY (IdEmpleado) REFERENCES Empleados (IdEmpleado)Quitar la clave externa existente de la tablaPedidos: ALTER TABLE Pedidos DROP CONSTRAINT PedidosEmpleados;
    • SENTENCIAS DDL DROPDROP {TABLE tabla | INDEX índice ON tabla} tabla: Es el nombre de la tabla que se va a eliminar o la tabla de la cual se va a eliminar un índice. Índice: Es el nombre del índice que se va a q eliminar de tabla.
    • SENTENCIAS DDL Ejemplos: DROPEjemplo de como se elimina el índice Mi_Indicede la tabla Empleados: DROP INDEX Mi_Indice ON Empleados;Ejemplo de cómo se elimina una tabla: DROP TABLE Practicas; ;
    • SENTENCIAS DML
    • Introducción lI t d ió al SQL - SQL DMLSentencias de Manipulación de Datos SELECT INSERT UPDATE DELETE
    • Sentencia SELECT – Estructura BásicaSELECT ..... FROM .... WHERE SELECT corresponde a la operación Proyección (Π). Lista los atributos deseados en el resultado de la consulta. FROM corresponde a la operación Producto Cartesiano (X). Lista las relaciones que se deben analizar. WHERE corresponde al predicado S l ió ( ) y se d l di d Selección (σ), refiere a los atributos de las relaciones listadas en FROM.
    • Sentencia SELECT [SELECT ...] [INTO ...] [FROM ...] [WHERE ...] [GROUP BY …] [HAVING ...] [ORDER BY ...]] [UNION ...]
    • Cláusula SELECTEn la cláusula SELECT se especifican lascolumnas que van a ser mostradas enpantallaSELECT [all | distinct]{* | tabla.* | [ [tabla.]campo1 [ ] p [encab1] , ] [tabla.]campo2 [encab2] , ...}
    • Cláusula FROMEspecífica la(s) fuente(s) de donde van a sertomadas las columnas mostradas y/o operadas en y/ pla sentencia Select.[SELECT…]FROM expresión tabla [as] t_alias [, ...]
    • Cláusula INTOLa cláusula INTO, permite guardar losresultados intermedios de una consulta[SELECT ...] INTO tabla_into ] tabla into[FROM ...]
    • Cláusula WHEREDonde se especifican las condiciones debúsqueda y join para las filas que conforman elconjunto resultado.[SELECT ...][FROM ...]WHERE condiciones_de_búsquedaTipos de condiciones Condiciones de comparación, de Join, o de Subquery.
    • Ejemplos de la Sentencia SELECTSELECT distinct emp_id, fecha_nac, direccionFROM EMPLEADOWHERE nombre = “Juan” AND apellido = “Perez” ∏fecha_nac, direccion (σnombre = “Juan” AND apellido = “Perez” (EMPLEADO))
    • Ejemplos de la Sentencia SELECT‘Mostrar la relación de clientes que han obtenido un préstamoen alguna sucursal de Miraflores’ SELECT DISTINCT nombre-cliente FROM PRESTATARIO PRS, PRESTAMO PTR WHERE PRS.idpréstamo = PRT.numpréstamo AND nombre-sucursal = “Miraflores” Miraflores
    • Condiciones de BúsquedaLas condiciones de búsqueda pueden incluir: Operadores de Comparación (=, <>, < y >). (= <> >) Porciones de cadenas de caracteres (SUBSTR) Rangos (BETWEEN y NOT BETWEEN). g ( ) Listas (IN, NOT IN). Patrones de caracteres (LIKE y NOT LIKE). Valores desconocidos (IS NULL y IS NOT NULL). Combinaciones con conjunciones (AND, OR).
    • Condiciones de BúsquedaOperadores de comparación: WHERE SueldoBásico > 1000 WHERE SUBSTR(CodigoPostal, 1, 3)= “SAN”Rangos (BETWEEN / NOT BETWEEN): WHERE SueldoBásico BETWEEN 1000 AND 5000Listas (IN / NOT IN): WHERE Departamento NOT IN (ADM, SIS)Coincidencia de patrones o cadenas de caracteres (LIKE /NOT LIKE)) WHERE NombreCompleto LIKE “LET%”
    • Comodines (Wildcards) en la cláusula WHEREWildcard Significado g *% Cualquier cadena de cero o mas caracteres. ?, #, _ Cualquier carácter/ número único. [-] Cualquier carácter único dentro de un rango. [!] Cualquier carácter único que no está dentro de un rango.
    • Operadores y Wildcards en la cláusula WHERE….WHERE Nombre LIKE “Ma%” busca todos los nombres que comiencen con “Ma” (Ej.: María, Mariana, Manuel, Martín) LIKE “%ía” busca todos los nombres que terminen con “ía”. (Ej.: Sofía, María, Estefanía). LIKE “%ar%” busca todos los nombres que tengan las letras “ar”. (Ej.:Carlos, Arturo Eleazar) (Ej :Carlos Arturo, Eleazar).
    • Operadores y Wildcards en la cláusula WHERELIKE “_va” busca todos los nombres de tres letras que terminan en “va”. (Ej.: Eva, Iva, Ava). ( j , , )LIKE “[CM]arlo[ns]” busca todos los nombres: Carlon, Marlon, Carlos y Marlos.LIKE “[B D]elia” [B-D]elia busca todos los nombres que terminan en “elia” y que comiencen con las letras de la B a la D. (Ej.: Delia, Celia).LIKE “_ _ _” busca todas las cadenas de exactamente 3 caracteres.LIKE “_ _ _ %” busca las cadenas de al menos 3 caracteres.
    • Operadores y Wildcards en la cláusula WHERECARACTERES DE ESCAPE:Para que los patrones puedan contener los caracteres especialescomodín, se especifica un caracter de escape. LIKE “%ab_cd” escape “” busca todas las cadenas que “% b d” b t d l d terminen con “ab_cd”. LIKE “ab_cd%” escape “” busca las cadenas que empiecen con “ab_cd”.
    • Tablas CombinadasPermite especificar la tabla resultante de una operación dereunión natural en la cláusula FROM, en lugar de colocar las , gcondiciones de JOIN en el WHERE [SELECT] FROM TABLA1 [INNER] JOIN TABLA2 ON TABLA1.COLUMNA1 = TABLA2.COLUMNA1 [WHERE]
    • Tablas CombinadasSELECT DISTINCT nombre-clienteFROM PRESTATARIO PRS [INNER] JOIN PRESTAMO PTR On PRS.idpréstamo = PRT.numpréstamoWHERE nombre-sucursal = “Miraflores”
    • Cláusula GROUP BYEspecifica las columnas por las que las filasvan a estar agrupadas o particionadas Los particionadas.resultados del query contienen un valor oconjunto de valores para cada conjunto de j p jvalores indicado por lasfunciones_de_agregación nombradas en lalista del Select
    • Cláusula GROUP BY áSELECT {{columnas_de_agrupación,…}, {función_de_agregación,…}} {f ió d ió }}FROM …[WHERE …]GROUP BY {columnas_de_agrupación,…} {columnas de agrupación }
    • Funciones de Agregación más g g usadasSUM([ALL|DISTINCT] Calcula el total de una expresión numéricaexpresión) para todas las filas o sólo las distintas.AVG([ALL|DISTINCT] Calcula el promedio de una expresiónexpresión) numérica para las filas involucradas. ([ | ]MIN([ALL|DISTINCT] Calcula el mínimo valor de una expresión pexpresión) numérica para las filas involucradasMAX([ALL|DISTINCT] Calcula el máximo valor de una expresiónexpresión) numérica para las filas involucradas.COUNT([ALL|DISTINCT] Número de veces que se repite el valor de laexpresión) expresión.COUNT(*) Número Núme o de filas seleccionadas
    • Cláusula GROUP BY á ‘Mostrar la suma de sueldo básico de los empleados activos, por Departamento’SELECT Nombre_Depto, SUM(SueldoBasico)FROM EMPLEADO EM, DEPARTAMENTO DE EMWHERE EM.IDDepartamento = DE.IDDepartamento AND EstadoEmpleado= ACT’GROUP BY Nombre_Depto
    • Cláusula GROUP BY á“Obtener el número de titulares de cuenta de cada sucursal sucursal”SELECT nombre_sucursal, nombre sucursal, COUNT ( DISTINCT nombre-cliente)FROM TITULAR-CUENTA TC, CUENTA CUEWHERE TC.numero-cuenta = CUE. numero-cuentaGROUP BY nombre-sucursal
    • Cláusula HAVING áEspecifica una restricción que aplica a lasfunciones de agregación de los grupos Esto grupos.afecta a las filas que son devueltas comoresultado y no al cálculo de las funciones deagregación.La cláusula WHERE si condiciona el número defilas que intervienen en el cálculo de lasfunciones de agregación.
    • Cláusula HAVING áSELECT {{columnas_de_agrupación,…}, {función_de_agregación,…}} {función de agregación }}FROM …[WHERE …] ]GROUP BY {columnas_de_agrupación,…}HAVING condiciones de búsqueda condiciones_de_búsqueda
    • GROUP BY y HAVING“Mostrar el sueldo promedio de los Departamentos con promedio superior a 1000”SELECT Nombre_Depto, AVG(SueldoBasico)FROM EMPLEADO EM, DEPARTAMENTO DEWHERE EM.IDDepartamento EM IDDepartamento = DE.IDDepartamento AND EstadoEmpleado= ACT pGROUP BY Nombre_DeptoHAVING AVG(SueldoBasico) > 1000
    • GROUP BY y HAVING“Saldo promedio de cada cliente de Surco que tiene como mínimo 3 cuentas”SELECT TC. Nombre-cliente, AVG (saldo)FROM TITULAR-CUENTA TC, CUENTA CUE, CLIENTE CLIWHERE TC.numero-cuenta = CUE TC t CUE.numero-cuenta t AND TC.nombre-cliente = C C o b e c e te CLI.nombre-cliente AND o b e c e te ciudad-cliente = “Surco”GROUP BY TC.nombre-clienteHAVING COUNT (DISTINCT TC.numero-cuenta) >= 3
    • GROUP BY - HAVING - WHEREProcedimiento: Si en una misma consulta aparece una cláusula WHERE y una cláusula HAVING, se aplica primero el predicado de la cláusula WHERE. Las tuplas que satisfagan la condición, se colocan en grupos según la cláusula GROUP BY. La cláusula HAVING se aplica luego a cada grupo. Los grupos grupo que no la satisfagan se eliminan. La cláusula SELECT utiliza los grupos restantes para generar las tuplas resultado de la consulta.
    • Cláusula ORDER BYOrdena el resultado de los querys por los valores de lascolumnas mencionadas. Solamente se puede ordenar porlas columnas especificadas en el SELECT. ASC: Es el valor por defecto e indica que los resultados se van a p presentar ascendentemente. DESC: Debe especificarse al lado de la columna cuyo orden se desea ver en forma descendente.Consideración: ordenar un gran número de tuplas puedeser costoso. Es conveniente ordenar sólo cuando seaestrictamente necesario.
    • Cláusula ORDER BY áSELECT {columna 1, columna 2,…}FROM …[WHERE …][GROUP BY...][HAVING ...]ORDER BY columna 1 [ASC|DESC],....
    • Cláusula ORDER BY áSELECT Nombre Departamento, AVG(SueldoBasico) Promedio SueldosFROM EMPLEADO EM, DEPARTAMENTO DEWHERE EM.Departamento = DE.DepartamentoGROUP BY NombreORDER BY AVG(SueldoBasico) DESC
    • Operador UNIONPermite manipular los resultados de dos o masquerys,querys combinándolos en un único conjunto de datos. datosMuestra las filas recuperadas por cualquiera de losqueryA diferencia del SELECT, que por omisión conserva losduplicados, la operación de unión normalmente lossuprime.A fin de evitar esto, es necesario colocar acontinuación del operador UNION la palabra clave ALL
    • Operador UNION Query1 [UNION [ALL]] QueryN [ [ORDER BY…..] ] donde:Query1: y QueryNSELECT select-list l l SELECT select-list l t li t [INTO] [FROM] [ [FROM]] [ [WHERE] ] [WHERE] [GROUP BY] [GROUP BY] [HAVING] [HAVING]
    • Operador UNIONTodas las select-list mencionadas con la sentenciaUNION, deben tener el mismo número de expresiones(columnas, e p esiones aritméticas, funciones(col mnas expresiones a itméticas f nciones deagregación, etc.).Las columnas que se corresponden, deben tener elmismo tipo de dato, sino es así, debe existir una íconversión de datos implícita o explícita con unafunción de conversión de por medio.
    • Operador UNION“Todos los clientes que poseen una cuenta, un préstamo o ambos ambos” (SELECT nombre-cliente FROM TITULAR-CUENTA) UNION (SELECT nombre-cliente FROM PRESTATARIO)
    • OUTER JOINSLos outer joins extienden los resultados de un join simple. Retornan lasfilas coincidentes y también las filas de una de las tablas que no tieneelementos en común con la otra. [Select] From tabla1, tabla2 WHERE tabla1.columna1 = tabla2.columna1 (+) [Select] From tabla1 LEFT [OUTER] JOIN TABLA2 ON tabla1.columna1 = tabla2.columna1 …..devuelven todas las filas de la tabla1 aunque no tengan g coincidencias con la tabla2 en la columna1.
    • OUTER JOINSSELECT IDPersona, NombreCompleto, IDDepartamento, SueldoBasico FROM PERSONA, PERSONA EMPLEADO WHERE IDPersona = IDEmpleado (+)SELECT IDPersona, N b C IDP NombreCompleto, l t IDDepartamento, SueldoBasico FROM PERSONA LEFT JOIN EMPLEADO ON O IDPersona = IDEmpleado l d (Seleccionan todas las personas, aún las que no figuran en la tabla EMPLEADO)
    • OUTER JOINSSELECT DE.Nombre_Dpto, IDEmpleado, SueldoBasicoFROM EMPLEADO RIGHT JOIN DEPARTAMENTO ON EMPLEADO.IDDepartamento = DEPARTAMENTO.IDDepartamento(Selecciona todos los departamentos, aún los que no tienen empleados) Un join simple descarta las filas no coincidentes. coincidentes Un outer join preserva filas que de otra forma serían descartadas.
    • Uso de SubqueriesUn Subquery es una sentencia SELECTanidada dentro de otras sentencias SQLcomo SELECT, INSERT, UPDATE o DELETE,o dentro de otro Subquery. q yA una sentencia SELECT, que contiene uno omas Subqueries, se la denomina Nested qQuery o SELECT anidado.
    • Uso de SubqueriesSubqueries con IN / NOT IN: El resultado, es una lista de cero o mas valores. resultado valores Una vez que el Subquery devuelve resultados, el Outer query los usa, por inclusión o negación. Con la palabra IN se puede resolver el operador relacional de Intersección Empleando NOT IN se resuelve el operador Diferencia
    • Uso de SubqueriesSELECT NombreCompleto, SueldoBasicoFROM PERSONA, PERSONA EMPLEADOWHERE IDPersona=IDEmpleado and IDEmpleado IDE l d NOT IN (SELECT IDEmpleado FROM SANCIONES_EMPLEADO)
    • Uso de SubqueriesSubqueries con Operadores de comparación. Son los subquerys que se introducen con algún operador de comparación como =, <>, <, <=, >, >=, etc. Estos subqueries retornan un solo valor.
    • Uso de SubqueriesOperadores de comparación modificados por ANYo ALL. Estos subqueries retornan cero omuchos valores. > ALL, significa que todos los valores retornados por el subquery son menores al valor de comparación del outer. > ANY, significa que por lo menos un valor retornado ANY por el subquery es menor al valor de comparación del outer.
    • Uso de Subqueries.Mostrar ID, nombre y sueldo de todos los empleados cuyo sueldo es mayor a todos los sueldos de la tabla CARGO ySELECT IDEmpleado, NombreCompleto, SueldoBasicoFROM EMPLEADO, PERSONAWHERE IDEmpleado = IDPersona AND SueldoBasico > ALL (SELECT Sueldo FROM CARGO)
    • Uso de Subqueries.Mostrar ID, nombre y sueldo de todos los empleados cuyo sueldo es mayor a alguno de los sueldos de la tabla CARGOSELECT IDEmpleado, NombreCompleto, SueldoBasicoFROM EMPLEADO, PERSONAWHERE IDEmpleado = IDPersona AND SueldoBasico > ANY (SELECT Sueldo FROM CARGO)
    • Uso de Subqueries.Subqueries con el uso de la palabra EXISTS: Funciona como un test de existencia. La cláusula WHERE, WHERE examina la existencia de filas devueltas por el Subquery. El Subquery devuelve los valores de TRUE o FALSE.
    • Uso de Subqueries.“Muestra los códigos de los empleados que tienen alguna sanción” gSELECT IDEmpleadoFROM EMPLEADO EMWHERE EXISTS (SELECT * FROM SANCIONES EMPLEADO SE SANCIONES_EMPLEADO WHERE EM.IDEmpleado = SE.IDEmpleado)
    • Subqueries correlativosAquellos queries anidados donde el Subquery depende del outer query para devolver sus valores.Esto significa que el Subquery se ejecuta repetidamente, una vez por cada fila seleccionada por el Outer query.
    • Subqueries CorrelativosSELECT a.IDEmpleado, a.SueldoBasicoFROM EMPLEADO aWHERE a.SueldoBasico >= (SELECT b.SueldoBasico FROM EMPLEADO b WHERE a.IDJefe = b.IDEmpleado )Muestra código y sueldo de los empleados cuyos sueldos son mayores o iguales a los sueldos de sus respectivos jefes
    • Sentencia INSERT INSERT es otra sentencia DML base, usada para incorporar nuevas filas a una tabla de base de datos.INSERT [INTO] {table name view-name} [(column-list)] {table-name | view name} [(column list)] {VALUES | (values-list) | select-statement }
    • Ejemplos de la Sentencia INSERTFabricantes (Nfabricante, país) INSERT INTO FABRICANTES (Nfabricante, País) VALUES (“Reynolds Tobacco CO.”, “EEUU”)Marcas (marca, Nfabricante, cartón, embalaje) INSERT INTO MARCAS VALUES (“Camel”, “Reynolds Tobacco CO.”, 10, 20)
    • Sentencia UPDATEModifica los datos existentes en filas de unatabla de Base de DatosUPDATE {table-name | view-name}SET{column listSET{column-list | variable-list | variable_and_column-list},….. [ WHERE { condition }]
    • Sentencia UPDATECambiar aquellos cigarrillos de clase “Normal”, con filtro, fabricados por “Tabacalera Nacional”, de modo que p , q ahora no tengan filtroUPDATE CIGARRILLOSSET filtro = “N” NWHERE marca in ( (SELECT marca FROM MARCAS WHERE Nfabricante = “Tabacalera Nacional” And filtro = “S” and clase = “Normal”)
    • Sentencia DELETEElimina filas de una tabla de Base de DatosDELETE FROM {table-name | view-name}[WHERE {condition} ]
    • Sentencia DELETEEliminar todos los fabricantes que no manufacturen cigarrillos de clase “Ultra Light”DELETE FROM FABRICANTESWHERE Nfabricante NOT IN (SELECT DISTINCT Nfabricante FROM MARCAS WHERE marca IN (SELECT marca FROM CIGARRILLOS WHERE clase = “Ultra Light”))