Lenguaje SQL 2012

download Lenguaje SQL 2012

of 9

Transcript of Lenguaje SQL 2012

  • 8/18/2019 Lenguaje SQL 2012

    1/9

    17/02/

    Lenguaje SQL

    Ing. Martín Leiva Castillo

    [email protected]

    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