Sei sulla pagina 1di 41

Tema 8.

Lenguaje SQL
ndice
Introduccin al lenguaje SQL
Uso del SQL
Sintaxis del SQL
Ejemplos de cada instruccin

GMAO: Tema 8. Lenguaje SQL

Introduccin al lenguaje SQL


Standard en el mundo de las BD: (Structured Query Language)

Interacta con un SGBD


Sub-lenguaje de BD
Fcil de entender
Se usa:
De forma interactiva
Embebido en un lenguaje de ltima generacin

Standard con mayor aceptacin en el campo de la informtica

GMAO: Tema 8. Lenguaje SQL

Uso del SQL

Definicin de datos
Control de acceso
Manipulacin de datos
Recuperacin de datos
Comparticin de datos
Integridad de datos

GMAO: Tema 8. Lenguaje SQL

Uso del SQL

Definicin de datos
Crear, modificar y borrar tablas de una base de datos

Control de acceso
Manipulacin de datos
Recuperacin de datos
Comparticin de datos
Integridad de datos

GMAO: Tema 8. Lenguaje SQL

Uso del SQL


Definicin de datos
CREATE TABLE:
Crea una tabla con un nombre y una estructura
concretas dadas por las definicin de las columnas
ALTER TABLE:
Modifica la definicin de una tabla, aade columnas,
elimina columnas modifica el tipo de columnas
DROP TABLE:
Elimina una tabla del esquema de base de datos

GMAO: Tema 8. Lenguaje SQL

Sintaxis del SQL


Creacin de tablas de base de datos. Sentencia CREATE TABLE
CREATE TABLE tabla
{ columna1

tipo de dato | dominio | NOT NULL

.......
columna n

tipo de dato | dominio | NOT NULL

PRIMARY KEY columna


FOREIGN KEY columna REFERENCES tabla columna};
COMMIT;

GMAO: Tema 8. Lenguaje SQL

Sintaxis del SQL


Tipos de datos:
CHAR(n):
Cadenas de caracteres de longitud fija (n entero
positivo)
VARCHAR(n):
Cadenas de caracteres de longitud variable (mximo n)
INTEGER:
Valores enteros
NUMERIC:
Cualquier nmero
DATE:
Tipo fecha
BOOLEAN
Verdadero (1) o falso (0)
GMAO: Tema 8. Lenguaje SQL

Ejemplos
CREATE TABLE libro
{
ISBN_lib

VARCHAR (6) NOT NULL,

Titulo_lib

VARCHAR (100) NOT NULL,

Idioma_lib

VARCHAR (20),

Ao_publ_lib

INTEGER (4),

Cod_edit_lib

INTEGER (5) NOT NULL,

PRIMARY KEY (ISBN_lib),


FOREIGN KEY (Cod_edit_libro) REFERENCES Editorial (cod_edit)
};
COMMIT;
GMAO: Tema 8. Lenguaje SQL

Ejemplos
CREATE DOMAIN tipos_socio VARCHAR (1) CHECK VALUE IN (A,D,P)
CREATE TABLE socio
{
DNI_soc

VARCHAR (10) NOT NULL,

Ap1_soc

VARCHAR (40) NOT NULL,

Ap2_soc

VARCHAR (40),

Nombre_soc

VARCHAR (40), NOT NULL

Calle_soc

VARCHAR (40),

Nro_soc

INTEGER (4),

CP_soc

INTEGER (5),

Tipo_soc

tipos_socio,

PRIMARY KEY (DNI_soc)


};
COMMIT;
GMAO: Tema 8. Lenguaje SQL

Sintaxis del SQL


Modificacin de tablas de base de datos. Sentencia ALTER TABLE
ALTER TABLE:
ALTER TABLE tabla
{ ADD COLUMN
columna

tipo de dato | dominio | NOT NULL

ALTER COLUMN
columna

tipo de dato | dominio | NOT NULL

DROP COLUMN
columna};
COMMIT;
GMAO: Tema 8. Lenguaje SQL

10

Ejemplos
ALTER TABLE libro
{ ADD COLUMN
Nro_ejem_lib

INTEGER (4)

ALTER COLUMN
Idioma_lib

VARCHAR (20), NOT NULL

DROP COLUMN
Ao_publ_lib
};
COMMIT;

GMAO: Tema 8. Lenguaje SQL

11

Sintaxis del SQL

Borrado de tablas de base de datos. Sentencia DROP TABLE


DROP TABLE:
DROP TABLE tabla;
COMMIT;

GMAO: Tema 8. Lenguaje SQL

12

Ejemplos

DROP TABLE libro;


COMMIT;

GMAO: Tema 8. Lenguaje SQL

13

Uso del SQL

Definicin de datos
Control de acceso
Definir privilegios de usuario, actualizar
esos privilegios y quitar los privilegios originales

Manipulacin de datos
Recuperacin de datos
Comparticin de datos
Integridad de datos

GMAO: Tema 8. Lenguaje SQL

14

Uso del SQL

Control de acceso a datos


GRANT
Aade privilegios de uso de un usuario sobre una tabla
REVOKE
Elimina privilegios de uso de un usuario sobre una tabla

GMAO: Tema 8. Lenguaje SQL

15

Sintaxis del SQL


Definicin de privilegios. Sentencia GRANT
GRANT INSERT, UPDATE, SELECT
ON tabla
TO usuario
Eliminacin de privilegios. Sentencia REVOKE
REVOKE INSERT, UPDATE, SELECT
ON tabla
TO usuario

GMAO: Tema 8. Lenguaje SQL

16

Ejemplos

GRANT INSERT, UPDATE, SELECT


ON libro
TO mjlerma

REVOKE INSERT, UPDATE


ON libro
TO mjlerma

GMAO: Tema 8. Lenguaje SQL

17

Uso del SQL


Definicin de datos
Control de acceso
Manipulacin de datos
Permite manejar la informacin contenida en la BDD,
meter informacin nueva, actualizar informacin obsoleta
o errnea y borrar informacin inservible

Recuperacin de datos
Comparticin de datos
Integridad de datos

GMAO: Tema 8. Lenguaje SQL

18

Uso del SQL


Manipulacin de datos
INSERT
Insertar una o varias filas de una tabla
UPDATE
Modificar el valor de una o varias columnas de
una o varias filas
DELETE
Eliminar una o varias filas de una tabla

GMAO: Tema 8. Lenguaje SQL

19

Sintaxis del SQL


Insercin de datos. Sentencia INSERT
INSERT INTO tabla (columna1, ....., columnan)
VALUES (valor1, ....., valorn)
COMMIT;
Modificacin de datos. Sentencia UPDATE
UPDATE tabla
SET columna 1 = valor 1, ....., columna n = valor n
[WHERE condicin]
COMMIT;
GMAO: Tema 8. Lenguaje SQL

20

Sintaxis del SQL


Borrado de datos. Sentencia DELETE / DELETE CASCADE
DELETE FROM | ALL tabla
[WHERE condicin]
COMMIT;
DELETE CASCADE FROM | ALL tabla
[WHERE condicin]
COMMIT;

GMAO: Tema 8. Lenguaje SQL

21

Ejemplos

INSERT INTO libro


(ISBN, titulo, idioma, ao_publ, CIF_edit, nro_ejempl)
VALUES (978-84-8363-580-3, Sistemas de gestin de
mantenimiento asistido por ordenador (GMAO).
Requerimientos y funcionalidades, Castellano, 2010,
B-46-22222,10)
COMMIT;

GMAO: Tema 8. Lenguaje SQL

22

Ejemplos

INSERT INTO libro


VALUES (978-84-8363-580-3, Sistemas de gestin de
mantenimiento asistido por ordenador (GMAO).
Requerimientos y funcionalidades, Castellano, 2010,
B-46-22222,10)
COMMIT;

GMAO: Tema 8. Lenguaje SQL

23

Ejemplos

INSERT INTO libro


(ISBN, titulo, CIF_edit)
VALUES (978-84-8363-580-3, Sistemas de gestin de
mantenimiento asistido por ordenador (GMAO).
Requerimientos y funcionalidades, B-46-22222)
COMMIT;

GMAO: Tema 8. Lenguaje SQL

24

Ejemplos
UPDATE libro
SET idioma=Espaol
WHERE idioma=Castellano
COMMIT;
UPDATE libro
SET nro_ejempl=nro_ejempl+5
WHERE CIF_edit=B-28-4444
COMMIT;

GMAO: Tema 8. Lenguaje SQL

25

Ejemplos

UPDATE libro
SET nro_ejempl=nro_ejempl+5
WHERE CIF_edit=B-28-4444 AND ao_publ=2014
COMMIT;

GMAO: Tema 8. Lenguaje SQL

26

Ejemplos
DELETE ALL libro

DELETE CASCADE libro

COMMIT;

COMMIT;

DELETE [CASCADE] FROM libro

DELETE [CASCADE] FROM libro

WHERE ISBN=B-87-2222

WHERE ISBN LIKE B-87-%

COMMIT;

COMMIT;

DELETE [CASCADE] FROM libro

DELETE [CASCADE] FROM libro

WHERE idioma=Sueco

WHERE nro_ejempl < 1

COMMIT;

COMMIT;

GMAO: Tema 8. Lenguaje SQL

27

Uso del SQL

Definicin de datos
Control de acceso
Manipulacin de datos
Recuperacin de datos
Permite hacer consultas a la base de datos y obtener
la informacin que necesitemos

Comparticin de datos
Integridad de datos

GMAO: Tema 8. Lenguaje SQL

28

Uso del SQL

Recuperacin de datos
SELECT:
Recupera informacin de una o ms tablas de la base de datos
Se puede recuperar un nico dato o un conjunto de datos
que cumplen una determinada condicin
Permite operar con los datos que se recuperan o con las
condiciones que se evalan
Permite dar formato a los datos que se obtienen

GMAO: Tema 8. Lenguaje SQL

29

Sintaxis del SQL


Recuperacin de datos. Sentencia SELECT
SELECT:
SELECT columna1, .columnan FROM tabla
WHERE condicin
COMMIT;

SELECT:
FROM:
WHERE:
GROUP BY:
ORDER BY:

listado de las columnas a recuperar


tabla/s de donde proceden las columnas a recuperar
condiciones a cumplir por los datos
agrupa filas similares y da un resultado por grupo
ordena los resultados

GMAO: Tema 8. Lenguaje SQL

30

Ejemplos
SELECT bsica
SELECT * FROM libro
COMMIT;
SELECT ISBN, titulo
FROM libro
WHERE ao_publ >= 2011 AND idioma=Ingls
ORDER BY titulo
COMMIT;

GMAO: Tema 8. Lenguaje SQL

31

Sintaxis del SQL


Sentencia SELECT
Clusula SELECT y clusula FROM
SELECT [DISTICNT] tem
DISTINCT para evitar filas duplicadas
Item:
* (todas las columnas de una tabla)
nombre de columna
constante
clculo
FROM tabla
una o ms tablas
deben estar todas las que contienen las columnas
de la clusula SELECT
GMAO: Tema 8. Lenguaje SQL

32

Sintaxis del SQL


Sentencia SELECT
Clculos pueden ser

Numricos
Alfanumricos (CHAR o VARCHAR)
Fecha

Numricos:

cualquier operador de clculo (+ - * /)

GMAO: Tema 8. Lenguaje SQL

33

Sintaxis del SQL


Alfanumricos
SUBSTRING (cadena FROM inicio FOR longitud)
Extrae una cadena a partir de otra
UPPER (cadena)
Pasa a maysculas la cadena
LOWER (cadena)
Pasa a minsculas la cadena
TRIM carcter FROM cadena
Elimina los caracteres idnticos a carcter en cadena
OVERLAY (cadena1 PLACING cadena2 FROM inicio [FOR
longitud])
Reemplaza la porcin definida por inicio y longitud de
cadena1 por cadena2
GMAO: Tema 8. Lenguaje SQL

34

Sintaxis del SQL


Fecha

CURRENT_DATE
Devuelve la fecha actual del sistema

CURRENT_TIME (precisin)
Devuelve la hora actual del sistema con la precisin indicada

INTERVAL: CURRENT_DATE + INTERVAL 1 DAY


Para hacer operaciones con fechas

GMAO: Tema 8. Lenguaje SQL

35

Sintaxis del SQL


Sentencia SELECT
Clusula WHERE
WHERE condiciones de bsqueda
comparacin (>,<,<>,=.)
rango BETWEEN: (A BETWEEN B AND C) = (A>=B AND A<=C)
pertenencia IN
patrn LIKE (% es el carcter comodn)
valor nulo IS NULL
compuestas AND OR NOT
JOIN: cuando hay varias tablas en la lista del FROM

GMAO: Tema 8. Lenguaje SQL

36

Sintaxis del SQL


Sentencia SELECT
Clusula ORDER BY
ORDER BY lista de columnas ASC | DESC
Clusula GROUP BY
GROUP BY lista de columnas
Va acompaada normalmente por una expresin entre los tems de
la clusula SELECT, COUNT(), SUM(),
Clusula HAVING
HAVING condicin de bsqueda = WHERE pero papa grupos

GMAO: Tema 8. Lenguaje SQL

37

Ejemplos
SELECT DISTINCT nacionalidad
FROM autor
ORDER BY nacionalidad ASC
COMMIT;
SELECT ap1_soc,nom_soc
FROM socio, presta
WHERE socio.dni=presta.dni AND fecha_dev IS NULL
ORDER BY ap1_soc
COMMIT;
GMAO: Tema 8. Lenguaje SQL

38

Ejemplos
SELECT cod_aut, ap1_aut,ap2_aut,nom_aut,count(*)
FROM escribe, autor
WHERE escribe.cod_aut=autor.cod_aut
GROUP BY cod_aut
HAVING count(*)>3
ORDER BY ap1_aut
COMMIT;

GMAO: Tema 8. Lenguaje SQL

39

Ejemplos
SELECT ap1_soc,nom_soc
FROM socio, presta, tipo
WHERE socio.dni=presta.dni
AND socio.tipo_soc=tipo.tipo_soc AND tipo.tipo_soc=A
ORDER BY ap1_soc
COMMIT;

GMAO: Tema 8. Lenguaje SQL

40

Ejemplos
SELECT ap1_soc,nom_soc, (das-(fecha_dev-fecha_pres))
FROM socio, presta, tipo
WHERE socio.dni=presta.dni
AND socio.tipo_soc=tipo.tipo_soc AND fecha_dev IS NOT NULL
AND (fecha_dev-fecha_pres)>= tipo.dias
ORDER BY ap1_soc
COMMIT;

GMAO: Tema 8. Lenguaje SQL

41

Potrebbero piacerti anche