Está en la página 1de 27

SQL-Bsico

Fuente
Database System Concepts,Silberschatz, Korth, Sudarshan

SQL

Desarrollado por IBM (Sequel) para System R San Jose


Research Laboratory
Renombrado Structured Query Language (SQL)
Estndar definido por ANSI e ISO
SQL-86
SQL-89
SQL-92
SQL:1999
SQL:2003
Ofrecido por mayora de Sistemas Comerciales

Lenguaje de Definicin de Datos:LDD


Especificacin de conjuntos de relaciones +
informacin sobre cada relacin:

Esquema de relaciones
Dominio de valores asociados con cada atributo
Restricciones de Integridad
Conjunto de ndices para cada relacin
Informacin de seguridad y autorizacin por
relacin
Estructura de almacenamiento fsico (disco)
para cada relacin

Dominios en SQL:Tipos

char(n): cadena de caracteres de longitud fija n


especificada por el usuario

varchar(n): cadena de caracteres de longitud variable


de longitud mxima n especificada por el usuario

Int: Integer (subconjunto finito de los enteros


dependiente de la mquina).

Smallint: entero pequeo (subconjunto enteros


dependiente de la mquina, tipo de dominio entero

Dominios en SQL:Tipos

numeric(p,d): nmero de punto fijo, precisin


especificada por el usuario. Nmero formado de p
dgitos(mas el signo) de los cuales d digitos son la parte
decimal

real, double precision: nmeros de punto flotante y de


doble precisin con precisin dependiente de la
mquina

float(n): nmeros de punto flotante con precisin


(especificada por el usuario) de al menos n dgitos.

Constructor de Tablas: Create

En SQL una relacin se define mediante el


comando create table
create table r (A1 D1, A2 D2, ..., An Dn,
(integrity-constraint1),
...,
(integrity-constraintk))
r es el nombre de la relacin
cada Ai es un nombre de atributo en el esquema
de relacin r
Di es el tipo de dato para valores en el dominio
del atributo Ai

Ejemplo: Create
create table profesor
(cod-p
char(15) not null,
nombre
char(30),
cod-cat
char(2),
fac
char(20))

Restricciones de Integridad en
CREATE
not null
primary key (A , ..., A )
1
n

Ejemplo: cod-p es la llave primaria de profesor


create table profesor
(cod-p
char(15),
nombre char(30),
cod-cat char(2)
fac
char(2),
primary key (cod-p))
La declaracin primary key sobre un atributo automticamente
asegura not null a partir de SQL-92.

Constructores de Tablas: Drop y Alter

Comando drop table: borra toda la


informacin de la relacin eliminada de la
base de datos

Comando alter table se usa para aadir


atributos en una relacin existente
alter table r add A D

Constructores de Tablas: Drop y Alter


alter table r add A D
A es el nombre del atributo a aadir a la
relacin r y D es el dominio de A.
Todas las tuplas en la relacin toman el valor
null en el nuevo atributo

Comando alter table se puede usar para


quitar atributos de una relacin
alter table r drop A
donde A es el nombre de un atributo de la
relacin r
Algunos SGBD no ofrecen esta funcionalida

Constructores de Tablas: Alter


Ej:
ALTER TABLE producto
ADD descripcion VARCHAR(30);

ALTER TABLE producto


DROP descripcion;

Ejemplo
profesor

matricula

cod_e cod_a

nota

08762 750022 3.5


06777 750777 4.0
08762 750655 3.8
07654 750022 2.6

cod_p

nom_prof

codcat fac

2345

Jose Rey

2234

Mara Solarte

2367

Julio Gmez

3456

Rita Prez

asignatura

cod_a

programacin

Nom-asig

creditos

cod_a

cod_p

aula

750022 BDI

750022

2345

3-21

750777 MD

750022

2234

3-24

750655 Taller BD

750022

2367

2-34

750022 IPOO

750655

2345

7-12

750655

3456

7-15

Ejemplo
estudiante
cod_e f_nac

Nom_estud

sexo

cod_prog

08762 1-2-70

Juan Jimenez

3743

06777 2-3-89

Bety Cruz

3745

08765 3-6-78

Juan Flrez

3743

08979 12-12-85 Luisa Mora

3456

07654 3-8-90

Raul Sanchez

3743

07654 3-8-90

Raul Sanchez

3745

Ejemplo
programas
cod_prog

Nombre_prog

creditos

3743

Ingenieria de Sistemas

160

3745

Ingenieria Industrial

172

3456

Topografa

145

2890

Historia

148

2896

Geografa

150

1340

Matemtica Aplicada

170

Creando las tablas

Uso comando CREATE


Tablas creadas son TABLAS BASE
Un archivo se crea para la relacin y sus tuplas
Posibilidad de definir relaciones virtuales, no
base: VISTAS
Tablas referenciadas en FOREIGN KEY
creadas antes

Creando Tablas

Posibilidad creacin dominios


CREATE DOMAIN Tipo-cedula AS CHAR(8)

Especificacin de restricciones
NOT NULL: prohibe valor NULL
Especificado implcitamente atributos llave
DEFAULT valor: define valores predeterminados
atributo
CHECK: restringe valores de atributos o dominios

Ejemplo:CHECK

Atributo categoria toma valores 1,2,3,4

Restringir sus valores mediante restriccin

categoria INT NOT NULL CHECK (categoria > 0


AND categoria < 5)

Restricciones de Llave
PRIMARY KEY : especifica conjunto de atributos
que son llave primaria
Si llave es simple clusula puede seguir al atributo
cod_fac INT PRIMARY KEY;
UNIQUE: especifica llaves alternas
FOREIGN KEY: especifica integridad referencial

Tablas
CREATE TABLE profesor(
cod_prof
char(10),
nom_prof
varchar(30) NOT NULL,
codcat
char(2),
fac
char(2),
PRIMARY KEY (cod_p));
CREATE TABLE asignaturas(
cod_asig char(10),
nom-asig char(30)
NOT NULL,
creditos
number
NOT NULL,
PRIMARY KEY (cod_a));

Tablas
CREATE TABLE programas(
cod_pro
char(4),
nom_pro
varchar(100)
NOT NULL,
nivel
char(2)
NOT NULL,
total-cred
int,
NOT NULL
PRIMARY KEY (cod_p)
FOREIGN KEY (nivel) REFERENCE niveles(cod_nivel));
CREATE TABLE niveles(
cod_nivel char(1),
nom_nivel char(30)
NOT NULL,
PRIMARY KEY (cod_nivel));

Tablas
CREATE TABLE estudiante(
cod_es
char(10),
nom_estud
varchar(30) UNIQUE,
f_nac
Date,
sexo
char(1),
cod_prog
char(4)
NOT NULL,
PRIMARY KEY (cod_e),
FOREIGN KEY (cod_prog) REFERENCE programas
(cod_pro));
CREATE TABLE monitores(
cod_m
char(15),
nom_m
varchar(30) UNIQUE,
PRIMARY KEY (cod_m));

Tablas
CREATE TABLE matricula(
cod_e
char(10),
cod_a
char(10),
nota
numeric(3,1) DEFAULT 0.0,
PRIMARY KEY (cod_e, cod_a),
FOREIGN KEY (cod_e) REFERENCE estudiante (cod_e),
FOREIGN KEY (cod_a) REFERENCE asignatura( cod_asig));
CREATE TABLE programacion(
cod_p
char(10),
cod_a
char(10),
aula
char(5),
PRIMARY KEY (cod_p, cod_a),
FOREIGN KEY (cod_p) REFERENCE profesor (cod_prof),
FOREIGN KEY (cod_a) REFERENCE asignatura(cod_asig));

OPERACIONES BSICAS

SELECT
UPDATE
INSERT
DELETE

SQL SELECT
SELECT column_name(s)
FROM table_name;
SELECT *
FROM table_name;

SELECT *
FROM table_name
WHERE condition;

SQL INSERT

INSERT INTO table_name (column1, column2, column3,...)


VALUES value1, value2, value3,...)

INSERT INTO table_name


VALUES (value1, value2, value3,...)

SQL UPDATE
UPDATE table_name
SET
column1=new_value,
column2=new_value2,...
WHERE some_column=some_value
Ej:
UPDATE producto
SET precio=3000
WHERE cod_producto=pd001;

SQL DELETE
DELETE FROM table_name
WHERE some_column=some_value

Ej:
DELETE FROM producto
WHERE cod_producto=pd001;