Download LENGUAJE SQL

Document related concepts

SQL wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

PL/SQL wikipedia , lookup

Transact-SQL wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Transcript
LENGUAJE SQL
Integrantes:
Ceci Vanessa
Paredes Oswaldo
Rodríguez Aury
Bárbula, Febrero de 2007
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Historia y Definición
SQL: Es una herramienta para organizar, gestionar y recuperar datos
almacenados en una base de datos. funciona con un tipo específico de
base de datos, llamado base de datos relacional .
Funciones adicionales de SQL:
•Definición de datos
•Recuperación de datos
•Manipulación de datos
•Control de acceso
•Compartición de información.
•Integridad de datos
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Características de SQL y tendencias del mercado
•Independencia de los proveedores
• Portabilidad entre sistemas informáticas
• Acuerdos con Microsoft (ODBC)
•Fundamento relacional
• Múltiples vistas de los datos.
•Lenguaje completo de base de datos
•Definición dinámica de base de datos
• Arquitectura cliente/servidor
Formas de trabajar con SQL
•De modo interactivo
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
•Desde un programa
SQL
Estandares de SQL
Historia y Definición
SQL embebido
SQL-89
o incrustado
Tipos de datos
En 1974 Donald Chamberlin saca la primera definición sobre SQL.
Tipos de Identificadores SEQUEL – SEQUEL/2 – SQL.
Tipos de dominios
System R de IBM.
Privilegios
IBM saca DB2.
Triggers
En 1986 ANSI adopto a SQL.
Definición de datos
Manipulación de datos SQL-92
Consulta de datos
Restricciones y
Aparece en 1992.
Validaciones
Emplea el concepto de catalogo.
SQL- 3
Planeado para su uso en el ano de 1996.
Es la base de algunos sistemas de maneja de base de datos orientadas a
objetos
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
SQL embebido o incrustado
ESTRUCTURA DE UN PROGRAMA CON SQL EMBEBIDO
Programa …
Declaración de variables
…
Declaración de variables huéspedes para acceso a la base de datos
…
Fin declaración de variables huéspedes para acceso a la base de datos
…
Fin declaración de variables
Comienzo del código del programa
…
instrucciones propias del lenguaje
…
Conexión a la base de datos
…
instrucciones de SQL
...
Desconexión de la base de datos
…
instrucciones propias del lenguaje
…
Fin del código de programa
SQL
Ejemplo
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Lenguaje de consulta SQL
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Tipos de datos
Sinónimos
Binary
Varbinary
Bit
boolean,logical
Byte
integer(1)
Counter
autoincrement
Currency
money
Datetime
date,time,timestamp
Single
float(4),real
Double
float(8),float,numeric,number
Short
integer(2),smalling
Long
Longtext
Longbinary
Text
Tipos de Identificadores
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de
Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Clave Principal (Primary Key)
Ejemplo:
CREATE TABLE Familiar
(
Nombre varchar (25),
Apellidos varchar (60),
Telefono char (9),
Direccion varchar (70),
ID_Familia integer PRIMARY KEY
);
Clave foránea (Foreing key):
Ejemplo:
CREATE TABLE estudiante
(
Cod_Est
number(8),
Nom_Est
varchar2(35) not null,
Car_est
number(3),
Pat_est
number(8),
Otros_datos
varchar(40),
CONSTRAINT est_pk
PRIMARY KEY (Cod_est),
CONSTRAINT est_fk
FOREIGN KEY (Car_Est) REFERENCES carrera(Cod_car)
ON DELETE CASCADE,
CONSTRAINT est_ch
CHECK (Pat_est > 0)
);
Tipos de dominios
n char(n).
n varchar(n)
n int. Entero
n smallint.
n numeric(p,d).
n real, double precision.
n float(n).
n
n La construcción create domain de SQL92 permite crear dominios definidos por
el usuario:
create domain nombre-persona char(20)
not null
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Privilegios
Generador de privilegio Grant
Sintaxis:
GRANT privilegio [, ...] ON objecto [, ...]
TO { PUBLIC | nombre_usuario | GROUP
nombre_grupo }
Ejemplo de privilegios de usuarios:
booktown=# GRANT ALL ON customers, books, editions,
publishers
booktown-# TO manager;
CHANGE
booktown=# \z publishers
Access permissions for database booktown
Relation | Access permissions
--------------+---------------------------publishers | {=,manager=arwR}
(1 row)
Privilegios
Remover Privilegios
Sintaxis:
REVOKE privileg [, ...] ON object [, ...]
FROM { PUBLIC | username | GROUP groupname }
booktown=# \z books
Access permissions for database booktown
Relation | Access permissions
------------+-------------------------------books | {=,manager=arwR,david=w}
(1 row)
booktown=# REVOKE UPDATE, DELETE ON books
booktown-# FROM david;
CHANGE
booktown=# \z books
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Triggers
Se ejecutan o disparan automáticamente cuando se producen
ciertos eventos sobre la tabla (inserción, borrado o
modificación de fila)
Se utilizan para:
– Implementar restricciones complejas de seguridad o
integridad.
– Prevenir transacciones erróneas.
– Gestionar réplicas remotas de la tabla, etc...
Elementos de los triggers:
•Nombre del trigger
•Evento de disparo
•Tipo del trigger
•Restricción del trigger
•Cuerpo del trigger
Trigger de sustitución
Se ejecutan no antes ni después, sino en lugar de (INSTEAD
OF) la orden de manipulación que disparó el trigger.
Ejemplo de trigger
CREATE OR REPLACE TRIGGER
audit_subida_salario
AFTER UPDATE OF SALARIO
ON EMPLE
FOR EACH ROW
BEGIN
INSERT INTO auditaremple VALUES (‘SUBIDA
SALARIO EMPLEADO ‘ ||:old.emp_no);
END;
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Crear Base de Dato
CREATE DATABASE nombre_base_dato
Definición de datos
Create table: Permite especificar una nueva relación dándole
un nombre y especificando sus atributos y restricciones.
CREATE TABLE PERSONA (ci integer(8),Primer_Nombre char(50),
Apellido char(50),
Direccion char(50),
Ciudad char(50),
Pais char(25),
);
Vistas
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Una vista es una tabla derivada de otra tabla no
necesariamente existe en forma física
Especificación de una vista en
SQL
CREATE VIEW TRABAJA_EN1
As SELECT nombrep, apellido, horas
FROMempleado,proyecto,trabaja_en
Where nss=nsse and nump=numerop;
Eliminar una vista en SQL
DROP VIEW TRABAJA_EN1
CREATE DOMAIN
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Sintaxis
CREATE DOMAIN name [ AS ] data_type [ DEFAULT expression ]
[ constraint [ ... ] ] where constraint is: [ CONSTRAINT
constraint_name ] { NOT NULL | NULL | CHECK (expression) }
Ejemplo:
CREATE DOMAIN persons_name CHAR(30)
Índices
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Sintaxis:
Un índice único
CREATE UNIQUE INDEX index_name ON table_name (column_name)
Un índice simple
CREATE INDEX index_name ON table_name (column_name)
Ejemplo:
CREATE INDEX PersonaIndex ON Persona (Apellido)
Cláusulas Opcionales
WITH PRIMARY: Clave principal
WITH DISALLOW NULL: Sin valores nulos
WITH IGNORE NULL : Se ignoran valores nulos
Eliminar índice
DROP INDEX ind1 ON clientes
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Aserciones
Se utiliza para establecer restricciones en la base de datos. Por ejemplo para
que el sistema compruebe las cardinalidades mínimas o las condiciones que
deben cumplir un conjunto de atributos pertenecientes a varias tablas. No está
disponible en todos los SGBD
Sintaxis:
CREATE ASSERTION <nombre> CHECK <condición>
Alter Table
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
La definición de una tabla base se puede modificar
mediante la orden Alter Tabla( alterar tabla).Las posibles
acciones incluyen la adición o eliminación de una
columna (atributo), la modificación de la definición de una
columna y la adición o modificación de restricciones.
ALTER TABLE COMPAÑÍA _ EMPLEADO
ADD PUESTO varchar(12)
Eliminar alguna orden
ALTER TABLE tab1 DROP col3
Insertar en tabla
Sintaxis:
INSERT INTO table_name VALUES (value1, value2,....)
Ejemplo:
INSERT INTO Personas VALUES (‘Perez', ‘Jose', ‘20', ‘17986853');
Actualizar tabla
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Sintaxis:
UPDATE table_name SET column_name = new_value WHERE
column_name = some_value
Ejemplo
UPDATE Empleados
SET
Salario = Salario * 1.1
Eliminar tabla
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Sintaxis:
DELETE FROM table_name WHERE column_name = some_value
Ejemplo:
DELETE FROM Person WHERE LastName = ‘Perez'
Consulta de datos
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
SELECT <Atributos y lista de funciones>
FROM <Lista de Tablas>
WHERE <Condición>
GROUP BY <atributo(s) de agrupacion>
HAVING <Condicion de agrupacion>
ORDER BY <Lista de atributos>
Funciones EXISTS y UNIQUE
Ejemplo:
Recupere el nombre de cada empleado que tenga un familiar dependiente con el
mismo nombre de pila y sexo que el empleado
SELECT
FROM
WHERE
E.NOMBRE, E.APELLIDO
EMPLEADO AS E
EXISTS (SELECT
*
FROM DEPENDIENTE
WHERE E.NSS = NSSE AND SEXO = E.SEXO AND
E.NOMBRE = NOMBRE_DEPENDIENTE)
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Privilegios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Consulta de datos
Conjuntos explicitos y NULLS
Recupere el nombre de todos los empleados de seguridad que no
tienen superrvisores
SELECT NOMBRE, APELLIDO
FROM EMPLEADO
WHERE NSS_SUPERV IS NULL
Renombrar atributos y tablas combinadas
SELECT E.APELLIDO AS NOMBRE_EMPLEADO,
S.APELLIDO AS NOMBRE_SUPERVISOR
FROM EMPLEADO AS E, EMPLEADO AS S
WHERE E.NSS_SUPERV = S.NSS;
Restricciones y Validaciones
SQL
Historia y Definición
SQL embebido
o incrustado
Tipos de datos
Tipos de Identificadores
Tipos de dominios
Triggers
Definición de datos
Manipulación de datos
Consulta de datos
Restricciones y
Validaciones
Restriccion:
CREATE TABLE Enterrador
(Nombre varchar (25),
Apellidos varchar (60),
Direccion varchar (70),
Telefono char (9),
Telef_Movil char(9),
Antiguedad integer,
Salario numeric(10,2) CHECK ((Salario < 2000) and (Salario >1400)),
Dni varchar(9) PRIMARY KEY
);
Validación:
CREATE TABLE Enterrador
(Nombre varchar (25),
Apellidos varchar (60),
Direccion varchar (70),
Telefono char (9),
Telef_Movil char(9),
Antiguedad integer,
Salario numeric(10,2) CHECK (Salario >0),
Dni varchar(9) PRIMARY KEY
);
Referencias Bibliográficas
http://www.htmlpoint.com/sql/sql_07.htm
http://www.w3schools.com/sql/sql_update.asp
http://www.ianywhere.com/developer/product_manuals
/sqlanywhere/0902/en/html/dbugen9/00000113.htm
http://www.devloker.com
Navathe Fundamentos de Sistemas de Base de Datos Tercera Edición