SlideShare uma empresa Scribd logo
1 de 43
SQL DDL




                                                                                             http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                          Data Definition Language



                                     http://en.wikipedia.org/wiki/Data_Definition_Language




                                         JOSÉ CUARTAS      BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Definamos los términos:

                                     •   Esquemas= describe una relación=descripción de la estructura




                                                                                                                    http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                         de datos
                                     •   Fila = Registro = Tupla
                                          http://es.wikipedia.org/wiki/Tupla o http://en.wikipedia.org/wiki/Tuple
                                     •   Tabla = Relación=Instancia=estructura de datos con datos
                                         incluidos en un tiempo determinado.
                                          http://en.wikipedia.org/wiki/Relation_(database)
                                     •   Atributos =Nombre de columnas=cabeceras
                                          http://en.wikipedia.org/wiki/Column_(database)
                                     •   Dominio = Conjunto de valores permitidos. Matemáticamente,
                                         definir un dominio a un atributo es; cualquier valor del atributo
                                         debe ser un elemento del conjunto especificado.
                                            Tipo de datos(cadenas,enteros,fechas,binarios entre otros)
                                             Rango de datos, Formato de datos
                                          http://en.wikipedia.org/wiki/Data_domain



                                         JOSÉ CUARTAS              BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Que es SQL y para que sirven:

                                     • “S.Q.L.” o “sequel”




                                                                                                            http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     •   Soportado por la mayoría de base de datos comerciales

                                     •   estandarizado – nuevas carateristicas son adicionadas con el
                                         Tiempo

                                     •    Interactivo via GUI o prompt(linea de comandos), o embedidos en
                                         los programas.

                                     •   Declarativo, basado en el algebra relacional.




                                            JOSÉ CUARTAS          BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
SQL:DDL (Lenguaje de definición de datos)

                                     • DDL: Lenguaje de Definición de Datos




                                                                                                      http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     • Permite crear objetos en la Base de Datos

                                     • son las sentencias que afectan a la estructura de los datos.

                                     Tipos de Objetos:
                                        - Tablas
                                        - Índices
                                        - Vistas
                                        - Otros




                                           JOSÉ CUARTAS          BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
SENTECIAS DLL
                                     Se pueden crear tablas con la instrucción




                                                                                         http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                      CREATE TABLE nombre_tabla
                                      ( atributos: cada uno con su tipo de datos y
                                        restricciones
                                       );
                                     Se pueden crear índices:
                                     CREATE INDEX nombreindice ON tabla(columna(s));

                                     Las vistas no son más que “consultas con nombres”
                                     Ejemplo:
                                     CREATE VIEW nombre_vista AS consulta;




                                         JOSÉ CUARTAS         BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Lenguaje de definición de datos (LDD)
                                     Comando CREATE DATABASES– define una nueva base de datos.




                                                                                                                                                      http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Sintaxis Posgresql
                                     CREATE DATABASE name
                                              [ [ WITH ] [ OWNER [=] dbowner ]
                                              [ TEMPLATE [=] template ]
                                              [ ENCODING [=] encoding ]
                                              [ LC_COLLATE [=] lc_collate ]
                                              [ LC_CTYPE [=] lc_ctype ]
                                              [ TABLESPACE [=] tablespace ] Lugar donde se almacena los archivos en disco
                                              [ CONNECTION LIMIT [=] connlimit ] ]

                                     WITH OWNER –Define propietario de la base de datos.

                                     TEMPLATE -- Define y copia los objetos estructuras de una base de datos de referencia .

                                     ENCODING – Es la codificación de cómo se almacenan los caracteres en la base de datos
                                         •No se puede cambiar el encode a una Base de Datos existente(Respaldar y volverla a crear)
                                         •Codificar la Base de Datos en UTF-8 por que este tipo de codificación permite cualquier tipo de carácter.
                                         •http://es.wikipedia.org/wiki/Codificaci%C3%B3n_de_caracteres.

                                     LC_COLLAT– (Intercalación ) se refiere a las reglas utilizadas para ordenar y comparar caracteres.
                                     Evidentemente, se trata de un concepto que afecta sólo a los campos de texto.

                                     LC_CTYPE - Especifica una colección de nombres de tabla de las cuales esta tabla hereda todos los campos.

                                     CONNECTION LIMIT– Permite hasta un numero determinado de conexciones.

             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Lenguaje de definición de datos (LDD)
                                     Comando CREATE TABLE – define una nueva tabla.




                                                                                                                                                     http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Sintaxis Posgresql
                                     CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name ( [
                                           { column_name data_type [ DEFAULT default_expr ] [ column_constraint [ ... ] ]
                                              | table_constraint |
                                              LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] }
                                              [, ... ]
                                     ])
                                     [ INHERITS ( parent_table [, ... ] ) ]
                                     [ WITH OIDS | WITHOUT OIDS ] números seriales sirven como identificador de
                                     [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ] (usada en tablas temporales)
                                     tabla vaciarse de registros cada vez que se ejecuta un COMMIT
                                     [ TABLESPACE tablespace ]
                                     TEMP--Cuando se utiliza esta clausula se crean tablas temporales. Estas tablas se usan para almacenar datos
                                     que seran usados posteriormente, guardar resultados parciales, analizar grandes cantidades de filas.

                                     DEFAULT-- Un valor por defecto para el campo.

                                     table_constraint o column_constraint -- Las cláusulas opcional de restricciones (CONSTRAINT) especifica una
                                     lista de restricciones de integridad que las nuevas inserciones o las actualizaciones deberán satisfacer para
                                     que una sentencia insert o update se puedan realizar.

                                     INHERITS -- Especifica una colección de nombres de tabla de las cuales esta tabla hereda todos los campos.

                                     TABLESPACE– Define el lugar , en el sistema de archivos, donde los archivos de la tabla se almacenan en
                                     disco.
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Sea el modelo:


                          el jefe de




                                                                                           http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                                                   adscrito a




                                                 el subordinado
                                                 de



                                                                  el lugar de trabajo de


             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
CREATE TABLE departamento
                                     ( codigo  INTEGER PRIMARY KEY,
                                       nombre  VARCHAR(6) NOT NULL UNIQUE,
                                       ciudad  VARCHAR(12) CHECK (ciudad IN
                                               ('Medellín', 'Bogotá', 'Cali')) NOT NULL




                                                                                                                    http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     );
                                                    El atributo ciudad sólo admitirá 1 de estas 3
                                                    ciudades. Es necesario además colocarle la
                                                    restricción de no nulidad.

                                     CREATE TABLE empleado
                                     ( documento INTEGER   PRIMARY KEY,
                                       nombre    VARCHAR(30)    NOT NULL,
                                       jefe      INTEGER   REFERENCES empleado,
                                       salario   INTEGER   NOT NULL,                   Clave foránea
                                       comisión  INTEGER ,                             sobre la
                                       cargo     VARCHAR(20)    NOT NULL,              misma tabla
                                       depto     INTEGER   NOT NULL REFERENCES departamento
                                     );
                                                                                                    Clave foránea

                                            JOSÉ CUARTAS              BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                       Modificaciones– ALTER TABLE




                                                                                                          http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     • Se puede modificar la estructura de una tabla con la instrucción
                                       ALTER TABLE
                                        ALTER TABLE nombre_tabla ADD nuevocampo TIPO_DE_DATO;

                                     • Para eliminar una columna de la tabla
                                       ALTER TABLE nombre_tabla DROP COLUMN campo;

                                     • Para eliminar una tabla (estructura y datos)
                                        – DROP TABLE nombre_tabla;




                                         JOSÉ CUARTAS           BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                       Modificaciones– ALTER TABLE




                                                                                                  http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                        Ejemplo
                                        CREATE TABLE productos (
                                           id_producto integer,
                                           nombre text,
                                           precio integer
                                        );
                                        ALTER TABLE productos ADD COLUMN descripcion text CHECK
                                           (description <> '');
                                     • Para eliminar una columna
                                        ALTER TABLE productos DROP COLUMN descripcion;
                                     • Para eliminar una tabla (estructura y datos)
                                        DROP TABLE productos;
                                         JOSÉ CUARTAS      BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Restricciones de Integridad
                                     Las Restricciones automáticamente fuerzan las integridad de datos.




                                                                                                                       http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                            • las restricciones definen reglas que determinan los valores permitidos
                                              en una columna.
                                            • Aseguran que los cambios realizados a una BD no generen
                                              inconsistencia en la información.
                                            • Esto permite restringir los valores que se pueden insertar en una
                                              columna, de modo que no se acepten los valores no válidos.
                                     Existen dos tipos de restricciones generales:
                                          Restricciones de Columna: sólo restringe los valores de la columna.
                                          Restricción de tablas: restricciones que afectan a mas de una columna de
                                           la tabla; asegurando que la combinación de los valores para las columnas
                                           implicadas cumplan los requerimientos de la restricción.



                                             JOSÉ CUARTAS             BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Restricciones de Integridad
                                     •   Restricciones aplicadas a las generales




                                                                                                                                   http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                          – Restricciones de dominio: Especifica que el valor de cada atributo A debe
                                            ser un valor atómico del dominio dom (A) para ese atributo.
                                          – Restricciones de clave: Es un subconjunto de atributos de una relación
                                            que permiten identificar de manera única la tupla. Todas las tuplas o filas
                                            deben ser diferentes.
                                                   – Toda relación tiene por lo menos una superclave o clave primaria.
                                                   – El valor de uno o varios de los atributos clave identifican de manera única
                                                     una tupla de la relación.
                                          – Restricciones de integridad: La clave primaria(PK) no debe tener valores
                                            nulos.
                                                   – La PK no puede ser NULL porque es un valor desconocido.
                                                   – La PK no se debe modificar y no cambian
                                                   – La PK debe ser única y no cambia en el tiempo


                                              JOSÉ CUARTAS               BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Restricciones de Integridad
                                     •   Restricciones aplicadas a las generales




                                                                                                                                   http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                          – Restricciones de Integridad referencial: Se especifica entre dos
                                            relaciones y sirve para mantener la consistencia entre tuplas de dos
                                            relaciones.
                                              • Una tupla en una relación que haga una referencia a otra relación
                                                deberá referirse a una tupla existente en otra relación.
                                              • Vínculos entre las entidades.
                                              • La clave externa puede hacer referencia a su propia relación.
                                              • Clave externa o foránea(FK)
                                                   – Los atributos de FK tiene el mismo dominio de la clave primaria de otro
                                                     esquema de relación R2
                                                   – El valor de la FK en una tupla t1 de R1 ocurre como valor de clave primaria
                                                     en alguna tupla t2 de R2 o bien es nulo.
                                          – Restricciones de Integridad semántica: Se especifica de cómo una
                                            columna maneja datos específicos ingresados y el valor que se guarda en
                                            esa columna.
                                              JOSÉ CUARTAS               BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Restricciones de dominio
                                      Restricciones de dominio: Conjunto de valores y de operaciones permitidas sobre




                                                                                                                          http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     los datos.


                                     Dominios base en SQL:
                                            • CHAR(p): Cadena de caracteres de longitud fija p (máxima longitud p)
                                            • VARCHAR(p): Cadena de caracteres de longitud variable. Máxima longitud p.
                                            • NUMERICOS: Valor numérico de los siguientes tipos: enteros, precisión o
                                               punto flotante.
                                            • DATE: Fechas válidas.
                                            • BINARY: Binarios utilizados para almacenar cadenas de bytes(BLOB).




                                             JOSÉ CUARTAS             BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
TIPOS DE DATOS (NUMERICOS)
                                     •Se debe buscar el tipo de dato numérico que mejor balance ofrezca entre




                                                                                                                               http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     rango, tamaño de almacenamiento, y desempeño.

                                     •Tres tipo de datos numéricos
                                         •Enteros
                                         •Precisión
                                             •La precisión es el número de dígitos de un número. La escala es el número de
                                             dígitos situados a la derecha de la coma decimal de un número. Por ejemplo, el
                                             número 123,45 tiene una precisión de 5 y una escala de 2.
                                             •Utilizado para realizar cálculos exactos. Tiene una precisión máxima de 1000
                                             dígitos.
                                         •Punto flotante
                                             •se utilizan cuando se calculan funciones que requieren precisión fraccionaria.
                                         •Seriales
                                             •No es un verdadero tipo de datos, es una convención que permite configurar
                                             un identificador único de columna que usa un generador de secuencia para
                                             generarlo.




                                           JOSÉ CUARTAS               BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
TIPOS DE DATOS (NUMERICOS)




                                                                                                                               http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Name       Storage Size               Description                             Range
             smallint                          2 bytes         small-range integer               -32768 to +32767
             integer                           4 bytes         usual choice for integer          -2147483648 to +2147483647
                                                                                                 -9223372036854775808 to
             bigint           8 bytes                          large-range integer               9223372036854775807
             decimal          variable                         user-specified precision, exact   no limit
             numeric          variable                         user-specified precision, exact   no limit
             real             4 bytes                          variable-precision, inexact       6 decimal digits precision
             double precision 8 bytes                          variable-precision, inexact       15 decimal digits precision
             serial           4 bytes                          autoincrementing integer          1 to 2147483647
             bigserial        8 bytes                          large autoincrementing integer    1 to 9223372036854775807




                                            JOSÉ CUARTAS                      BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
TIPOS DE DATOS (CARACTER)




                                                                                          http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Name                    Description
                                     character varying(n),
                                     varchar(n)              variable-length with limit
                                     character(n), char(n)   fixed-length, blank padded
                                     text                    variable unlimited length




                                        JOSÉ CUARTAS          BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
TIPOS DE DATOS (Date/Time)

                                     •Fechas se almacenan internamente como datos numéricos, por lo que es




                                                                                                                   http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     posible realizar operaciones aritméticas con ellas.

                                     • Timestamps (fractional seconds precision) son típicamente usados para
                                     seguimiento de eventos, controlar concurrencia entre otros, se genera
                                     automáticamente cada vez que insertamos o modificamos una fila.

                                     •Time zone el valor de la hora será ajustado a la zona horaria de la sesión
                                     actual.

                                     •Intervals son intervalos de tiempo.

                                     •functions-datetime Funciones definidas que permiten obtener información
                                     de estos tipos de datos.




                                           JOSÉ CUARTAS             BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
TIPOS DE DATOS (Date/Time)
                                                        Storage
                                           Name                        Description        Low Value      High Value    Resolution
                                                          Size




                                                                                                                                    http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     timestamp [ (p) ]                                                                1
                                     [ without time                                                                   microsecond
                                     zone ]            8 bytes    both date and time   4713 BC         5874897 AD     / 14 digits
                                                                                                                      1
                                     timestamp [ (p) ]            both date and time,                                 microsecond
                                     with time zone 8 bytes       with time zone      4713 BC          5874897 AD     / 14 digits
                                                                                                                      1
                                                                                                        178000000     microsecond
                                     interval [ (p) ]   12 bytes time intervals        -178000000 years years         / 14 digits

                                     date               4 bytes   dates only           4713 BC         5874897 AD   1 day
                                     time [ (p) ] [                                                                 1
                                     without time                                                                   microsecond
                                     zone ]             8 bytes   times of day only             00:00:00   24:00:00 / 14 digits
                                                                                                                    1
                                     time [ (p) ] with          times of day only,                                  microsecond
                                     time zone         12 bytes with time zone         00:00:00+1359 24:00:00-1359 / 14 digits


                                                JOSÉ CUARTAS                   BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
TIPOS DE DATOS (BOLEANO)
                                     •El tipo de datos Boleano permite manejar dos estados como
                                     verdadero/falso, sí/no o activado/desactivado.




                                                                                                   http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     •Lo valores permitidos para representar el estado verdadero
                                          •TRUE
                                          •'t‘
                                          •‘true‘
                                          •'y‘
                                          •'yes‘
                                          •'1‘

                                     •Valores permitidos para representar el estado falso
                                          •FALSE
                                          •‘f‘
                                          •'false‘
                                          •'n‘
                                          •'no‘
                                          •'0’

                                           JOSÉ CUARTAS             BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Restricciones de Integridad




                                                                                                    http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Los cinco tipos de restricciones aplicados en sentecias SQL:


                                                           Restricciones (CONSTRAINT )

                                                                    NOT NULL

                                                                     UNIQUE

                                                                  PRIMARY KEY

                                                                  FOREING KEY

                                                                     CHECK




                                            JOSÉ CUARTAS           BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Restricciones de Integridad




                                                                                                           http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     • Nulos: Un atributo puede o no admitir nulos. En SQL se especifica
                                       mediante la cláusula NOT NULL.

                                     • Integridad Referencial: Garantiza la existencia de las Claves
                                       Foráneas.
                                       Para ello se utilizan las cláusulas REFERENCES y FOREIGN KEY

                                     • Clave Primaria: Garantiza la unicidad y obligatoriedad del o los
                                       atributos definidos como clave primaria. Para ello se utiliza la
                                       cláusula PRIMARY KEY.




                                         JOSÉ CUARTAS          BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Restricciones de Integridad
•    Clave Alternativa: Garantiza la unicidad de los atributos declarados como
     tal. Se utiliza la cláusula UNIQUE.
     Si se desea hacer obligatoria debe especificarse adicionalmente NOT
     NULL.

•    Las reglas CHECK para atributos:
     Involucra condiciones de chequeo para uno o varios atributos.
    Sintaxis : CHECK ( condicion)
           • Mantención de la integridad
           • Medida básica (después de llaves foráneas)
           • Restringir valores lo más posible
• Clases de CHECK para restringir el dominio de datos
          • CHECK ( x = 1 )
          • CHECK ( pais IN ( „Colombia', „Mexico', „Brasil' ))
          • CHECK ( valor >= 100 AND valor < 200 )
         JOSÉ CUARTAS             BASES DE DATOS
Apliquemos SQL
                                         Restricción - UNIQUE




                                                                                                                  http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     La restricción UNIQUE asegura que una columna o un grupo de columnas no
                                     permitirán valores repetidos – en otras palabras, se impone la unicidad de los
                                     valores en la columna o el conjunto.
                                     Una restricción UNIQUE se puede utilizar en cualquier columna que no sea parte
                                     de una restricción PRIMARY KEY, que también impone valores únicos.
                                     Además, las restricciones UNIQUE se pueden usar en columnas que permitan
                                     valores nulos, mientras que las restricciones PRIMARY KEY no pueden. Los
                                     valores nulos son ignorados por la restricción UNIQUE.
                                     Una columna con una restricción UNIQUE puede referenciarse con una
                                     restricción FOREIGN KEY.




                                            JOSÉ CUARTAS            BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
    Restricción - UNIQUE

Para crear una restricción UNIQUE en una tabla, se usa el comando CREATE
TABLE o ALTER TABLE.
Nomenclatura para crear un UNIQUE en CREATE TABLE en una columna:
UNIQUE
      nombre_columna tipo_dato [Opcional: NOT NULL] UNIQUE
Ejemplo 1: Cree una tabla llamada ejemplo_UNICO definida por la siguiente
estructura: ejemplo_UNIQUE_columna (codigo: smallint, nombre: varchar (20)).
Colocando el Campo código con una Restricción UNIQUE y NOT NULL.
CREATE TABLE ejemplo_UNIQUE_columna (
        codigo smallint NOT NULL UNIQUE,
        nombre varchar(20)       Compruebe la restricción UNIQUE insertando dos filas
                                 utilizando el mismo código.
)
       JOSÉ CUARTAS           BASES DE DATOS
Apliquemos SQL
                                          Restricción - UNIQUE




                                                                                                                    http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Nomenclatura para creación UNIQUE en CREATE TABLE en múltiples columnas:
                                     UNIQUE
                                     En este caso la restricción no es por una columna en particular, sino que por un
                                     conjunto de columnas. Por lo tanto la restricción se coloca después de haber
                                     definido todos los campos de la tabla y antes de cerrar la instrucción CREATE
                                     TABLE. Se utiliza para crear esta restricción la instrucción CONSTRAINT.
                                     Nomenclatura:


                                     CONSTRAINT nombre_restriccion UNIQUE (campo1, …, campoN)
                                     NOTA: el nombre de la restricción UNIQUE se recomienda por norma que
                                     comience con UQ_nombre_restriccion.


                                            JOSÉ CUARTAS            BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                          Restricción - UNIQUE




                                                                                                                         http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Nomenclatura para creación UNIQUE en CREATE TABLE:
                                     UNIQUE agrupado
                                     Ejemplo 2: Crear la tabla ejemplo_UNICO_GR basada en la siguiente estructura:
                                     ejemplo_UNIQUE_GR (tipodocumento : smallint, digito: char(2),nombre: varchar(20)). El
                                     tipodocumento y digito deben ser no nulos y además en conjunto deben ser únicos.
                                     CREATE TABLE ejemplo_UNICO_GR(
                                             tipodocumento smallint NOT NULL,       Compruebe la restricción UNIQUE
                                                                                    agrupada, dos filas con los mismos
                                             digito char(2) NOT NULL,               valores en el campo tipodocumento
                                                                                    y digito.
                                             nombre varchar(20),
                                             CONSTRAINT UQ_documento_digito UNIQUE (tipodocumento,digito)
                                     )

                                            JOSÉ CUARTAS              BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                         Restricción - UNIQUE




                                                                                                            http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Nomenclatura para creación UNIQUE en ALTER TABLE:
                                     UNIQUE realizando una alteración de una tabla ya creada
                                     Nomenclatura
                                     ALTER TABLE nombre_tabla
                                     ADD CONSTRAINT UQ_nombre_restriccion UNIQUE (nombre_campo)


                                     Ejemplo 3: Adicione una restricción UQ_nombre_ALT         a   la   tabla
                                     ejemplo_UNIQUE_columna, para el atributo nombre.


                                     ALTER TABLE "ejemplo_UNIQUE_columna“
                                     ADD COSNTRAINT "UQ_nombre_restriccion" UNIQUE (nombre)
                                            JOSÉ CUARTAS            BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                         Restricción - UNIQUE




                                                                                                                   http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Borrar una restricción UNIQUE creada.
                                     Para borrar una restricción UNIQUE se debe utilizar la instrucción ALTER TABLE
                                     con su opción DROP.
                                     Nomenclatura
                                     ALTER TABLE nombre_tabla
                                     DROP CONSTRAINT UQ_nombre_restriccion


                                     Ejemplo 4: Borre la restricción         UQ_nombre_restriccion   de   la   tabla
                                     ejemplo_UNIQUE_columna.
                                     ALTER TABLE "ejemplo_UNIQUE_columna“
                                     DROP CONSTRAINT "UQ_nombre_restriccion"

                                            JOSÉ CUARTAS            BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                          Restricción – PRIMARY KEY




                                                                                                                      http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     La restricción PRIMARY KEY se usa para especificar la clave primaria de una
                                     tabla, la columna o conjunto de columnas que identifican unívocamente a una fila.
                                     Debido a que identifica a una fila la clave primaria nunca puede ser NULL, esto es
                                     la que lo diferencia de la restricción UNIQUE.
                                     Para la definición de la restricción PRIMARY KEY se pueden utilizar las
                                     instrucciones CREATE TABLE y ALTER TABLE.
                                     Nomenclatura para CREATE TABLE:
                                         nombre_campo tipo_dato PRIMARY KEY


                                     Ejemplo 1: Crea una Tabla denominada ejemplo_Clave_PK, basada en la
                                     siguiente estructura: ejemplo_Clave_PK (codigo: integer, nombre: varchar(20)).
                                     Colocando el campo código como clave primaria.

                                            JOSÉ CUARTAS             BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                          Restricción – PRIMARY KEY




                                                                                                                     http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Ejemplo 1:
                                     CREATE TABLE “ejemplo_Clave_PK” (               Compruebe si se cumple la
                                                   codigo integer PRIMARY KEY,       restricción de clave primaria
                                                                                     ingresando dos filas con el
                                                   nombre varchar(20)                mismo código.

                                     )
                                     Además usando CREATE TABLE se le puede asignar un nombre a la restricción
                                     PRIMARY KEY (IDEAL) , usando la siguiente nomenclatura:
                                     Para cuando se coloca al lado del campo:
                                     nombre_campo tipo_dato CONSTRAINT PK_nombre_clave PRIMARY KEY
                                     Para cuando se coloca antes de cerrar el CREATE TABLE
                                     CONSTRAINT PK_nombre_clave PRIMARY KEY (columna o columnas)
                                            JOSÉ CUARTAS            BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                         Restricción – PRIMARY KEY




                                                                                                             http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Nomenclatura para ALTER TABLE:
                                     ALTER TABLE nombre_tabla
                                     ADD CONSTRAINT PK_nombre_clave PRIMARY KEY (columna o columnas)
                                     Nomenclatura para BORRAR una clave primaria:
                                     ALTER TABLE nombre_tabla
                                     DROP CONSTRAINT PK_nombre_clave

                                           NOTA: EN LA BASE DE DATOS NO PUEDEN EXISTIR DOS
                                           RESTRICCIONES CON EL MISMO NOMBRE, AUNQUE SEAN DE
                                           TABLAS DISTINTAS.
                                           NOTA: Por nomenclatura al dar un nombre a una clave primaria es
                                           ideal comenzar con la letras PK


                                            JOSÉ CUARTAS          BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                          Restricción – PRIMARY KEY




                                                                                                                      http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Ejemplo 2:
                                                                                      Compruebe si se cumple la
                                                                                      restricción de clave primaria
                                     Eliminamos la PK del ejmplo anterior.            ingresando dos filas con el
                                                                                      mismo código.
                                     ALTER TABLE “ejemplo_Clave_PK”
                                     DROP CONSTRAINT nombre_de_la_restriccion


                                     ALTER TABLE “ejemplo_Clave_PK”
                                     ADD CONSTRAINT “PK_ejemplo_Clave” PRIMARY KEY (codigo, nombre )




                                            JOSÉ CUARTAS             BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                          Restricción – FOREIGN KEY




                                                                                                                     http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Una restricción FOREIGN KEY define una clave externa, que identifica una
                                     relación entre dos tablas.
                                     La columna o columnas clave externa de una tabla referencia a una clave
                                     candidata – una o varias columnas – de otra tabla.
                                     Cuando se inserta una fila en la tabla con la restricción FOREIGN KEY, los
                                     valores que se van a introducir en la columna o columnas que se han definido
                                     como clave externa se comprueban frente a los valores de la clave candidata de
                                     la tabla referenciada. Si ninguna fila de la tabla referenciada se ajusta a los
                                     valores de la clave externa, la nueva fila no se puede insertar.
                                     La restricción FOREIGN KEY también se comprueba cuando se realizan
                                     actualizaciones y borrados en la tabla referenciada o la tabla que posee la clave
                                     externa.
                                     Una clave externa sólo puede referenciar columnas que tengan las restricciones
                                     PRIMARY KEY o UNIQUE en la tabla referenciada.
                                            JOSÉ CUARTAS             BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                         Restricción – FOREIGN KEY




                                                                                                                  http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Además, el tipo de dato y el tamaño de la columna o columnas de la clave
                                     externa, también debe coincidir con el de la columna o columnas referenciadas.
                                     Esta restricción FOREIGN KEY se puede asignar utilizando la sentencia CREATE
                                     TABLE y ALTER TABLE.
                                     Nomenclatura en CREATE TABLE (Siempre se agrega antes de finalizar la
                                     creación de la tabla):
                                     CONSTRAINT FK_nombre_clave_ajena FOREIGN KEY (columna o columnas
                                     que guardaran los         valores  de la clave ajena) REFERENCES
                                     nombre_tabla_referencia (columna o columna que poseen datos a validar)




                                            JOSÉ CUARTAS            BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                          Restricción – FOREIGN KEY




                                                                                                                     http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Ejemplo 1: Crear las siguientes tablas basadas en las siguientes estructuras:
                                     universidad(codigo_uni: integer,nombre:varchar(20))
                                     estudiante (tipo_documento: char(2), numero_documento: integer, nombre:
                                     varchar(20), universidad: integer)
                                     Restricciones: Universidad clave primaria codigo_uni y Estudiante clave primaria
                                     tipo_documento y numero_documento. Además en estudiante universidad es una
                                     clave externa que se debe verificar en universidad.
                                     Paso 1: Crear la Tabla UNIVERSIDAD
                                     CREATE TABLE “UNIVERSIDAD” (
                                              codigo_uni integer,
                                              nombre varchar(20) NOT NULL,
                                              CONSTRAINT PK_universidad PRIMARY KEY (codigo_uni)
                                     )
                                            JOSÉ CUARTAS             BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                         Restricción – FOREIGN KEY




                                                                                                             http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Ejemplo 1:
                                     Paso 2: Crear la Tabla ESTUDIANTE
                                     CREATE TABLE “ESTUDIANTE” (
                                              tipo_documento char(2),
                                             numero_documento integer),
                                             nombre varchar(20) NOT NULL,
                                             universidad integer NOT NULL,
                                             CONSTRAINT PK_estudiante         PRIMARY   KEY   (tipo_documento,
                                             numero_documento),
                                             CONSTRAINT FK_estudiante_universidad FOREIGN KEY (universidad)
                                             REFERENCES “UNIVERSDIAD”(codigo_uni)
                                     )
                                            JOSÉ CUARTAS           BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                          Restricción – FOREIGN KEY




                                                                                                             http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Nomenclatura en ALTER TABLE (para cuando se desea crear una clave externa
                                     después de haber creado la tabla):
                                     ALTER TABLE nombre_tabla
                                     ADD CONSTRAINT FK_nombre_clave_ajena FOREIGN KEY (columna o
                                     columnas     para     recepción     de    clave     ajena) REFERENCES
                                     nombre_tabla_referencia (columna o columnas de referencia)


                                     Nomenclatura para borrar una clave foránea:
                                     ALTER TABLE nombre_tabla
                                     DROP CONSTRAINT FK_nombre_restriccion



                                            JOSÉ CUARTAS            BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                         Restricción – CHECK




                                                                                                                 http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     La restricción CHECK se usa para restringir los valores permitidos de una
                                     columna o unos valores específicos. Los valores de una columna que se van a
                                     introducir o actualizar se confirman.
                                     Se puede agregar esta restricción utilizando las instrucciones CREATE TABLE o
                                     ALTER TABLE.


                                     Nomenclatura CREATE TABLE:
                                     CONSTRAINT CK_nombre_restriccion CHECK (condiciones)


                                     Ejemplo 6: Crear una Tabla ejemplo_CH basandose en la siguiente estructura:
                                     ejemplo_CK (codigo: integer, nombre: varchar(20)). Donde codigo es la clave
                                     primaria y solo puede aceptar valores entre 1 y 100.

                                            JOSÉ CUARTAS           BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                            Restricción – CHECK




                                                                                                              http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Ejemplo 6:
                                     CREATE TABLE Ejemplo_CK (
                                         codigo integer,
                                         nombre varchar(20),
                                         CONSTRAINT PK_codigo PRIMARY KEY (codigo),
                                         CONSTRAINT CK_codigo_condicion CHECK (codigo > 0 and codigo < 101)
                                     )

                                                  Para probar la realidad de la restricción ingrese un
                                                  registro a la tabla Ejemplo_CK con un codigo con
                                                  valor mayor que 100.


                                               JOSÉ CUARTAS          BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                         Restricción – CHECK




                                                                                                            http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Nomenclatura para ALTER TABLE (en el caso de que se cree una restricción
                                     después de haber creado la tabla):
                                     ALTER TABLE nombre_tabla
                                     ADD CONSTRAINT CK_nombre_restriccion CHECK (condiciones)


                                     Nomenclatura para Borrar una restricción CHECK:
                                     ALTER TABLE nombre_tabla
                                     DROP CONSTRAINT CK_nombre_restriccion




                                            JOSÉ CUARTAS           BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
Apliquemos SQL
                                      Restricción – CHECK




                                                                                                              http://datosintensos.blogspot.com/
http://datosintensos.blogspot.com/




                                     Ejemplos con la cláusula CHECK:

                                     CREATE TABLE empleado
                                     ( documento INTEGER         PRIMARY KEY,
                                       nombre    VARCHAR(30)     NOT NULL,
                                       pais       VARCHAR(30)
                                       salario   INTEGER    NOT NULL CHECK (salario > 0 ) ,
                                       comision  INTEGER    CHECK (comision between 0 and 100),
                                       cargo     VARCHAR(20)     NOT NULL,
                                       depto     INTEGER    NOT NULL,
                                     CONSTRAINT CK_pais CHECK ( pais IN ( „Colombia', „Mexico', „Brasil' ))
                                     );


                                          JOSÉ CUARTAS        BASES DE DATOS
             Actualízate sobre gestión de información en http://datosintensos.blogspot.com/

Mais conteúdo relacionado

Mais procurados

Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Oswaldo Hernández
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relaciónjosecuartas
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosSergio Sanchez
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacionoswchavez
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchJair Ospino Ardila
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datosCaro_Noirgean
 
Base de datos con Netbeans
Base de datos con NetbeansBase de datos con Netbeans
Base de datos con NetbeansRandy
 
Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)michell_quitian
 
Los tipos de datos de sql server
Los tipos de datos de sql serverLos tipos de datos de sql server
Los tipos de datos de sql serverCEUNISAL
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosvargasaldanajohanna
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVERDarwin Durand
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualSergio Sanchez
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesbasilioj
 

Mais procurados (20)

Comandos ddl
Comandos ddlComandos ddl
Comandos ddl
 
Conexion a bases de datos
Conexion a bases de datosConexion a bases de datos
Conexion a bases de datos
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
 
Vistas en SQL
Vistas en SQLVistas en SQL
Vistas en SQL
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacion
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbench
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
 
Base de datos con Netbeans
Base de datos con NetbeansBase de datos con Netbeans
Base de datos con Netbeans
 
Taller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DMLTaller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DML
 
Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)
 
Los tipos de datos de sql server
Los tipos de datos de sql serverLos tipos de datos de sql server
Los tipos de datos de sql server
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datos
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVER
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 

Destaque

SQL-DDL
SQL-DDLSQL-DDL
SQL-DDLbdatos
 
Lenguaje de Manipulación de Datos
Lenguaje de Manipulación de DatosLenguaje de Manipulación de Datos
Lenguaje de Manipulación de DatosEduardo Rosas Garcia
 
Sistema GestióN De Bases De Datos
Sistema GestióN De Bases De DatosSistema GestióN De Bases De Datos
Sistema GestióN De Bases De DatosJeisson Nc
 
SQL: DDL, DML y SQL
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQLCarmen Soler
 
Lenguajes de bases de datos
Lenguajes  de bases de datos Lenguajes  de bases de datos
Lenguajes de bases de datos Anita Ortiz
 
Lenguajes de bases de datos
Lenguajes de bases de datosLenguajes de bases de datos
Lenguajes de bases de datosralbarracin
 
Funciones de sql server
Funciones de sql serverFunciones de sql server
Funciones de sql serverEmily_Fdez
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datosAlvaro Cardona
 
2 manipulacion de datos..
2 manipulacion de datos..2 manipulacion de datos..
2 manipulacion de datos..alithu1
 
Lenguaje de manipulación de datos (DML)
Lenguaje de manipulación de datos (DML)Lenguaje de manipulación de datos (DML)
Lenguaje de manipulación de datos (DML)Minerva136
 
Ddl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datosDdl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datosvargasaldanajohanna
 
Database Systems - SQL - DDL Statements (Chapter 3/2)
Database Systems - SQL - DDL Statements (Chapter 3/2)Database Systems - SQL - DDL Statements (Chapter 3/2)
Database Systems - SQL - DDL Statements (Chapter 3/2)Vidyasagar Mundroy
 
Sentencias dml y ddl
Sentencias dml y ddlSentencias dml y ddl
Sentencias dml y ddlkleberyauti
 

Destaque (20)

Ejemplo ddl dml
Ejemplo ddl dmlEjemplo ddl dml
Ejemplo ddl dml
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
Lenguaje de Manipulación de Datos
Lenguaje de Manipulación de DatosLenguaje de Manipulación de Datos
Lenguaje de Manipulación de Datos
 
Sistema GestióN De Bases De Datos
Sistema GestióN De Bases De DatosSistema GestióN De Bases De Datos
Sistema GestióN De Bases De Datos
 
SQL: DDL, DML y SQL
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
 
Lenguajes de bases de datos
Lenguajes  de bases de datos Lenguajes  de bases de datos
Lenguajes de bases de datos
 
Lenguajes de bases de datos
Lenguajes de bases de datosLenguajes de bases de datos
Lenguajes de bases de datos
 
Funciones de sql server
Funciones de sql serverFunciones de sql server
Funciones de sql server
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datos
 
Consultas base de datos en SQL
Consultas base de datos en SQLConsultas base de datos en SQL
Consultas base de datos en SQL
 
2 manipulacion de datos..
2 manipulacion de datos..2 manipulacion de datos..
2 manipulacion de datos..
 
Lenguaje de manipulación de datos (DML)
Lenguaje de manipulación de datos (DML)Lenguaje de manipulación de datos (DML)
Lenguaje de manipulación de datos (DML)
 
Comandos básicos mysql
Comandos básicos mysqlComandos básicos mysql
Comandos básicos mysql
 
Lenguaje de Manipulación de Datos
Lenguaje de Manipulación de DatosLenguaje de Manipulación de Datos
Lenguaje de Manipulación de Datos
 
Ddl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datosDdl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datos
 
Comandos
ComandosComandos
Comandos
 
Bases de datos ss14
Bases de datos ss14Bases de datos ss14
Bases de datos ss14
 
Database Systems - SQL - DDL Statements (Chapter 3/2)
Database Systems - SQL - DDL Statements (Chapter 3/2)Database Systems - SQL - DDL Statements (Chapter 3/2)
Database Systems - SQL - DDL Statements (Chapter 3/2)
 
Sentencias dml y ddl
Sentencias dml y ddlSentencias dml y ddl
Sentencias dml y ddl
 
Guia eejerciciospracticos
Guia eejerciciospracticosGuia eejerciciospracticos
Guia eejerciciospracticos
 

Semelhante a Sql DDL Lenguaje de definición de datos

ANALISIS DE SISTEMAS ROCKI.pdf
ANALISIS DE SISTEMAS ROCKI.pdfANALISIS DE SISTEMAS ROCKI.pdf
ANALISIS DE SISTEMAS ROCKI.pdfyannaRodrguez
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...José Antonio Sandoval Acosta
 
Lenguaje de defincion de datos
Lenguaje   de  defincion de datosLenguaje   de  defincion de datos
Lenguaje de defincion de datosIrisMTF16
 
Unidad I- Introducción.pptx
Unidad I- Introducción.pptxUnidad I- Introducción.pptx
Unidad I- Introducción.pptxdffdfsd
 
SQL-SERVER-CLASE-01.pptx
SQL-SERVER-CLASE-01.pptxSQL-SERVER-CLASE-01.pptx
SQL-SERVER-CLASE-01.pptxStevenCB3
 
Microsoft sql server
Microsoft sql serverMicrosoft sql server
Microsoft sql serverDeisyVilchez
 
Bases de Datos SQL y NoSQL
Bases de Datos SQL y NoSQLBases de Datos SQL y NoSQL
Bases de Datos SQL y NoSQLCONALEP
 
Bases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadminBases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadminJuan Manuel Zalazar
 
Base de datos en microsoft sql server
Base de datos en microsoft sql serverBase de datos en microsoft sql server
Base de datos en microsoft sql serverJorge Paredes Toledo
 
Funciones de un DBA y tipos de Base de Datos
Funciones de un DBA y tipos de Base de DatosFunciones de un DBA y tipos de Base de Datos
Funciones de un DBA y tipos de Base de Datoskevin vilca cabanillas
 

Semelhante a Sql DDL Lenguaje de definición de datos (20)

Base de datos
Base de datos Base de datos
Base de datos
 
ANALISIS DE SISTEMAS ROCKI.pdf
ANALISIS DE SISTEMAS ROCKI.pdfANALISIS DE SISTEMAS ROCKI.pdf
ANALISIS DE SISTEMAS ROCKI.pdf
 
Tsql
TsqlTsql
Tsql
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
 
Base de datos
Base de datosBase de datos
Base de datos
 
Lenguaje de defincion de datos
Lenguaje   de  defincion de datosLenguaje   de  defincion de datos
Lenguaje de defincion de datos
 
Unidad I- Introducción.pptx
Unidad I- Introducción.pptxUnidad I- Introducción.pptx
Unidad I- Introducción.pptx
 
SQL-SERVER-CLASE-01.pptx
SQL-SERVER-CLASE-01.pptxSQL-SERVER-CLASE-01.pptx
SQL-SERVER-CLASE-01.pptx
 
Microsoft sql server
Microsoft sql serverMicrosoft sql server
Microsoft sql server
 
Bases de Datos SQL y NoSQL
Bases de Datos SQL y NoSQLBases de Datos SQL y NoSQL
Bases de Datos SQL y NoSQL
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
002 introduccion
002 introduccion002 introduccion
002 introduccion
 
Bases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadminBases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadmin
 
Administracion de base de datos
Administracion de base de datosAdministracion de base de datos
Administracion de base de datos
 
MODELAMIENTO DE BASE DE DATOS
MODELAMIENTO DE BASE DE DATOSMODELAMIENTO DE BASE DE DATOS
MODELAMIENTO DE BASE DE DATOS
 
Rila
RilaRila
Rila
 
Base de datos en microsoft sql server
Base de datos en microsoft sql serverBase de datos en microsoft sql server
Base de datos en microsoft sql server
 
U7.pdf
U7.pdfU7.pdf
U7.pdf
 
Access 2013
Access 2013Access 2013
Access 2013
 
Funciones de un DBA y tipos de Base de Datos
Funciones de un DBA y tipos de Base de DatosFunciones de un DBA y tipos de Base de Datos
Funciones de un DBA y tipos de Base de Datos
 

Mais de josecuartas

Seguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosSeguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosjosecuartas
 
Anti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptualAnti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptualjosecuartas
 
Tableros de control o Dashboard
Tableros de control o DashboardTableros de control o Dashboard
Tableros de control o Dashboardjosecuartas
 
Visualizacion de datos
Visualizacion de datosVisualizacion de datos
Visualizacion de datosjosecuartas
 
Calidad de datos
Calidad de datosCalidad de datos
Calidad de datosjosecuartas
 
De los datos a la información
De los datos a la informaciónDe los datos a la información
De los datos a la informaciónjosecuartas
 
Datos semiestructurados Xml
Datos semiestructurados XmlDatos semiestructurados Xml
Datos semiestructurados Xmljosecuartas
 
Bases de datos temporales
Bases de datos temporalesBases de datos temporales
Bases de datos temporalesjosecuartas
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicojosecuartas
 
índices en bases de datos
índices en bases de datosíndices en bases de datos
índices en bases de datosjosecuartas
 
Seguridad en bases de datos
Seguridad en bases de datosSeguridad en bases de datos
Seguridad en bases de datosjosecuartas
 
Los datos en el disco duro
Los datos en el disco duroLos datos en el disco duro
Los datos en el disco durojosecuartas
 
Digramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datosDigramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datosjosecuartas
 
Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQLjosecuartas
 
Disco duro bases datos
Disco duro bases datosDisco duro bases datos
Disco duro bases datosjosecuartas
 
Fuga de información
Fuga de informaciónFuga de información
Fuga de informaciónjosecuartas
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)josecuartas
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011josecuartas
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacionaljosecuartas
 

Mais de josecuartas (20)

Seguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosSeguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datos
 
Anti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptualAnti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptual
 
Tableros de control o Dashboard
Tableros de control o DashboardTableros de control o Dashboard
Tableros de control o Dashboard
 
Visualizacion de datos
Visualizacion de datosVisualizacion de datos
Visualizacion de datos
 
Calidad de datos
Calidad de datosCalidad de datos
Calidad de datos
 
De los datos a la información
De los datos a la informaciónDe los datos a la información
De los datos a la información
 
Datos semiestructurados Xml
Datos semiestructurados XmlDatos semiestructurados Xml
Datos semiestructurados Xml
 
Bases de datos temporales
Bases de datos temporalesBases de datos temporales
Bases de datos temporales
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
índices en bases de datos
índices en bases de datosíndices en bases de datos
índices en bases de datos
 
Seguridad en bases de datos
Seguridad en bases de datosSeguridad en bases de datos
Seguridad en bases de datos
 
Los datos en el disco duro
Los datos en el disco duroLos datos en el disco duro
Los datos en el disco duro
 
Digramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datosDigramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datos
 
Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQL
 
Disco duro bases datos
Disco duro bases datosDisco duro bases datos
Disco duro bases datos
 
Fuga de información
Fuga de informaciónFuga de información
Fuga de información
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
 
SQL avanzado
SQL avanzadoSQL avanzado
SQL avanzado
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 

Último

Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 

Último (20)

Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 

Sql DDL Lenguaje de definición de datos

  • 1. SQL DDL http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Data Definition Language http://en.wikipedia.org/wiki/Data_Definition_Language JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 2. Definamos los términos: • Esquemas= describe una relación=descripción de la estructura http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ de datos • Fila = Registro = Tupla http://es.wikipedia.org/wiki/Tupla o http://en.wikipedia.org/wiki/Tuple • Tabla = Relación=Instancia=estructura de datos con datos incluidos en un tiempo determinado. http://en.wikipedia.org/wiki/Relation_(database) • Atributos =Nombre de columnas=cabeceras http://en.wikipedia.org/wiki/Column_(database) • Dominio = Conjunto de valores permitidos. Matemáticamente, definir un dominio a un atributo es; cualquier valor del atributo debe ser un elemento del conjunto especificado. Tipo de datos(cadenas,enteros,fechas,binarios entre otros) Rango de datos, Formato de datos http://en.wikipedia.org/wiki/Data_domain JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 3. Que es SQL y para que sirven: • “S.Q.L.” o “sequel” http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ • Soportado por la mayoría de base de datos comerciales • estandarizado – nuevas carateristicas son adicionadas con el Tiempo • Interactivo via GUI o prompt(linea de comandos), o embedidos en los programas. • Declarativo, basado en el algebra relacional. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 4. SQL:DDL (Lenguaje de definición de datos) • DDL: Lenguaje de Definición de Datos http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ • Permite crear objetos en la Base de Datos • son las sentencias que afectan a la estructura de los datos. Tipos de Objetos: - Tablas - Índices - Vistas - Otros JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 5. SENTECIAS DLL Se pueden crear tablas con la instrucción http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ CREATE TABLE nombre_tabla ( atributos: cada uno con su tipo de datos y restricciones ); Se pueden crear índices: CREATE INDEX nombreindice ON tabla(columna(s)); Las vistas no son más que “consultas con nombres” Ejemplo: CREATE VIEW nombre_vista AS consulta; JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 6. Lenguaje de definición de datos (LDD) Comando CREATE DATABASES– define una nueva base de datos. http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Sintaxis Posgresql CREATE DATABASE name [ [ WITH ] [ OWNER [=] dbowner ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace ] Lugar donde se almacena los archivos en disco [ CONNECTION LIMIT [=] connlimit ] ] WITH OWNER –Define propietario de la base de datos. TEMPLATE -- Define y copia los objetos estructuras de una base de datos de referencia . ENCODING – Es la codificación de cómo se almacenan los caracteres en la base de datos •No se puede cambiar el encode a una Base de Datos existente(Respaldar y volverla a crear) •Codificar la Base de Datos en UTF-8 por que este tipo de codificación permite cualquier tipo de carácter. •http://es.wikipedia.org/wiki/Codificaci%C3%B3n_de_caracteres. LC_COLLAT– (Intercalación ) se refiere a las reglas utilizadas para ordenar y comparar caracteres. Evidentemente, se trata de un concepto que afecta sólo a los campos de texto. LC_CTYPE - Especifica una colección de nombres de tabla de las cuales esta tabla hereda todos los campos. CONNECTION LIMIT– Permite hasta un numero determinado de conexciones. Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 7. Lenguaje de definición de datos (LDD) Comando CREATE TABLE – define una nueva tabla. http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Sintaxis Posgresql CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name ( [ { column_name data_type [ DEFAULT default_expr ] [ column_constraint [ ... ] ] | table_constraint | LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] } [, ... ] ]) [ INHERITS ( parent_table [, ... ] ) ] [ WITH OIDS | WITHOUT OIDS ] números seriales sirven como identificador de [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ] (usada en tablas temporales) tabla vaciarse de registros cada vez que se ejecuta un COMMIT [ TABLESPACE tablespace ] TEMP--Cuando se utiliza esta clausula se crean tablas temporales. Estas tablas se usan para almacenar datos que seran usados posteriormente, guardar resultados parciales, analizar grandes cantidades de filas. DEFAULT-- Un valor por defecto para el campo. table_constraint o column_constraint -- Las cláusulas opcional de restricciones (CONSTRAINT) especifica una lista de restricciones de integridad que las nuevas inserciones o las actualizaciones deberán satisfacer para que una sentencia insert o update se puedan realizar. INHERITS -- Especifica una colección de nombres de tabla de las cuales esta tabla hereda todos los campos. TABLESPACE– Define el lugar , en el sistema de archivos, donde los archivos de la tabla se almacenan en disco. Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 8. Sea el modelo: el jefe de http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ adscrito a el subordinado de el lugar de trabajo de Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 9. CREATE TABLE departamento ( codigo INTEGER PRIMARY KEY, nombre VARCHAR(6) NOT NULL UNIQUE, ciudad VARCHAR(12) CHECK (ciudad IN ('Medellín', 'Bogotá', 'Cali')) NOT NULL http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ ); El atributo ciudad sólo admitirá 1 de estas 3 ciudades. Es necesario además colocarle la restricción de no nulidad. CREATE TABLE empleado ( documento INTEGER PRIMARY KEY, nombre VARCHAR(30) NOT NULL, jefe INTEGER REFERENCES empleado, salario INTEGER NOT NULL, Clave foránea comisión INTEGER , sobre la cargo VARCHAR(20) NOT NULL, misma tabla depto INTEGER NOT NULL REFERENCES departamento ); Clave foránea JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 10. Apliquemos SQL Modificaciones– ALTER TABLE http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ • Se puede modificar la estructura de una tabla con la instrucción ALTER TABLE ALTER TABLE nombre_tabla ADD nuevocampo TIPO_DE_DATO; • Para eliminar una columna de la tabla ALTER TABLE nombre_tabla DROP COLUMN campo; • Para eliminar una tabla (estructura y datos) – DROP TABLE nombre_tabla; JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 11. Apliquemos SQL Modificaciones– ALTER TABLE http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Ejemplo CREATE TABLE productos ( id_producto integer, nombre text, precio integer ); ALTER TABLE productos ADD COLUMN descripcion text CHECK (description <> ''); • Para eliminar una columna ALTER TABLE productos DROP COLUMN descripcion; • Para eliminar una tabla (estructura y datos) DROP TABLE productos; JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 12. Restricciones de Integridad Las Restricciones automáticamente fuerzan las integridad de datos. http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ • las restricciones definen reglas que determinan los valores permitidos en una columna. • Aseguran que los cambios realizados a una BD no generen inconsistencia en la información. • Esto permite restringir los valores que se pueden insertar en una columna, de modo que no se acepten los valores no válidos. Existen dos tipos de restricciones generales:  Restricciones de Columna: sólo restringe los valores de la columna.  Restricción de tablas: restricciones que afectan a mas de una columna de la tabla; asegurando que la combinación de los valores para las columnas implicadas cumplan los requerimientos de la restricción. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 13. Restricciones de Integridad • Restricciones aplicadas a las generales http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ – Restricciones de dominio: Especifica que el valor de cada atributo A debe ser un valor atómico del dominio dom (A) para ese atributo. – Restricciones de clave: Es un subconjunto de atributos de una relación que permiten identificar de manera única la tupla. Todas las tuplas o filas deben ser diferentes. – Toda relación tiene por lo menos una superclave o clave primaria. – El valor de uno o varios de los atributos clave identifican de manera única una tupla de la relación. – Restricciones de integridad: La clave primaria(PK) no debe tener valores nulos. – La PK no puede ser NULL porque es un valor desconocido. – La PK no se debe modificar y no cambian – La PK debe ser única y no cambia en el tiempo JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 14. Restricciones de Integridad • Restricciones aplicadas a las generales http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ – Restricciones de Integridad referencial: Se especifica entre dos relaciones y sirve para mantener la consistencia entre tuplas de dos relaciones. • Una tupla en una relación que haga una referencia a otra relación deberá referirse a una tupla existente en otra relación. • Vínculos entre las entidades. • La clave externa puede hacer referencia a su propia relación. • Clave externa o foránea(FK) – Los atributos de FK tiene el mismo dominio de la clave primaria de otro esquema de relación R2 – El valor de la FK en una tupla t1 de R1 ocurre como valor de clave primaria en alguna tupla t2 de R2 o bien es nulo. – Restricciones de Integridad semántica: Se especifica de cómo una columna maneja datos específicos ingresados y el valor que se guarda en esa columna. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 15. Restricciones de dominio Restricciones de dominio: Conjunto de valores y de operaciones permitidas sobre http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ los datos. Dominios base en SQL: • CHAR(p): Cadena de caracteres de longitud fija p (máxima longitud p) • VARCHAR(p): Cadena de caracteres de longitud variable. Máxima longitud p. • NUMERICOS: Valor numérico de los siguientes tipos: enteros, precisión o punto flotante. • DATE: Fechas válidas. • BINARY: Binarios utilizados para almacenar cadenas de bytes(BLOB). JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 16. TIPOS DE DATOS (NUMERICOS) •Se debe buscar el tipo de dato numérico que mejor balance ofrezca entre http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ rango, tamaño de almacenamiento, y desempeño. •Tres tipo de datos numéricos •Enteros •Precisión •La precisión es el número de dígitos de un número. La escala es el número de dígitos situados a la derecha de la coma decimal de un número. Por ejemplo, el número 123,45 tiene una precisión de 5 y una escala de 2. •Utilizado para realizar cálculos exactos. Tiene una precisión máxima de 1000 dígitos. •Punto flotante •se utilizan cuando se calculan funciones que requieren precisión fraccionaria. •Seriales •No es un verdadero tipo de datos, es una convención que permite configurar un identificador único de columna que usa un generador de secuencia para generarlo. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 17. TIPOS DE DATOS (NUMERICOS) http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Name Storage Size Description Range smallint 2 bytes small-range integer -32768 to +32767 integer 4 bytes usual choice for integer -2147483648 to +2147483647 -9223372036854775808 to bigint 8 bytes large-range integer 9223372036854775807 decimal variable user-specified precision, exact no limit numeric variable user-specified precision, exact no limit real 4 bytes variable-precision, inexact 6 decimal digits precision double precision 8 bytes variable-precision, inexact 15 decimal digits precision serial 4 bytes autoincrementing integer 1 to 2147483647 bigserial 8 bytes large autoincrementing integer 1 to 9223372036854775807 JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 18. TIPOS DE DATOS (CARACTER) http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Name Description character varying(n), varchar(n) variable-length with limit character(n), char(n) fixed-length, blank padded text variable unlimited length JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 19. TIPOS DE DATOS (Date/Time) •Fechas se almacenan internamente como datos numéricos, por lo que es http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ posible realizar operaciones aritméticas con ellas. • Timestamps (fractional seconds precision) son típicamente usados para seguimiento de eventos, controlar concurrencia entre otros, se genera automáticamente cada vez que insertamos o modificamos una fila. •Time zone el valor de la hora será ajustado a la zona horaria de la sesión actual. •Intervals son intervalos de tiempo. •functions-datetime Funciones definidas que permiten obtener información de estos tipos de datos. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 20. TIPOS DE DATOS (Date/Time) Storage Name Description Low Value High Value Resolution Size http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ timestamp [ (p) ] 1 [ without time microsecond zone ] 8 bytes both date and time 4713 BC 5874897 AD / 14 digits 1 timestamp [ (p) ] both date and time, microsecond with time zone 8 bytes with time zone 4713 BC 5874897 AD / 14 digits 1 178000000 microsecond interval [ (p) ] 12 bytes time intervals -178000000 years years / 14 digits date 4 bytes dates only 4713 BC 5874897 AD 1 day time [ (p) ] [ 1 without time microsecond zone ] 8 bytes times of day only 00:00:00 24:00:00 / 14 digits 1 time [ (p) ] with times of day only, microsecond time zone 12 bytes with time zone 00:00:00+1359 24:00:00-1359 / 14 digits JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 21. TIPOS DE DATOS (BOLEANO) •El tipo de datos Boleano permite manejar dos estados como verdadero/falso, sí/no o activado/desactivado. http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ •Lo valores permitidos para representar el estado verdadero •TRUE •'t‘ •‘true‘ •'y‘ •'yes‘ •'1‘ •Valores permitidos para representar el estado falso •FALSE •‘f‘ •'false‘ •'n‘ •'no‘ •'0’ JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 22. Restricciones de Integridad http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Los cinco tipos de restricciones aplicados en sentecias SQL: Restricciones (CONSTRAINT ) NOT NULL UNIQUE PRIMARY KEY FOREING KEY CHECK JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 23. Restricciones de Integridad http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ • Nulos: Un atributo puede o no admitir nulos. En SQL se especifica mediante la cláusula NOT NULL. • Integridad Referencial: Garantiza la existencia de las Claves Foráneas. Para ello se utilizan las cláusulas REFERENCES y FOREIGN KEY • Clave Primaria: Garantiza la unicidad y obligatoriedad del o los atributos definidos como clave primaria. Para ello se utiliza la cláusula PRIMARY KEY. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 24. Restricciones de Integridad • Clave Alternativa: Garantiza la unicidad de los atributos declarados como tal. Se utiliza la cláusula UNIQUE. Si se desea hacer obligatoria debe especificarse adicionalmente NOT NULL. • Las reglas CHECK para atributos: Involucra condiciones de chequeo para uno o varios atributos. Sintaxis : CHECK ( condicion) • Mantención de la integridad • Medida básica (después de llaves foráneas) • Restringir valores lo más posible • Clases de CHECK para restringir el dominio de datos • CHECK ( x = 1 ) • CHECK ( pais IN ( „Colombia', „Mexico', „Brasil' )) • CHECK ( valor >= 100 AND valor < 200 ) JOSÉ CUARTAS BASES DE DATOS
  • 25. Apliquemos SQL Restricción - UNIQUE http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ La restricción UNIQUE asegura que una columna o un grupo de columnas no permitirán valores repetidos – en otras palabras, se impone la unicidad de los valores en la columna o el conjunto. Una restricción UNIQUE se puede utilizar en cualquier columna que no sea parte de una restricción PRIMARY KEY, que también impone valores únicos. Además, las restricciones UNIQUE se pueden usar en columnas que permitan valores nulos, mientras que las restricciones PRIMARY KEY no pueden. Los valores nulos son ignorados por la restricción UNIQUE. Una columna con una restricción UNIQUE puede referenciarse con una restricción FOREIGN KEY. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 26. Apliquemos SQL Restricción - UNIQUE Para crear una restricción UNIQUE en una tabla, se usa el comando CREATE TABLE o ALTER TABLE. Nomenclatura para crear un UNIQUE en CREATE TABLE en una columna: UNIQUE nombre_columna tipo_dato [Opcional: NOT NULL] UNIQUE Ejemplo 1: Cree una tabla llamada ejemplo_UNICO definida por la siguiente estructura: ejemplo_UNIQUE_columna (codigo: smallint, nombre: varchar (20)). Colocando el Campo código con una Restricción UNIQUE y NOT NULL. CREATE TABLE ejemplo_UNIQUE_columna ( codigo smallint NOT NULL UNIQUE, nombre varchar(20) Compruebe la restricción UNIQUE insertando dos filas utilizando el mismo código. ) JOSÉ CUARTAS BASES DE DATOS
  • 27. Apliquemos SQL Restricción - UNIQUE http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Nomenclatura para creación UNIQUE en CREATE TABLE en múltiples columnas: UNIQUE En este caso la restricción no es por una columna en particular, sino que por un conjunto de columnas. Por lo tanto la restricción se coloca después de haber definido todos los campos de la tabla y antes de cerrar la instrucción CREATE TABLE. Se utiliza para crear esta restricción la instrucción CONSTRAINT. Nomenclatura: CONSTRAINT nombre_restriccion UNIQUE (campo1, …, campoN) NOTA: el nombre de la restricción UNIQUE se recomienda por norma que comience con UQ_nombre_restriccion. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 28. Apliquemos SQL Restricción - UNIQUE http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Nomenclatura para creación UNIQUE en CREATE TABLE: UNIQUE agrupado Ejemplo 2: Crear la tabla ejemplo_UNICO_GR basada en la siguiente estructura: ejemplo_UNIQUE_GR (tipodocumento : smallint, digito: char(2),nombre: varchar(20)). El tipodocumento y digito deben ser no nulos y además en conjunto deben ser únicos. CREATE TABLE ejemplo_UNICO_GR( tipodocumento smallint NOT NULL, Compruebe la restricción UNIQUE agrupada, dos filas con los mismos digito char(2) NOT NULL, valores en el campo tipodocumento y digito. nombre varchar(20), CONSTRAINT UQ_documento_digito UNIQUE (tipodocumento,digito) ) JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 29. Apliquemos SQL Restricción - UNIQUE http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Nomenclatura para creación UNIQUE en ALTER TABLE: UNIQUE realizando una alteración de una tabla ya creada Nomenclatura ALTER TABLE nombre_tabla ADD CONSTRAINT UQ_nombre_restriccion UNIQUE (nombre_campo) Ejemplo 3: Adicione una restricción UQ_nombre_ALT a la tabla ejemplo_UNIQUE_columna, para el atributo nombre. ALTER TABLE "ejemplo_UNIQUE_columna“ ADD COSNTRAINT "UQ_nombre_restriccion" UNIQUE (nombre) JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 30. Apliquemos SQL Restricción - UNIQUE http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Borrar una restricción UNIQUE creada. Para borrar una restricción UNIQUE se debe utilizar la instrucción ALTER TABLE con su opción DROP. Nomenclatura ALTER TABLE nombre_tabla DROP CONSTRAINT UQ_nombre_restriccion Ejemplo 4: Borre la restricción UQ_nombre_restriccion de la tabla ejemplo_UNIQUE_columna. ALTER TABLE "ejemplo_UNIQUE_columna“ DROP CONSTRAINT "UQ_nombre_restriccion" JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 31. Apliquemos SQL Restricción – PRIMARY KEY http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ La restricción PRIMARY KEY se usa para especificar la clave primaria de una tabla, la columna o conjunto de columnas que identifican unívocamente a una fila. Debido a que identifica a una fila la clave primaria nunca puede ser NULL, esto es la que lo diferencia de la restricción UNIQUE. Para la definición de la restricción PRIMARY KEY se pueden utilizar las instrucciones CREATE TABLE y ALTER TABLE. Nomenclatura para CREATE TABLE: nombre_campo tipo_dato PRIMARY KEY Ejemplo 1: Crea una Tabla denominada ejemplo_Clave_PK, basada en la siguiente estructura: ejemplo_Clave_PK (codigo: integer, nombre: varchar(20)). Colocando el campo código como clave primaria. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 32. Apliquemos SQL Restricción – PRIMARY KEY http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Ejemplo 1: CREATE TABLE “ejemplo_Clave_PK” ( Compruebe si se cumple la codigo integer PRIMARY KEY, restricción de clave primaria ingresando dos filas con el nombre varchar(20) mismo código. ) Además usando CREATE TABLE se le puede asignar un nombre a la restricción PRIMARY KEY (IDEAL) , usando la siguiente nomenclatura: Para cuando se coloca al lado del campo: nombre_campo tipo_dato CONSTRAINT PK_nombre_clave PRIMARY KEY Para cuando se coloca antes de cerrar el CREATE TABLE CONSTRAINT PK_nombre_clave PRIMARY KEY (columna o columnas) JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 33. Apliquemos SQL Restricción – PRIMARY KEY http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Nomenclatura para ALTER TABLE: ALTER TABLE nombre_tabla ADD CONSTRAINT PK_nombre_clave PRIMARY KEY (columna o columnas) Nomenclatura para BORRAR una clave primaria: ALTER TABLE nombre_tabla DROP CONSTRAINT PK_nombre_clave NOTA: EN LA BASE DE DATOS NO PUEDEN EXISTIR DOS RESTRICCIONES CON EL MISMO NOMBRE, AUNQUE SEAN DE TABLAS DISTINTAS. NOTA: Por nomenclatura al dar un nombre a una clave primaria es ideal comenzar con la letras PK JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 34. Apliquemos SQL Restricción – PRIMARY KEY http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Ejemplo 2: Compruebe si se cumple la restricción de clave primaria Eliminamos la PK del ejmplo anterior. ingresando dos filas con el mismo código. ALTER TABLE “ejemplo_Clave_PK” DROP CONSTRAINT nombre_de_la_restriccion ALTER TABLE “ejemplo_Clave_PK” ADD CONSTRAINT “PK_ejemplo_Clave” PRIMARY KEY (codigo, nombre ) JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 35. Apliquemos SQL Restricción – FOREIGN KEY http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Una restricción FOREIGN KEY define una clave externa, que identifica una relación entre dos tablas. La columna o columnas clave externa de una tabla referencia a una clave candidata – una o varias columnas – de otra tabla. Cuando se inserta una fila en la tabla con la restricción FOREIGN KEY, los valores que se van a introducir en la columna o columnas que se han definido como clave externa se comprueban frente a los valores de la clave candidata de la tabla referenciada. Si ninguna fila de la tabla referenciada se ajusta a los valores de la clave externa, la nueva fila no se puede insertar. La restricción FOREIGN KEY también se comprueba cuando se realizan actualizaciones y borrados en la tabla referenciada o la tabla que posee la clave externa. Una clave externa sólo puede referenciar columnas que tengan las restricciones PRIMARY KEY o UNIQUE en la tabla referenciada. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 36. Apliquemos SQL Restricción – FOREIGN KEY http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Además, el tipo de dato y el tamaño de la columna o columnas de la clave externa, también debe coincidir con el de la columna o columnas referenciadas. Esta restricción FOREIGN KEY se puede asignar utilizando la sentencia CREATE TABLE y ALTER TABLE. Nomenclatura en CREATE TABLE (Siempre se agrega antes de finalizar la creación de la tabla): CONSTRAINT FK_nombre_clave_ajena FOREIGN KEY (columna o columnas que guardaran los valores de la clave ajena) REFERENCES nombre_tabla_referencia (columna o columna que poseen datos a validar) JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 37. Apliquemos SQL Restricción – FOREIGN KEY http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Ejemplo 1: Crear las siguientes tablas basadas en las siguientes estructuras: universidad(codigo_uni: integer,nombre:varchar(20)) estudiante (tipo_documento: char(2), numero_documento: integer, nombre: varchar(20), universidad: integer) Restricciones: Universidad clave primaria codigo_uni y Estudiante clave primaria tipo_documento y numero_documento. Además en estudiante universidad es una clave externa que se debe verificar en universidad. Paso 1: Crear la Tabla UNIVERSIDAD CREATE TABLE “UNIVERSIDAD” ( codigo_uni integer, nombre varchar(20) NOT NULL, CONSTRAINT PK_universidad PRIMARY KEY (codigo_uni) ) JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 38. Apliquemos SQL Restricción – FOREIGN KEY http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Ejemplo 1: Paso 2: Crear la Tabla ESTUDIANTE CREATE TABLE “ESTUDIANTE” ( tipo_documento char(2), numero_documento integer), nombre varchar(20) NOT NULL, universidad integer NOT NULL, CONSTRAINT PK_estudiante PRIMARY KEY (tipo_documento, numero_documento), CONSTRAINT FK_estudiante_universidad FOREIGN KEY (universidad) REFERENCES “UNIVERSDIAD”(codigo_uni) ) JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 39. Apliquemos SQL Restricción – FOREIGN KEY http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Nomenclatura en ALTER TABLE (para cuando se desea crear una clave externa después de haber creado la tabla): ALTER TABLE nombre_tabla ADD CONSTRAINT FK_nombre_clave_ajena FOREIGN KEY (columna o columnas para recepción de clave ajena) REFERENCES nombre_tabla_referencia (columna o columnas de referencia) Nomenclatura para borrar una clave foránea: ALTER TABLE nombre_tabla DROP CONSTRAINT FK_nombre_restriccion JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 40. Apliquemos SQL Restricción – CHECK http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ La restricción CHECK se usa para restringir los valores permitidos de una columna o unos valores específicos. Los valores de una columna que se van a introducir o actualizar se confirman. Se puede agregar esta restricción utilizando las instrucciones CREATE TABLE o ALTER TABLE. Nomenclatura CREATE TABLE: CONSTRAINT CK_nombre_restriccion CHECK (condiciones) Ejemplo 6: Crear una Tabla ejemplo_CH basandose en la siguiente estructura: ejemplo_CK (codigo: integer, nombre: varchar(20)). Donde codigo es la clave primaria y solo puede aceptar valores entre 1 y 100. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 41. Apliquemos SQL Restricción – CHECK http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Ejemplo 6: CREATE TABLE Ejemplo_CK ( codigo integer, nombre varchar(20), CONSTRAINT PK_codigo PRIMARY KEY (codigo), CONSTRAINT CK_codigo_condicion CHECK (codigo > 0 and codigo < 101) ) Para probar la realidad de la restricción ingrese un registro a la tabla Ejemplo_CK con un codigo con valor mayor que 100. JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 42. Apliquemos SQL Restricción – CHECK http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Nomenclatura para ALTER TABLE (en el caso de que se cree una restricción después de haber creado la tabla): ALTER TABLE nombre_tabla ADD CONSTRAINT CK_nombre_restriccion CHECK (condiciones) Nomenclatura para Borrar una restricción CHECK: ALTER TABLE nombre_tabla DROP CONSTRAINT CK_nombre_restriccion JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/
  • 43. Apliquemos SQL Restricción – CHECK http://datosintensos.blogspot.com/ http://datosintensos.blogspot.com/ Ejemplos con la cláusula CHECK: CREATE TABLE empleado ( documento INTEGER PRIMARY KEY, nombre VARCHAR(30) NOT NULL, pais VARCHAR(30) salario INTEGER NOT NULL CHECK (salario > 0 ) , comision INTEGER CHECK (comision between 0 and 100), cargo VARCHAR(20) NOT NULL, depto INTEGER NOT NULL, CONSTRAINT CK_pais CHECK ( pais IN ( „Colombia', „Mexico', „Brasil' )) ); JOSÉ CUARTAS BASES DE DATOS Actualízate sobre gestión de información en http://datosintensos.blogspot.com/