LENGUAJE DE CONSULTA
SQL
1
Introducción
El lenguaje de consulta estructurado (SQL) es un lenguaje de
base de datos normalizado, utilizado por los diferentes motores
de bases de datos para realizar determinadas operaciones sobre
los datos o sobre la estructura de los mismos. Pero como sucede
con cualquier sistema de normalización hay excepciones para
casi todo; de hecho, cada motor de bases de datos tiene sus
peculiaridades y lo hace diferente de otro motor.
2
Introducción
SQL Lenguaje de Consulta Estructurado. Es el lenguaje que
permite la comunicación con el sistema Gestor de Base de Datos.
Es una herramienta para organizar, gestionar y recuperar datos
almacenados en una base de datos informática.
El SQL es un lenguaje unificado.- lo utilizan todo tipo de
usuarios, desde el administrador de la base de datos, DBA, hasta
el usuario final
3
Introducción
El SQL es un lenguaje no procedimental.- el usuario especifica
que quiere, no como ni donde conseguirlo.
El SQL es relacionalmente completo. Permite la realización de
cualquier consulta de datos.
SQL=DDL + DML
4
Funciones SQL
Definición de datos. SQL permite a un usuario definir la
escritura y organización de los datos almacenados, relaciones
entre ellos.
Recuperación de Datos. SQL permite recuperar datos y
utilizarlos
Manipulación de datos. Permite al usuario actualizar la base de
datos añadiendo nuevos datos, suprimiendo antiguos y
modificando datos previamente almacenados.
5
Funciones SQL
Control de Acceso. SQL puede ser utilizado para restringir la
capacidad de un usuario, para recuperar, añadir y modificar
datos, protegiendo datos almacenados frente a accesos no
autorizados.
Comparticion de datos. SQL se utiliza para coordinar la
comparticion de datos por parte de usuarios concurrentes.
Asegurando que no interfieran unos con otros
6
Funciones SQL
SQL es un lenguaje de consulta interactiva.
Los usuarios describen ordenes SQL en un programa SQL
interactivo para recuperar datos y mostrarlos en pantalla.
SQL es un lenguaje de programación de base de datos.
Los programadores insertan ordenes SQL en su programa de
aplicaciones para acceder a los datos de la base.
7
Funciones SQL
SQL es un lenguaje de administración de Dase de Datos
El administrador de la BD responsable de gestionar una BD
utiliza SQL para definir la estructura de los datos y controlar
acceso datos
SQL es lenguaje de base de datos distribuidos
Se utiliza SQL para transmitir datos a través de muchos
sistemas informáticos.
8
Tipos de datos SQL
Tipos de Datos
char(n)
Varchar(n)
integer, int
smallint
float
double precision
numeric(prec, esc)
decimal(prec, esc)
date
Blob
9
Tipos de sentencias SQL
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 si mismos, sino que es una forma de clasificar las
sentencias de lenguaje SQL.
La diferencia principal reside en que el DDL crea objetos en la
base de datos; mientras que el DML es el que permite consultar,
insertar, modificar y eliminar la informacion almacenada en los
objetos de la base de datos
10
Tipos de sentencias SQL
Cuando se ejecutan las sentencias DDL de SQL, el DBMS
confirma la transacción actual antes y después de cada una de las
sentencias DDL. En cambio, las sentencias DML no llevan
implícito el Commit y se puede deshacer
11
Lenguaje de Definición de datos
Sentencias DDL que permiten definir los objetos
de la Base de Datos
Comando Descripción
CREATE Utilizado para crear nuevas tablas, campos e índices
DROP Empleado para eliminar tablas e índices
Utilizado para modificar las tablas agregando campos o
ALTER
cambiando la definición de los campos.
12
Lenguaje de Definición de datos
Sentencias SQL que permiten definir los objetos de la Base de
Datos (DDL). Entre ellas tenemos:
CREATE TABLE .- Permite crear una tabla Ej.
CREATE TABLE nombre_tabla
(
Nombre_campo_1 tipo_1
Nombre_campo_1 tipo_2
Nombre_campo_1 tipo_n
)
13
Lenguaje de Definición de datos
Sentencias SQL que permiten definir los objetos de la Base de
Datos. Entre ellas tenemos:
CREATE TABLE .- Permite crear una tabla Ej.
CREATE TABLE nombre_tabla
(
Nombre_campo_1 tipo_1
Nombre_campo_1 tipo_2
Nombre_campo_1 tipo_n
)
14
Lenguaje de Definición de datos
Los campos pueden definirse como NOT NULL de manera
opcional, excepto en la clave primaria, para lo cual es
obligatorio. Además al definir la clave primaria se genera
automáticamente un índice con respecto al campo clave. Para
definir la clave primaria de denotamos como PRIMARY KEY
15
Lenguaje de Definición de datos
Ej. Crea la tabla producto, la cual consta de los siguientes
atributos y tiene a código como clave primaria.
CREATE TABLE Producto (
Codigo numeric NOT NULL,
Descrip varchar(50) ,
Medida char(3) ,
StockActual numeric NOT NULL,
CodFamilia numeric ,
primary key(“codigo”));
16
Lenguaje de Definición de datos
ALTER TABLE
Este comando nos sirve para añadir una columna, modificar la asignación de
almacenamiento.
Adición de una nueva columna a la tabla
Formato:
ALTER TABLE nombre_tabla ADD[COLUMN] definición_columna
Ejemplo:
ALTER TABLE producto
ADD PrecioUnitario decimal(10,2)
17
Lenguaje de Definición de datos
ALTER TABLE
Este comando nos sirve para la eliminación de una columna, de la
tabla.
Eliminar una columna de la tabla
ALTER TABLE nombre_tabla DROP[COLUMN]
ALTER TABLE producto
DROP PrecioUnitario;
18
Lenguaje de Definición de datos
ALTER TABLE
Este comando nos sirve para la eliminación de una columna de la tabla.
ALTER TABLE nombre_tabla DROP[COLUMN] definición_columna
ALTER TABLE producto
DROP COLUMN Medida
19
Lenguaje de Definición de datos
DROP TABLE
Este comando nos permite borrar una tabla. Borra la
tabla creada anteriormente.
DROP TABLE Nombre de la tabla a borrar;
DROP TABLE producto;
20
Lenguaje de Manipulación de datos
Las sentencias del SQL que se utilizan para manejar los
datos de la base de datos, entre ellos tenemos:
INSERT .- Permite añadir filas de datos a una tabla.
Su sintaxis es la siguiente:
INSERT
INTO nombre de la tabla a la que se le va a insertar el registro
VALUES (conjunto de valores del registro)
21
Lenguaje de Manipulación de datos
Las sentencias del SQL que se utilizan para manejar los
datos de la base de datos, entre ellos tenemos:
INSERT .- Permite añadir filas de datos a una tabla.
Su sintaxis es la siguiente:
INSERT
INTO nombre de la tabla a la que se le va a insertar el registro
VALUES (conjunto de valores del registro)
22
Lenguaje de Manipulación de datos
Ejemplo: insertar dato a la tabla creada.
INSERT
INTO productos
VALUES(1,’Pintura Latex’,’Gln’,22,1225)
INSERT
INTO productos
VALUES(2,’Pegamento’,’Pza’,20,1225)
La inserción de los datos se realiza conforme la estructura
que se implanto en la tabla.
23
Lenguaje de Manipulación de datos
Ejemplo: insertar dato a la tabla creada.
INSERT
INTO productos
VALUES(1,’Pintura Latex’,’Gln’,22,1225)
INSERT
INTO productos
VALUES(2,’Pegamento’,’Pza’,20,1225)
La inserción de los datos se realiza conforme la estructura
que se implanto en la tabla.
24
Lenguaje de Manipulación de datos
Ejemplo: insertar dato a la tabla creada.
Como se puede observar la sentencia tiene dos partes claramente
diferenciadas, por un lado la propia INSERT INTO seguida de la lista de
campos en los que queremos insertar los datos, y por otro la lista de valores
que queremos insertar en los campos.
INSERT INTO <nombre_tabla>
[(<campo1>,<campo2>,...)]
values
(<valor1>,<valor2>,...);
25
Lenguaje de Manipulación de datos
INSERT INTO Coches
(matricula,
marca,
modelo,
color,
numero_kilometros)
values
('M1111CA',
'RENAULT',
'MEGANE TR100',
'NEGRO DIAMANTE',
78000);
26
Lenguaje de Manipulación de datos
Consultar Datos
SELECT .- Permite recuperar los datos de una tabla, la
estructura básica de una expresión en SQL contiene 3 partes,
SELECT, FROM Y WHERE
SELECT, Se usa para listar los atributos que se desean en el
resultado de una consulta
27
Lenguaje de Manipulación de datos
Consultar Datos
FROM, Lista las relaciones que se van a examinar en la
evaluación de la expresión.
WHERE, Es la definición de las condiciones a las que puede
estar sujeta una consulta.
Si se omite la cláusula WHERE, la condición es considerada
como verdadera.
28
Lenguaje de Manipulación de datos
Consultar Datos
En la cláusula WHERE, en la condición solo se puede
comparar con campos del mismo tipo. Para valores
negativos se coloca a la izquierda el signo (-), también se
puede utilizar los siguientes operadores:
1. Menor que <
2. Mayor que >
3. Menor o igual que <=
4. Mayor a igual que >=
5. Igual que =
6. Diferente < >
7. Además de los operadores boléanos AND, NOT, OR
29
Lenguaje de Manipulación de datos
PRODUCTO
Codigo Descripcion Medida Stockactual CodFamilia
1 Pintura Latex Gln 22 26210
2 Soldadura Und 100 26210
3 Anilla Pza 20 26210
4 Pegamento Terokal Pza 15 26210
5 Cerrojo Pza 22 26210
30
Lenguaje de Manipulación de datos
SELECT *
FROM PRODUCTO
WHERE Stockactual > 20;
Resultado de la consulta.
Codigo Descripcion Medida Stockactual CodFamilia
1 Pintura Latex Gln 22 26210
2 Soldadura Und 100 26210
5 Cerrojo Pza 22 26210
31
Lenguaje de Manipulación de datos
En el ejemplo anterior vemos en la consulta toda la tabla completa,
también se puede mostrar solo algunos atributos específicos de una tabla
SELECT descrip, stockactual
FROM producto;
Descripcion Medida
Pintura Latex Gln
Soldadura Und
Anilla Pza
Pegamento Terokal Pza
Cerrojo Pza
32