lenguaje sql 2012
TRANSCRIPT
-
8/18/2019 Lenguaje SQL 2012
1/9
17/02/
Lenguaje SQL
Ing. Martín Leiva Castillo
Introducción a SQL
Lenguajes de Bases de Datos
Lenguaje de Definición de Datos (DDL)
Sentencias que permiten definir la estructura de una base de datos
Lenguaje de Manipulación de Datos (DML)
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
Lenguaje de consulta estructurado (Structured Query Language)
Lenguaje declarativo de acceso a bases de datos relacionales
Creado en los laboratorios de IBM
Es el estándar de facto de la mayoría de DBMS comerciales
El estándar 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
¿Qué es SQL?
-
8/18/2019 Lenguaje SQL 2012
2/9
17/02/
Operaciones elementales
Manipulación de datos
Insertar filas
Actualizar filas
Eliminar filas
Seleccionar filas
Crear un objeto de base de datos
CREATE
Modificar un objeto de base de datos
ALTER
Eliminar un objeto de base de datos
DROP
Sentencias SQL de definición de datos
Ejemplos de creación de objetos
Creación de una base de datos
Creación de una tabla
CREATE TABLE Escuela
(codigo_Esc char(2) NOT NULL,
nombre_Esc varchar(50) NOT NULL,
vigencia_Esc bit NOT NULL);
CREATE DATABASE Universidad;
Agregando una restricción
Eliminando una restricción
Ejemplos de agregar y eliminar
restricciones
ALTER TABLE Escuela ADD
CONSTRAINT PK_Escuela PRIMARY KEY(codigo_Esc);
ALTER TABLE Escuela DROP PK_Escuela;
-
8/18/2019 Lenguaje SQL 2012
3/9
17/02/
Agregando una nueva columna obligatoria, si la tabla no tiene
filas
Agregando una nueva columna obligatoria, si la tabla tiene filas
Agregando una nueva columna obligatoria, si la tabla tiene filas
y considerando el nombre de la restricción
Ejemplos de agregar columnas
ALTER TABLE Escuela ADD
director_Esc varchar(50) NOT NULL;
ALTER TABLE Escuela ADD
director_Esc varchar(50) NOT NULL
DEFAULT 'YO MISMO SOY';
ALTER TABLE Escuela ADD
director_Esc varchar(50) NOT NULL
CONSTRAINT DF_Escuela_director
DEFAULT 'YO MISMO SOY';
Eliminando una columna
Si la columna tienen alguna restricción primero se debe
eliminar la restricción para poder eliminar la columna
Ejemplo de eliminación de columna
ALTER TABLE Escuela DROP COLUMN vigencia_Esc;
Eliminando la tabla
Eliminando una base de datos
Ejemplo de eliminación de objetos
DROP TABLE Escuela;
DROP DATABASE Universidad;
Insertar datos
INSERT INTO
Actualizar datos
UPDATE
Eliminar datos
DELETE
Seleccionar datos
SELECT
Sentencias SQL de manipulación
-
8/18/2019 Lenguaje SQL 2012
4/9
17/02/
Ejemplo de inserción de filas
INSERT INTO Escuela(codigo_Esc,nombre_Esc,vigencia_Esc)
VALUES('01','Agronomía',1);
INSERT INTO Escuela(codigo_Esc,nombre_Esc,vigencia_Esc)
VALUES('02','Biología',1);
INSERT INTO Escuela(codigo_Esc,nombre_Esc,vigencia_Esc)
VALUES('03','Administración',1);
INSERT INTO Escuela(codigo_Esc,nombre_Esc,vigencia_Esc)
VALUES('04','Contabilidad',1);
INSERT INTO Escuela VALUES('05','Economía',1);
INSERT INTO Escuela(codigo_Esc,nombre_Esc)
VALUES('06','Computación e Informática’);
Actualización de filas
Eliminación de filas
Ejemplo de modificación y eliminación
de filas
UPDATE Escuela
SET vigencia_Esc=0, nombre_Esc= 'Estadística'
WHERE codigo_Esc='04';
DELETE FROM Escuela
WHERE codigo_Esc='02';
Seleccionar todas las escuelas
Seleccionar las escuelas vigentes
Seleccionar las escuelas NO vigentes
Seleccionar el código y el nombre de las escuelas vigentes
Ejemplo de selección de filas
SELECT *
FROM Escuela
WHERE vigencia_Esc=1;
SELECT * FROM Escuela;
SELECT *
FROM Escuela
WHERE vigencia_Esc=0;
SELECT codigo_Esc,nombre_Esc
FROM Escuela
WHERE vigencia_Esc=1;
Ejemplo de creación de tablas (1)
Nombre Tipo de
dato
Longitud Obl igatorio Predeterminado Regla de
validación
PK FK
codigo_Alu char 7 Sí Sí
apellidoPat_Alu varchar 30 Sí
apellidoMat_Alu varchar 30 Sí
nombres_Alu varchar 30 Sí
fechaNac_Alu date No Debe ser mayor
a los 15 años
fechaIng_Alu date Sí Fecha del sistema
telefono_Alu char 10 No
hermanos_Alu tinyint Sí 0 Mayor o igual a 0
estado_Alu char 12 Sí Ingresante Ingresante,
Matriculado,
Egresado
sexo_Alu bit Sí 1
codigo_Esc char 2 Sí Sí
Tabla: Alumno
-
8/18/2019 Lenguaje SQL 2012
5/9
17/02/
--Crea la tabla Alumno
CREATE TABLE Alumno
(codigo_Alu char(7) NOT NULL,
apellidoPat_Alu varchar(30) NOT NULL,
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);
Creación de la tabla
--Crea la clave primaria en la tabla Alumno
ALTER TABLE Alumno ADD CONSTRAINT PK_Alumno
PRIMARY KEY(codigo_Alu);
Creación de la clave primaria
--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
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;
Creación de los valores predeterminados
--Crea la regla de validación 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 validación 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 validación en la columna fechaNac_Alu en la tabla Alumno
ALTER TABLE Alumno ADD CONSTRAINT CK_Alumno_fechaNac
CHECK (DATEDIFF(YY,fechaNac_Alu,GETDATE())>15);
Creación de las reglas de validación
--Otra forma de crear la regla de validación 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');
-
8/18/2019 Lenguaje SQL 2012
6/9
17/02/
Ejemplo de creación de tablas (2)
No mb re Tipo d e
dato
Longitud Obl igatorio Predeterminado PK UQ
codigo_Esc char 2 Sí Sí
nombre_Esc varchar 30 Sí Sí
vigencia_Esc bit Sí 1
Tabla: Escuela
--Crea la tabla Escuela
CREATE TABLE Escuela
(codigo_Esc char(2) NOT NULL,
nombre_Esc varchar(30) NOT NULL,
vigencia_Esc bit NOT NULL);
Creación de la tabla
--Crea la clave primaria en la tabla Escuela
ALTER TABLE Escuela ADD CONSTRAINT PK_Escuela
PRIMARY KEY(codigo_Esc);
Creación de la clave primaria
--Crea la clave única en la columna nombre_Esc de la tabla
--Escuela
ALTER TABLE Escuela ADD CONSTRAINT UQ_Escuela_nombre
UNIQUE(nombre_Esc);
Creación de la clave única
-
8/18/2019 Lenguaje SQL 2012
7/9
17/02/
--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;
Creación del valor predeterminado Ejemplo de claves foráneas
codigo_Esc nombre_Esc
01 Agronomía
02 Biología
03 Administración
Tabla: Escuela
codigo_Alu nombre_Alu codigo_Esc
945678B RAMIREZ/LOPEZ/VERONICA 01
956473C FERNANDEZ/TORRES/MANUEL 02
990045A LISBOA/CARDENAS/TOMAS 01
034563B GUINEA/ESTELA/MARIA 03
035466J CARMONA/AQUILAR/LUIS 03
057839D DIAZ/CHAVEZ/MARCELA 02
Tabla: Alumno
Clave primaria
Clave primaria Clave foránea
-- Crea la restricción de clave foránea 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);
Creación de la restricción FOREIGN KEY Diagrama de base de datos
-
8/18/2019 Lenguaje SQL 2012
8/9
17/02/
Restricciones en SQL Server
Ejercicio adicional
N ombre T ipo de
dato
Longitud Obligatorio Predeterminado Regla de
validación
Clave
primaria
Clave
única
codigo_Pro int Sí Sí
razonSoc_Pro varchar 50 Sí Sí
ruc_Pro char 11 Sí Sí
telefonos_Pro char 15 Sí
paginaWeb_Pro varchar 100 No
estado_Pro char 1 Sí V
V (Vigente),
I (Inactivo ),
N (No vigente)
Tabla: Proveedor
Ejercicio adicional
Nombre Tipo de dato Longitud Obligatorio Predeterminado Regla de
validación
Clave
primaria
Clave
única
codigo_Prod bigint Sí Sí
nombre_Prod varchar 100 Sí Sí
stockMin_Prod int Sí 0Mayor o igual
que 0
stockMax_Prod int Sí
Mayor que el
stock
mínimo
existencias_Prod int Sí 0Mayor o igual
que 0
precioVen_Prod smallmoney Sí Mayor que 0
vigencia_Prod bit Sí 1
Tabla: Producto
Ejercicio adicional
Nombre Tipo de dato Longitud Obligatorio Predeterminado Regla de validación ClavePrimaria
Claveúnica
codigo_Prod bigint Sí Sí
codigo_Pro int Sí Sí
precio_PrP smallmoney Sí Mayor que 0
Tabla: ProductoProveedor
-
8/18/2019 Lenguaje SQL 2012
9/9
17/02/
Ejercicio adicional
codigo_Prod codigo_Pro precio_PrP
codigo_Prod … vigencia_Prod
codigo_Pro … estado_Pro
Tabla: Proveedor
Tabla: ProductoProveedor
Tabla: Producto