Sie sind auf Seite 1von 9

17/02/2016

Lenguaje SQL

Introduccin a SQL

Ing. Martn Leiva Castillo


martin_leiva@hotmail.com

Lenguajes de Bases de Datos




Lenguaje de Definicin de Datos (DDL)

Lenguaje de Manipulacin de Datos (DML)

Sentencias que permiten definir la estructura de una base de datos

Sentencias que permiten recuperar, insertar, suprimir o modificar


datos

Se encuentran los lenguajes de consulta

Lenguaje de Control de Datos (DCL)




Sentencias para establecer restricciones de acceso a los usuarios

Permiten asignar y quitar permisos

Qu es SQL?







Lenguaje de consulta estructurado (Structured Query Language)


Lenguaje declarativo de acceso a bases de datos relacionales
Creado en los laboratorios de IBM
Es el estndar de facto de la mayora de DBMS comerciales
El estndar actual es el SQL-92 (SQL-2)
Permite:




Crear y modificar la estructura de una base de datos


Manipular y consultar datos
Asignar y quitar permisos de bases de datos

17/02/2016

Manipulacin de datos


Operaciones elementales

Sentencias SQL de definicin de datos




Crear un objeto de base de datos

Modificar un objeto de base de datos

Eliminar un objeto de base de datos

Insertar filas

Actualizar filas

Eliminar filas

CREATE
ALTER
DROP

Seleccionar filas

Ejemplos de creacin de objetos




Creacin de una base de datos


CREATE DATABASE Universidad;

Creacin de una tabla


CREATE
TABLE Escuela
(codigo_Esc char(2) NOT NULL,
nombre_Esc varchar(50) NOT NULL,
vigencia_Esc bit NOT NULL);

Ejemplos de agregar y eliminar


restricciones


Agregando una restriccin

ALTER TABLE Escuela ADD


CONSTRAINT PK_Escuela PRIMARY KEY(codigo_Esc);

Eliminando una restriccin

ALTER TABLE Escuela DROP PK_Escuela;

17/02/2016

Ejemplos de agregar columnas




Agregando una nueva columna obligatoria, si la tabla no tiene


filas

ALTER TABLE Escuela ADD


director_Esc varchar(50) NOT NULL;


Ejemplo de eliminacin de columna




Eliminando una columna

ALTER TABLE Escuela DROP COLUMN vigencia_Esc;




Agregando una nueva columna obligatoria, si la tabla tiene filas

Si la columna tienen alguna restriccin primero se debe


eliminar la restriccin para poder eliminar la columna

ALTER TABLE Escuela ADD


director_Esc varchar(50) NOT NULL
DEFAULT 'YO MISMO SOY';


Agregando una nueva columna obligatoria, si la tabla tiene filas


y considerando el nombre de la restriccin

ALTER TABLE Escuela ADD


director_Esc varchar(50) NOT NULL
CONSTRAINT DF_Escuela_director
DEFAULT 'YO MISMO SOY';

Ejemplo de eliminacin de objetos




Eliminando la tabla

Sentencias SQL de manipulacin




Insertar datos

Actualizar datos

Eliminar datos

Seleccionar datos

DROP TABLE Escuela;

Eliminando una base de datos

DROP DATABASE Universidad;

INSERT INTO
UPDATE
DELETE
SELECT

17/02/2016

Ejemplo de insercin de filas


INSERT INTO Escuela(codigo_Esc,nombre_Esc,vigencia_Esc)
VALUES('01','Agronoma',1);

Ejemplo de modificacin y eliminacin


de filas


UPDATE Escuela
SET vigencia_Esc=0, nombre_Esc= 'Estadstica'
WHERE codigo_Esc='04';

INSERT INTO Escuela(codigo_Esc,nombre_Esc,vigencia_Esc)


VALUES('02','Biologa',1);
INSERT INTO Escuela(codigo_Esc,nombre_Esc,vigencia_Esc)
VALUES('03','Administracin',1);
INSERT INTO Escuela(codigo_Esc,nombre_Esc,vigencia_Esc)
VALUES('04','Contabilidad',1);

Actualizacin de filas

Eliminacin de filas
DELETE FROM Escuela
WHERE codigo_Esc='02';

INSERT INTO Escuela VALUES('05','Economa',1);


INSERT INTO Escuela(codigo_Esc,nombre_Esc)
VALUES('06','Computacin e Informtica);

Ejemplo de seleccin de filas




Seleccionar todas las escuelas


SELECT * FROM Escuela;

Seleccionar las escuelas vigentes


SELECT *
FROM Escuela
WHERE vigencia_Esc=1;

Seleccionar las escuelas NO vigentes


SELECT *
FROM Escuela
WHERE vigencia_Esc=0;

Seleccionar el cdigo y el nombre de las escuelas vigentes


SELECT codigo_Esc,nombre_Esc
FROM Escuela
WHERE vigencia_Esc=1;

Ejemplo de creacin de tablas (1)


Tabla: Alumno
Nombre

Tipo de
dato

Longitud

Obligatorio

char

apellidoPat_Alu

varchar

30

apellidoMat_Alu

varchar

30

nombres_Alu

varchar

30

fechaNac_Alu

date

codigo_Alu

fechaIng_Alu

date

telefono_Alu

char

hermanos_Alu
estado_Alu

sexo_Alu
codigo_Esc

12

bit
char

PK

FK

S
10

Regla de
validacin

No

tinyint
char

Predeterminado

Debe ser mayor


a los 15 aos
Fecha del sistema

No
S

Ingresante

Mayor o igual a 0
Ingresante,
Matriculado,
Egresado

17/02/2016

Creacin de la tabla

Creacin de la clave primaria

--Crea la tabla Alumno


CREATE TABLE Alumno

--Crea la clave primaria en la tabla Alumno

(codigo_Alu char(7) NOT NULL,

ALTER TABLE Alumno ADD CONSTRAINT PK_Alumno

apellidoPat_Alu varchar(30) NOT NULL,

PRIMARY KEY(codigo_Alu);

apellidomat_Alu varchar(30) NOT NULL,


nombres_Alu varchar(30) NOT NULL,
fechaNac_Alu date NULL,
fechaIng_Alu date NOT NULL,
telefono_Alu char(10) NULL,
hermanos_Alu tinyint NOT NULL,
estado_Alu char(12) NOT NULL,
sexo_Alu bit NOT NULL,
codigo_Esc char(2) NOT NULL);

Creacin de los valores predeterminados


--Crea el valor predeterminado en la columna fechaIng_Alu en la tabla
--Alumno

ALTER TABLE Alumno ADD CONSTRAINT DF_Alumno_fechaIng


DEFAULT getdate() FOR fechaIng_Alu;
--Crea el valor predeterminado en la columna hermanos_Alu en la tabla
--Alumno

ALTER TABLE Alumno ADD CONSTRAINT DF_Alumno_hermanos


DEFAULT 0 FOR hermanos_Alu;
--Crea el valor predeterminado en la columna estado_Alu en la tabla
--Alumno

Creacin de las reglas de validacin


--Crea la regla de validacin en la columna hermanos_Alu en la tabla Alumno

ALTER TABLE Alumno ADD CONSTRAINT CK_Alumno_hermanos


CHECK (hermanos_Alu>=0);
--Crea la regla de validacin en la columna estado_Alu en la tabla Alumno

ALTER TABLE Alumno ADD CONSTRAINT CK_Alumno_estado


CHECK (estado_Alu IN ('Ingresante','Matriculado','Egresado'));
--Crea la regla de validacin en la columna fechaNac_Alu en la tabla Alumno

ALTER TABLE Alumno ADD CONSTRAINT CK_Alumno_fechaNac


CHECK (DATEDIFF(YY,fechaNac_Alu,GETDATE())>15);

ALTER TABLE Alumno ADD CONSTRAINT DF_Alumno_estado


DEFAULT 'Ingresante' FOR estado_Alu;
--Crea el valor predeterminado en la columna sexo_Alu en la tabla
--Alumno

ALTER TABLE Alumno ADD CONSTRAINT DF_Alumno_sexo


DEFAULT 1 FOR sexo_Alu;

--Otra forma de crear la regla de validacin para la columna


--estado_Alu en la tabla Alumno
ALTER TABLE Alumno ADD CONSTRAINT CK_Alumno_estado
CHECK (estado_Alu='Ingresante' OR
estado_Alu= 'Matriculado' OR
estado_Alu='Egresado');

17/02/2016

Ejemplo de creacin de tablas (2)

Creacin de la tabla

Tabla: Escuela
Tipo de
dato

Longitud

Obligatorio

codigo_Esc

Nombre

char

nombre_Esc

varchar

30

vigencia_Esc

bit

Predeterminado

UQ

S
S

PK

S
1

Creacin de la clave primaria


--Crea la clave primaria en la tabla Escuela
ALTER TABLE Escuela ADD CONSTRAINT PK_Escuela
PRIMARY KEY(codigo_Esc);

--Crea la tabla Escuela


CREATE TABLE Escuela
(codigo_Esc char(2) NOT NULL,
nombre_Esc varchar(30) NOT NULL,
vigencia_Esc bit NOT NULL);

Creacin de la clave nica


--Crea la clave nica en la columna nombre_Esc de la tabla
--Escuela
ALTER TABLE Escuela ADD CONSTRAINT UQ_Escuela_nombre
UNIQUE(nombre_Esc);

17/02/2016

Creacin del valor predeterminado

Ejemplo de claves forneas


Tabla: Escuela
codigo_Esc

--Crea el valor predeterminado en la columna vigencia_Esc en la


--tabla Escuela
ALTER TABLE Escuela ADD CONSTRAINT DF_Escuela_vigencia
DEFAULT 1 FOR vigencia_Esc;

nombre_Esc

01

Agronoma

02

Biologa

03

Administracin

Tabla: Alumno
codigo_Alu

nombre_Alu
RAMIREZ/LOPEZ/VERONICA

956473C

FERNANDEZ/TORRES/MANUEL

02

990045A

LISBOA/CARDENAS/TOMAS

01

Clave primaria

01

034563B

GUINEA/ESTELA/MARIA

03

035466J

CARMONA/AQUILAR/LUIS

03

057839D

DIAZ/CHAVEZ/MARCELA

02

Clave primaria

Creacin de la restriccin FOREIGN KEY

codigo_Esc

945678B

Clave fornea

Diagrama de base de datos

-- Crea la restriccin de clave fornea en la tabla Alumno


-- que referencia a la tabla Escuela
ALTER TABLE Alumno ADD CONSTRAINT FK_Alumno_Escuela
FOREIGN KEY (codigo_Esc) REFERENCES Escuela(codigo_Esc);

17/02/2016

Restricciones en SQL Server

Ejercicio adicional
Tabla: Proveedor

Restriccin

Descripcin

Nombre

PRIMARY KEY

Identifica de manera nica cada fila de una tabla

codigo_Pro

Especificado para una columna o combinacin de columnas cuyos valores


deben ser nicos para todas las filas de la tabla

razonSoc_Pro

UNIQUE
FOREIGN KEY

Establece e impone una relacin entre una o ms columnas de la tabla y


una o ms columnas de la tabla referenciada

DEFAULT

Especifica el valor predeterminado que se almacenar en una columna


cuando el usuario no especfica un valor para esa columna

CHECK

Especifica una condicin que deben cumplir los valores que se almacenen
en una columna especfica

Tipo de dato

Predeterminado

Regla de
validacin

Clave
primaria

Clave
nica

50

char

11

telefonos_Pro

char

15

varchar

100

No

char

V (Vigente),
I (Inactivo ),
N (No vigente)

Ejercicio adicional
Tabla: ProductoProveedor

Longitud

Obligatorio

codigo_Prod

bigint

nombre_Prod

varchar

stockMin_Prod

int

stockMax_Prod

int

existencias_Prod

int

precioVen_Prod

smallmoney

bit

vigencia_Prod

Obligatorio

varchar

estado_Pro

Tabla: Producto
Nombre

Longitud

int

ruc_Pro

paginaWeb_Pro

Ejercicio adicional

Tipo de
dato

Predeterminado

Regla de
validacin

S
100

Clave
primaria

Clave
nica

S
0

Mayor o igual
que 0

Nombre

Tipo de dato

codigo_Prod

bigint

Longitud

Obligatorio

Predeterminado

Regla de validacin

codigo_Pro

int

precio_PrP

smallmoney

Clave
Primaria

Clave
nica

S
S
Mayor que 0

Mayor que el
stock
mnimo
0

Mayor o igual
que 0
Mayor que 0

17/02/2016

Ejercicio adicional
Tabla: Proveedor
codigo_Pro

estado_Pro

Tabla: ProductoProveedor
codigo_Prod

codigo_Pro

precio_PrP

Tabla: Producto
codigo_Prod

vigencia_Prod

Das könnte Ihnen auch gefallen