Sunteți pe pagina 1din 46

SQL .

Lenguaje de
Consultas
Estructurado
Ing. Carlos Polanco
Segunda sesión
Que es SQL?
es un lenguaje unificado que
Lo utilizan todo tipo de
usuarios, desde el
administrador de la base de
datos, DBA, hasta el usuario
final.
El SQL es un lenguaje no
procedimental.
El usuario especifica
Qué quiere, no Cómo
ni Dónde conseguirlo.
El SQL es relacionalmente
completo.
Permite la realización
de cualquier consulta
de datos.
SQL= DDL + DML + DCL
Las sentencias del
SQL se clasifican
como parte del DDL o
del DML
Tipos de Sentencias
Las sentencias SQL pertenecen a dos
categorías principales: Lenguaje de Definición
de Datos, DDL y Lenguaje de Manipulación de
Datos, DML. Estos dos lenguajes no son
lenguajes en sí mismos, sino que es una
forma de clasificar las sentencias de lenguaje
SQL en función de su cometido. La diferencia
principal reside en que el DDL crea objetos en
la base de datos y sus efectos se pueden ver
en el diccionario de la base de datos;
mientras que el DML es el que permite
consultar, insertar, modificar y eliminar la
información almacenada en los objetos de la
SQL= DDL + DML + DCL
Las sentencias del
SQL se clasifican
como parte del DDL o
del DML
SQL= DDL + DML + DCL
El DDL, lenguaje de
definición de datos:
El DDL (Data Definition
Language) lenguaje de
definición de datos es la parte
del SQL que más varía de un
sistema a otro ya que esa area
tiene que ver con cómo se
organizan internamente los
datos y eso, cada sistema lo
SQL= DDL + DML + DCL
El DDL, lenguaje de
definición de datos:
La sentencia CREATE TABLE

sirve para crear la estructura


de una tabla no para rellenarla
con datos, nos permite definir
las columnas que tiene y
ciertas restricciones que
deben cumplir esas columnas.
SQL= DDL + DML + DCL
El DDL, lenguaje de
definición de datos:
nbtabla: nombre de la tabla que
estamos definiendo
nbcol: nombre de la columna
que estamos definiendo
SQL= DDL + DML + DCL
El DDL, lenguaje de
definición de datos:
tipo: tipo de dato de la columna
Tipos de Sentencias
SQL= DDL + DML
SQL= DDL + DML + DCL
El DDL, lenguaje de
definición de datos:
Una restricción consiste en la definición
de una característica adicional que
tiene una columna o una combinación
de columnas, suelen ser características
como valores no nulos (campo requerido),
definición de índice sin duplicados,
definición de clave principal y definición
de clave foránea (clave ajena o externa,
campo que sirve para relacionar dos
tablas entre sí).
SQL= DDL + DML + DCL
El DDL, lenguaje de
definición de datos:
restricción1: una restricción de tipo 1 es una
restricción que aparece dentro de la
definición de la columna después del tipo
de dato y afecta a una columna, la que se
está definiendo.
restricción2: una restricción de tipo 2 es una
restricción que se define después de definir
todas las columnas de la tabla y afecta a
una columna o a una combinación de
columnas.
SQL= DDL + DML + DCL
El DDL, lenguaje de
definición de datos:
 Para escribir una sentencia CREATE TABLE se empieza por
indicar el nombre de la tabla que queremos crear y a
continuación entre paréntesis indicamos separadas por
comas las definiciones de cada columna de la tabla, la
definición de una columna consta de su nombre, el tipo
de dato que tiene y podemos añadir si queremos una
serie de especificaciones que deberán cumplir los datos
almacenados en la columna, después de definir cada una
de las columnas que compone la tabla se pueden añadir
una serie de restricciones, esas restricciones son las
mismas que se pueden indicar para cada columna pero
ahora pueden afectar a más de una columna por eso
tienen una sintaxis ligeramente diferente.
SQL= DDL + DML + DCL
El DDL, lenguaje de
definición de datos:
 La cláusula NOT NULL indica que la columna no podrá contener un
valor nulo, es decir que se deberá rellenar obligatoriamente y con un
valor válido (equivale a la propiedad requerido Sí de las propiedades
del campo).
 La cláusula CONSTRAINT sirve para definir una restricción que se
podrá eliminar cuando queramos sin tener que borrar la columna. A
cada restricción se le asigna un nombre que se utiliza para
identificarla y para poder eliminarla cuando se quiera.
 Como restricciones tenemos la de clave primaria (clave principal), la de
índice único (sin duplicados), la de valor no nulo, y la de clave
foránea.
 La cláusula PRIMARY KEY se utiliza para definir la columna como clave
principal de la tabla. Esto supone que la columna no puede
contener valores nulos ni pueden haber valores duplicados en
esa columna, es decir que dos filas no pueden tener el mismo valor en
esa columna.
SQL= DDL + DML + DCL
Ejemplo:
Para
DDL: seguir con la instrucción CREATE TABLE
pasa a la siguiente
CREATE TABLEpágina...
tab1 (
col1 INTEGER CONSTRAINT pk PRIMARY
KEY,
col2 CHAR(25) NOT NULL,
col3 CHAR(10) CONSTRAINT uni1
UNIQUE,
col4 INTEGER,
col5 INT CONSTRAINT fk5 REFERENCES
tab2 );
SQL= DDL + DML + DCL
DML lenguaje de definición
de datos:

incluye órdenes para definir,


modificar o borrar las tablas
en las que se almacenan los
datos y de las relaciones
entre estas. (Es el que más
varia de un sistema a otro)
SQL= DDL + DML + DCL
el DCL (Data Control Lenguage),
lenguaje de control de datos,
contiene elementos útiles para trabajar
en un entorno multiusuario, en el que es
importante la protección de los datos,
la seguridad de las tablas y el
establecimiento de restricciones en el
acceso, así como elementos para
coordinar la compartición de datos por
parte de usuarios concurrentes,
asegurando que no interfieren unos con
otros.
Características del
lenguaje
Una sentencia SQL es como una frase (escrita
en inglés ) con la que decimos lo que 
queremos obtener y de donde obtenerlo.


Características del
lenguaje
Todas las sentencias empiezan con un verbo
(palabra reservada que indica la acción a
realizar), seguido del resto de cláusulas,
algunas obligatorias y otras opcionales
que completan la frase. Todas las sentencias
siguen una sintaxis para que se puedan
ejecutar correctamente, para describir esa
sintaxis utilizaremos un diagrama
sintáctico como el que se muestra a
continuación.


Ejemplo de tabla
Ejemplo de tabla
Tabla empleados con los siguientes campos:

numemp : número del empleado


nombre : nombre y apellidos del empleado
edad : edad del empleado
oficina : número de la oficina donde trabaja el empleado , p.ej.
Antonio Viguer trabaja en la oficina 12 de Alicante
titulo : el cargo que desempeña el empleado
contrato : fecha en que se contrató al empleado
jefe : número de su jefe inmediato , p.ej. El jefe de Antonio Viguer es
José González. Observar que Luis Antonio no tiene jefe, es el director
general.
cuota : cuota del empleado, sería el importe mínimo de ventas que debe
alcanzar el empleado en el año
ventas : importe de ventas realizadas durante este año
Ejemplo de tabla
Ejemplo de tabla
Tabla oficinas con los siguientes campos:

oficina: código de la oficina


ciudad: ciudad donde está ubicada
region : región a la que pertenece
dir : director de la oficina (su número de empledo) por ejemplo la
oficina 12 tiene como director el empleado104 José González.
objetivo : objetivo de ventas que debe alcanzar la oficina
ventas: ventas de la oficina
Ejemplo de tabla

Tabla clientes con los siguientes campos:

numclie: número de cliente


nombre : nombre y apellidos del cliente
repclie : nº del representante asignado al
cliente.
Cada cliente tiene un representante asignado
(el que figura en repclie) que será el que
generalmente le atienda.
limitecredito : límite de crédito del cliente
Ejemplo de tabla
Tabla productos con los siguientes
campos:

idfab: identificativo del fabricante del


producto
idproducto : código que utiliza el fabricante
para codificar el producto. Observar que
aparecen varias líneas con el mismo
idproducto (41003), por lo que la clave
principal de la tabla deberá ser
idfab+idproducto
descripcion: nombre del producto
precio: precio del producto
existencias: nº de unidades del producto
que tenemos en almacén.
Ejemplo de tabla
Tabla pedidos:

codigo : nº secuencial que sirve de


clave principal
numpedido: nº de pedido. Observar
que un pedido puede tener varias
líneas.
fechapedido : fecha del pedido
clie : cliente que efectua el pedido
rep : representante que tramita el
pedido
fab: fabricante del producto que se
pide
producto : idproducto del producto
que se pide.
cant : cantidad que se pide del
producto
importe : importe de la línea de
pedido
Conexión
Tabla pedidos:

codigo : nº secuencial que sirve de clave principal


numpedido: nº de pedido. Observar que un pedido puede tener varias líneas.
fechapedido : fecha del pedido
clie : cliente que efectua el pedido
rep : representante que tramita el pedido
fab: fabricante del producto que se pide
producto : idproducto del producto que se pide.
cant : cantidad que se pide del producto
importe : importe de la línea de pedido
Creación SQL
La primera fase de cualquier base de
datos comienza siempre con
sentencias DDL, ya que antes de
poder almacenar información
debemos definir los objetos básicos
donde agrupar la información. Los
objetos básicos con que trabaja SQL
son las tablas. Una tabla es un
conjunto de celdas agrupadas en
filas y columnas donde se almacenan
SQL . Lenguaje de
Consultas
Estructurado
Ing. Carlos Polanco
Tercer sesión
Como crear tablas
Antes de llevar a cabo la creación de una tabla
conviene planificar:
nombre de la tabla,
nombre de cada columna,
tipo y tamaño de los datos almacenados en
cada columna,
información adicional, restricciones, etc.

Nombre cedula Id_pri


EJEMPLO DE TABLA
La sintaxis del comando que permite crear un
tabla es la siguiente:
CREATE TABLE [esquema.]tabla ({columna
tipoColumna [NOT NULL],}+, {CONSTRAINT
nombreRestricción {UNIQUE ([column,]+)|
DEFAULT expresion| CHECK (condicion)|
PRIMARY KEY ([column,]+)| FOREIGN KEY
(column) REFERENCES tabla(columna)},}*)
Tipos de Columnas
Restricciones
Las restricciones de los datos se
imponen para asegurarnos que
los datos cumplen con una serie
de condiciones predefinidas para
cada tabla. Estas restricciones
ayudan a conseguir la integridad
de referencia: todas las
referencias dentro de una BD son
válidas y todas las restricciones
Restricciones
NOT NULL Establece la obligatoriedad de que
esta columna tenga un valor no nulo. Se debe
especificar junto a la columna a la que afecta.
Los valores nulos no ocupan espacio, y son
distintos a 0 y al espacio en blanco. Hay que
tener cuidado con los valores nulos en las
operaciones, ya que 1 * NULL es igual a NULL.
UNIQUE Evita valores repetidos en una
columna, admitiendo valores nulos. Oracle
crea un índice automáticamente cuando se
habilita esta restricción y lo borra al
deshabilitarse.
Restricciones
DEFAULT Establece un valor por defecto para
esa columna, si no se le asigna ninguno.

CHECK Comprueba que se cumpla una


condición determinada al rellenar esa
columna. Esta condición sólo debe estar
construida con columnas de esta misma
tabla.
Restricciones
DEFAULT Establece un valor por defecto para
esa columna, si no se le asigna ninguno.

CHECK Comprueba que se cumpla una


condición determinada al rellenar esa
columna. Esta condición sólo debe estar
construida con columnas de esta misma
tabla.
Restricciones
 PRIMARY KEY Establece el conjunto de columnas que forman
la clave primaria de esa tabla. Se comporta como única y
obligatoria sin necesidad de explicitarlo. Sólo puede existir
una clave primaria por tabla. Puede ser referenciada como
clave ajena por otras tablas. Crea un índice
automáticamente cuando se habilita o se crea esta
restricción.

 FOREIGN KEY Establece que el contenido de esta columna


será uno de los valores contenidos en una columna de otra
tabla maestra. Esta columna marcada como clave ajena
puede ser NULL. No hay límite en el número de claves
ajenas. La clave ajena puede ser otra columna de la misma
tabla. Se puede forzar que cuando una fila de la tabla
maestra sea borrada, todas las filas de la tabla detalle cuya
clave ajena coincida con la clave borrada se borren
también. Esto se consigue añadiendo la coletilla ON DELETE
CASCADE en la definición de la clave ajena.
EJEMPLO
EJEMPLO
Comando Describe
comando que resulta muy útil
cuando queremos conocer la
estructura de una tabla, las
columnas que la forman y su tipo
y restricciones. Este comando
toma una mayor importancia
según nos alejemos del
momento de creación de una
tabla.
Ejemplo
Ejemplo

S-ar putea să vă placă și