Anda di halaman 1dari 25

INTRODUCCIÓN A BASE DE DATOS Y SQL

INTRODUCCIÓN A BASE DE DATOS Y SQL

CAPITULO 4
2018

AUTOR : www.linkedin.com/in/ivancorderopaco01
INTRODUCCIÓN A BASE DE DATOS Y SQL

Cap. 4. EL LENGUAJE SQL


Contenido
 Estructura del lenguaje
 ¿Qué es DDL, DML?
 Creación de una tabla
 Eliminación de una tabla
 Limpiar una tabla
 Consultas Básicas
 Select
 Insert
 Update
 Delete
 Consultas con SQL Select
 Condiciones Logicas
 Operadores Logicos
 Sentencia Between
 Sentencia IN
 Sentencia LIKE
INTRODUCCIÓN A BASE DE DATOS Y SQL

CLASIFICACIÓN DEL LENGUAJE

• DCL (Data Definition Language)


• DML (Data Manipulation
Language)
• DQL (Data Query Language)
SQL • DCL (Data Control Language)
• DAS (Data Adminitration
Statements)
• TCL (Transaction Control
Statements )
INTRODUCCIÓN A BASE DE DATOS Y SQL

CLASIFICACIÓN DEL LENGUAJE


Los comando SQL pueden estar clasificados dentro de las siguientes
categorías.
• Data Definition Language(DDL), los commandos son los CREATE, ALTER and
DROP. La definición de los datos son CREATE TABLE, CREATE VIEW, CREATE
INDEX, ALTER TABLE, DROP TABLE, DROP VIEW and DROP index.
• Data Manipulation Language(DML), tenemos 3 declaraciones como ser
INSERT, UPDATE, DELETE.
• Data Query Language(DQL), solo se tiene una declaración SELECT, esta
disponible para la consulta de una o mas tablas para extraer información.
• Data Control Language(DCL), el DBA es el autorizado para especificar esta
sentencias, dentro las cuales tenemos los comando GRANT Y REVOKE.
INTRODUCCIÓN A BASE DE DATOS Y SQL

CLASIFICACIÓN DEL LENGUAJE


• Data Administration Statements (DAS), entre las que podemos
mencionar las declaraciones START AUDIT STOP AUDIT .
• Transaction Control Statements (TCS), se puede mencionar algunos
como ser COMMIT, ROLLBACK, SET TRANSACTION
CREACION ELIMINACON DE UNA TABLA
• Nos permite la creación de tablas
CREATE TABLE <NOMBRETABLA>( CAMPOS DE LA TABLE TIPO_DE_DATO,…)

• La instrucción “Drop table” eliminara la tabla con todo y registros


DROP TABLE <NOMBRETABLA>

• La instruccion TRUNCATE eliminara todos los registros pero consevando la


estructura de la tabla
• TRUNCATE TABLE <NOMBRETABLA>
INTRODUCCIÓN A BASE DE DATOS Y SQL

CONSULTAS BASICAS
 Vamos a especificar la manera de recuperación de información de una base de datos.
 Para realizar consultas sobre las tablas de una varias se dispone de la instrucción SELECT
 Existe clausulas asociadas (GROUP BY, ORDER, HAVING, UNION)
 El resultado de una consulta SELECT devuelve una tabla lógica
Sintaxis Básica

SELECT
La base de datos interpreta como que vamos a solicitar información.
ALL / DISTINCT
ALL es el valor predeterminado, especifica que el conjunto de resultados puede incluir filas duplicadas.
DISTINCT especifica que el conjunto de resultados sólo puede incluir filas únicas.
Nombres de campos
Se debe especificar una lista de nombres de campos de la tabla.
Si queremos que nos devuelva todos los campos de la tabla utilizamos el comodín “*” (asterisco).
Los nombres indicados deben coincidir exactamente con los nombre de los campos de la tabla, pero si queremos que en nuestra tabla lógica de
resultados tengan un nombre diferente podemos utilizar:
AS
Permite renombrar columnas si lo utilizamos en la cláusula SELECT, o renombrar tablas si lo utilizamos en la cláusula
Descripción instrucción SELECT
FROM
Esta cláusula permite indicar las tablas de las cuales vamos a obtener la información
WHERE
Especifica la condición de filtro de las filas devueltas. Lo habitual es utilizar esta cláusula en la mayoría de las consultas.
Condiciones
Son expresiones lógicas a comprobar para la condición de filtro, que tras su resolución devuelven para cada fila TRUE o FALSE, en función
de que se cumplan o no. Se puede utilizar cualquier expresión lógica y en ella utilizar diversos operadores como:

> (Mayor) >= (Mayor o igual) < (Menor) <= (Menor o igual) = (Igual) <> o != (Distinto)

IS [NOT] NUL: (para comprobar si el valor de una columna es o no es nula, es decir)
LIKE: para la comparación de un modelo. Para ello utiliza los caracteres comodín especiales: “%” y “_”. Con el primero indicamos que en
su lugar puede ir cualquier cadena de caracteres, y con el segundo que puede ir cualquier carácter individual (un solo carácter). Con la
combinación de estos caracteres podremos obtener múltiples patrones de búsqueda. Por ejemplo:
El nombre empieza por A: Nombre LIKE ‘A%’
El nombre acaba por A: Nombre LIKE ‘%A’
El nombre contiene la letra A: Nombre LIKE ‘%A%’
El nombre empieza por A y después contiene un solo carácter cualquiera: Nombre LIKE ‘A_’
El nombre empieza una A, después cualquier carácter, luego una E y al final cualquier cadena de caracteres: Nombre LIKE ‘A_E%’
Descripción instrucción SELECT
BETWEEN: para un intervalo de valores. Por ejemplo:
Clientes entre el 30 y el 100: CodCliente BETWEEN 30 AND 100
Clientes nacidos entre 1970 y 1979: FechaNac BETWEEN ‘19700101’ AND ‘19791231’
IN( ): para especificar una relación de valores concretos.
Por ejemplo: Ventas de los Clientes 10, 15, 30 y 75: CodCliente IN(10, 15, 30, 75)
Por supuesto es posible combinar varias condiciones simples de los operadores anteriores utilizando los operadores
lógicos OR, AND y NOT, así como el uso de paréntesis para controlar la prioridad de los operadores (como en
matemáticas). Por ejemplo: … (Cliente = 100 AND Provincia = 30) OR Ventas > 1000 … que sería para los clientes de las
provincias 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 que la columna indicad en la cláusula ORDER BY se ordenará de forma
ascendente, o sea, de menor a mayor. Si por el contrario se especifica DESC se ordenará de forma descendente (de mayor
a menor).
ORDEN DE PROCESAMIENTO LOGICO DE LA
INSTRACCIÓN SELECT
1.FROM
2.ON
3.JOIN
4.WHERE
5.GROUP BY
6.WITH CUBE o WITH ROLLUP
7.HAVING
8.SELECT
9.DISTINCT
10.ORDER BY
11.TOP
BD_NORTHWIND
Demostración
Inserción de datos - INSERT
La sintaxis genérica de INSERT

INSERT INTO NombreTabla [(Campo1, …, CampoN)] VALUES (Valor1, …, ValorN) • La instrucción INSERT de
SQL permite añadir
registros a una tabla. Con
• La lista de campos es opcional especificarla ella podemos ir
añadiendo registros uno a
• En el mismo orden exactamente uno, o añadir de
golpe tantos registros
• Si un campo está definido como NOT NULL (es decir, que no admite nulos o como nos devuelva una
valores vacíos), debemos especificarlo siempre en la lista de campos a insertar. instrucción SELECT.
De no hacerlo así se producirá un error al ejecución la correspondiente
instrucción INSERT.
Inserción masiva de filas partiendo de consultas
La sintaxis de INSERT con sub consulta SELECT
INSERT INTO NombreTabla [(Campo1, …, CampoN)]
SELECT ...
A instrucción INSERT es la que nos permite insertar de golpe múltiples registros en una tabla,
bebiendo sus datos desde otra tabla (o varias tablas) de nuestra base de datos
Supongamos que tenemos una tabla nueva llamada NewCustomers en la que hemos introducido
previamente los datos de nuevos clientes que no están en el sistema (por ejemplo por que los hemos
cargado desde un programa externo) y queremos agregar a nuestra tabla de clientes pre-existente los
nuevos clientes que son del país "España":
Algunos ejemplos

Nota: Aunque las tablas estén relacionadas entre sí de


manera unívoca (por ejemplo, cada cabecera de factura
con sus líneas de factura), no es posible insertar de un
golpe los registros de varias tablas. Es necesario siempre
introducir los registros uno a uno y tabla a tabla
INTRODUCCIÓN A BASE DE DATOS Y SQL

PRACTICA 4.1
1) Inserte los siguientes
En la tabla clientes
(‘603P’,’PhoneHome’)
(‘142B’,’BlackSmith’)
En la tabla Facturas
(104,’603P’,’20160306’,8.90)
(105,’603P’,’20160401’,24.20)
2) Lista todos los nombres de clientes
3) Listar los clientes con sus facturas
4) Listar el idFactura, idCliente, importe, el
importe solo debería tener dos decimales.
5) Listado de los nombres de los clientes, no debe
mostrar nombres de clientes repetidos.
6) Lista las factura y ordena el resultado del script
por el campo importe de mayor a menor.
7) Liste el nombre del cliente, importes y IVA
(importe*0.13).
8) Junto con el inciso 6) luego de calcular el valor
renombre la columna con el nombre Gasto usan la
instrucción AS.
8) Listar los últimos dos facturas junto con el
nombre del cliente.
SENTENCIA UPDATE
UPDATE permite actualizar los valores de los campos de una tabla, para uno o varios
registros, o incluso para todos los registros de una tabla.

La sintaxis de UPDATE: UPDATE table_name


SET column1 = value1, column2 = value2, ...
WHERE condition;
Veamos un ejemplo de su uso
UPDATE Employees
-- Actualizando un registro
SET LastName = 'Smith'
WHERE EmployeeID = 5
UPDATE Employees -- Actualizando un registro para borrar datos
SET Notes = NULL

UPDATE Products
SET UnitPrice = UnitPrice + (UnitPrice * 21 /
100) -- usando una condición
WHERE CategoryID = 2
Eliminación de registro
La instrucción DELETE permite eliminar uno o múltiples
registros. Incluso todos los registros de una tabla,
dejándola vacía.

Su sintaxis
DELETE [FROM] NombreTabla
WHERE Condición

La condición, como siempre, define las


condiciones que deben cumplir los
registros que se desean eliminar. Se puede
aplicar todo lo visto para esta cláusula
anteriormente, incluidas las sub-consultas.
Eliminación de registro
Algunos ejemplos

Eliminar de la base de datos al empleado cuyo identificador interno es el 9:


DELETE Employees WHERE EmployeeID = 9
Borrar a los clientes cuyo apellido (LastName) contenga la palabra "Desconocido":
DELETE Customers WHERE LastName LIKE '%Desconocido%'
Eliminar todos los productos de la categoría bebidas ("beverages"):
DELETE Products WHERE CategoryID =
(SELECT CategoryID FROM Categories
WHERE CategoryName = 'Beverages')
Eliminar todos los productos de la categoría bebidas ("beverages") cuyo precio unitario (UnitPrice) sea
superior a 50:
DELETE Products WHERE CategoryID =
(SELECT CategoryID FROM Categories WHERE
CategoryName = 'Beverages')
AND UnitPrice > 50
PRACTICA 4.2
Con la base de datos Northwind
1) Realice una inserción en la tabla Employees con sus datos por lo menos su
nombre y apellido
2) Liste la Tabla Employees he identifique su registro en la misma
3) En la tabla Employees actualice su registro y en el campo región actualice el
valor a ‘Andina’ en el campo HomePhone actualice al numero ‘2292511’.
4) En la Tabla Shippers(Empresa de Transporte) adicione una nueva empresa con
el nombre BrinkABC y el numero de teléfono seria el ‘2265448’
5) En la tabla Supliers(proveedores) adicione una nueva compañía de nombre
CONDICIONES LOGICAS
Operadores lógicos
Los Operadores lógicos en SQL Server son los siguientes:

Nos sirven para componer expresiones de filtrado


La precedencia y asociatividad es la habitual definida en la Lógica. En cualquier caso, cuando incluya expresiones que
empleen varios de estos operadores es recomendable usar paréntesis para evitar errores
SELECT *
FROM DIRECCION
WHERE ciudad = ‘La Paz’ AND cp = 41009 OR ciudad = ‘Cochabamba’
AND NOT cp = 14010

Devuelve los registros pertenecientes a direcciones que tengan el código postal 41009 de La Paz o bien que no tengan
el 14010 de Cochabamba. La mayor precedencia la adopta el operador NOT sobre la condición cp = 14010; a
continuación los AND se aplican sobre ciudad = ‘La Paz’ AND cp = 41009 y ciudad = ‘Cochabamba’ AND NOT cp = 14010;
por último se aplica el OR sobre la fórmula completa.
CONDICIONES LOGICAS
Operadores lógicos
SELECT *
FROM DIRECCION
WHERE (ciudad = ‘La Paz’ AND cp = 41009) OR
(ciudad = ‘Cochabamba’ AND (NOT cp = 14010))

La misma expresión anterior se puede expresar de la siguiente manera bien si el NOT nos parece más
evidente, podemos excluir el paréntesis interior, a nuestra gusto siempre conservando el significado que
queríamos dar la operación.
BEETWEEN Y LIKE
Beetwen para indicar un intervalo de valores.

SELECT nombre
FROM CLIENTES
WHERE edad BETWEEN 20 AND 35

Like empleado para comparar patrones de texto pudiendo incluir comodines como los siguientes:

SELECT num, calle, cp


FROM DIRECCION
WHERE ciudad LIKE ‘%Z’
Esta consulta devolvería los datos de las direcciones de toda ciudad que comience por ‘C’ y siga por cualquier
número de caracteres, incluyendo cero caracteres. Por ejemplo, La Paz o Santa Cruz.
OPERADOR IN
Empleado para comparar con una lista de valores fijados de modo que devuelva True si el campo indicado
pertenece a la lista.

SELECT num, calle, direccion


FROM DIRECCION
WHERE ciudad IN (‘La Paz’, ’Cochabamba’,
‘Oruro’, ‘Potosi’)
Practica

1) Mostrar todos los datos de los clientes cuyo nombre comienza por A
2) Mostrar los Paises que comienzan por U y después un solo carácter.
3) Mostrar los productos cuyo precio esta entre 25 y 35
4) Mostrar solo los productos con un precio mayor que 25
5) Listar todos los empleados que en el campo FAX no tiene NULL
6) Listar los productos que en su precio tengan un valore de 12,20,30 o 40
INTRODUCCIÓN A BASE DE DATOS Y SQL

LABORATORIO 4
A partir de la base de datos NorthWind responda la siguientes preguntas
1) Seleccionar todos los campos de la tabla clientes, ordenado por nombre del contacto de la
compañía, alfabéticamente.
2) Seleccionar todos los campos de la tabla órdenes, ordenados por fecha de la orden,
descendentemente.
3) Seleccionar todos los campos de la tabla detalle de la orden, ordenada por cantidad pedida,
ascendentemente.
4) Obtener todos los productos, cuyo nombre comienzan con la letra P y tienen un precio unitario
comprendido entre 10 y 120. (UnitPrice between 10 and 20)
5) Obtener todos los clientes de los países de: USA, Francia y UK.
6) Obtener todas las ordenes hechas por el empleado con código: 2, 5 y 7 en el año 1996
7) Seleccionar todos los clientes que cuenten con FAX
8) Seleccionar todos los clientes que no cuenten con FAX, del país de USA
9) Seleccionar todos los empleados que cuentan con un jefe.

Anda mungkin juga menyukai