SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Base de Datos Avanzada




       CREACION DE TABLAS EN SQL SERVER 2005.
Este tipo de sentencias son especialmente útiles para bases de datos como MySQL, las cuales
trabajan directamente con comandos SQL y no por medio de editores.Para crear una tabla debemos
especificar diversos datos: El nombre que le queremos asignar, los nombres de los campos y sus
características. Además, puede ser necesario especificar cuáles de estos campos van a ser índices y
de qué tipo van a serlo.La sintaxis de creación puede variar ligeramente de una base de datos a otra
ya que los tipos de campo aceptados no están completamente estandarizados.A continuación os
explicamos someramente la sintaxis de esta sentencia y os proponemos una serie de ejemplos
prácticos:

Sintaxis:

Create Table nombre_tabla
(
nombre_campo_1 tipo_1
nombre_campo_2 tipo_2
nombre_campo_n tipo_n
Key(campo_x,...)
)

Pongamos ahora como ejemplo la creación de la tabla pedidos que hemos empleado en capítulos
previos:

Create Table pedidos
(
id_pedido INT(4) NOT NULL AUTO_INCREMENT,
id_cliente INT(4) NOT NULL,
id_articulo INT(4)NOT NULL,
fecha DATE,
cantidad INT(4),
total INT(4), KEY(id_pedido,id_cliente,id_articulo)
)

En este caso creamos los campos id los cuales son considerados de tipo entero de una longitud
especificada por el número entre paréntesis. Para id_pedido requerimos quedicho campo se
incremente automáticamente (AUTO_INCREMENT) de una unidad a cada introducción de un
nuevo registro para, de esta forma, automatizar su creación. Por otra parte, para evitar un mensaje de
error, es necesario requerir que los campos que van a ser definidos como índices no puedan ser nulos
(NOT NULL).El campo fecha es almacenado con formato de fecha (DATE) para permitir su correcta
explotación a partir de las funciones previstas a tal efecto.Finalmente, definimos los índices
enumerándolos entre paréntesis precedidos de la palabra KEY o INDEX.


7mo “A” Sistemas                                         Henrry Davids Carriel Álvarez
Base de Datos Avanzada


Del mismo modo podríamos crear la tabla de artículos con una sentencia como ésta:

Create Table articulos
(
id_articulo INT(4) NOT NULL AUTO_INCREMENT,
titulo VARCHAR(50),
autor VARCHAR(25),
editorial VARCHAR(25),
precio REAL,
KEY(id_articulo)
)

En este caso puede verse que los campos alfanuméricos son introducidos de la misma forma que los
numéricos. Volvemos a recordar que en tablas que tienen campos comunes es de vital importancia
definir estos campos de la misma forma para el buen funcionamiento de la base.Muchas son las
opciones que se ofrecen al generar tablas. No vamos a tratarlas detalladamente pues sale de lo
estrictamente práctico. Tan sólo mostraremos algunos de los tipos de campos que pueden ser
empleados en la creación de tablas con sus características:



     Tipo            Bytes       Descripción
INT o INTEGER          4         Números enteros. Existen otros tipos de mayor o menor
                                 longitud específicos de cada base de datos.
  DOUBLE o              8        Números reales (grandes y con decimales). Permiten
    REAL                         almacenar todo tipo de número no entero.
    CHAR           1/caracter    Alfanuméricos de longitud fija predefinida
  VARCHAR         1/caracter+1   Alfanuméricos de longitud variable
    DATE                3        Fechas, existen multiples formatos específicos de cada base de
                                 datos
    BLOB          1/caracter+2   Grandes textos no indexables
    BIT o               1        Almacenan un bit de información (verdadero o falso)
  BOOLEAN




           TIPOS DE DATOS DEL SQL SERVER 2005.
Los tipos de datos SQL se clasifican en 13 tipos de datos primarios y de varios sinónimos válidos
reconocidos por dichos tipos de datos. Los tipos de datos primarios son:




Tipo de Datos     Longitud         Descripción

7mo “A” Sistemas                                      Henrry Davids Carriel Álvarez
Base de Datos Avanzada


BINARY             1 byte            Para consultas sobre tabla adjunta de productos de bases de
                                     datos que definen un tipo de datos Binario.
BIT                1 byte            Valores Si/No ó True/False
BYTE               1 byte            Un valor entero entre 0 y 255.
COUNTER            4 bytes           Un número incrementado automáticamente (de tipo Long)
CURRENCY           8 bytes           Un entero escalable entre 922.337.203.685.477,5808 y
                                     922.337.203.685.477,5807.
DATETIME           8 bytes           Un valor de fecha u hora entre los años 100 y 9999.
SINGLE             4 bytes           Un valor en punto flotante de precisión simple con un rango de -
                                     3.402823*1038 a -1.401298*10-45 para valores negativos,
                                     1.401298*10- 45 a 3.402823*1038 para valores positivos, y 0.
DOUBLE             8 bytes           Un valor en punto flotante de doble precisión con un rango de -
                                     1.79769313486232*10308 a -4.94065645841247*10-324 para
                                     valores negativos, 4.94065645841247*10-324 a
                                     1.79769313486232*10308 para valores positivos, y 0.
SHORT              2 bytes           Un entero corto entre -32,768 y 32,767.
LONG               4 bytes           Un entero largo entre -2,147,483,648 y 2,147,483,647.
LONGTEXT           1 byte por        De cero a un máximo de 1.2 gigabytes.
                   carácter
LONGBINARY         Según se          De cero 1 gigabyte. Utilizado para objetos OLE.
                   necesite
TEXT               1 byte por        De cero a 255 caracteres.
                   carácter


La siguiente tabla recoge los sinónimos de los tipos de datos definidos:

Tipo de        Tipo de Datos                     Tipo de Datos        Tipo de Datos
Datos
BINARY         VARBINARY                         DOUBLE               FLOAT FLOAT8 IEEEDOUBLE
                                                                      NUMBER NUMERIC
BIT            BOOLEAN LOGICAL                   SHORT                INTEGER2
               LOGICAL1 YESNO                                         SMALLINT
BYTE           INTEGER1                          LONG                 INT INTEGER INTEGER4
COUNTER        AUTOINCREMENT                     LONGBINARY           GENERAL OLEOBJECT
CURRENCY       MONEY                             LONGTEXT             LONGCHAR MEMO NOTE
DATETIME       DATE TIME TIMESTAMP               TEXT                 ALPHANUMERIC CHAR -
                                                                      CHARACTER STRING - VARCHAR
SINGLE         FLOAT4 IEEESINGLE REAL            VARIANT (No          VALUE
                                                 Admitido)




7mo “A” Sistemas                                         Henrry Davids Carriel Álvarez
Base de Datos Avanzada



                       TIPOS DE BASE DE DATOS
SQL Server incluye varias bases de datos del sistema (MASTER, MSDB, MODEL, TEMPDB,
DISTRIBUTION, MSSQLSYSTEMRESOURCE), cada con unas finalidades específicas, que a
continuación se indican:

      MASTER. ¿Para que sirve MASTER? Almacena información de configuración de la
      instancia de SQL Server, como puede ser la definición de los inicios de sesión (Logins), de
      las bases de datos, de los errores del sistema, etc. Hay que tener en cuenta, que no toda la
      configuración de la instancia se almacena en MASTER, pues por ejemplo, el modo de
      autenticación      (Windows       o     Mixto)     se    almacena       en     el     registro.
      También contiene los procedimientos almacenados extendidos, y muchos otros
      procedimientos almacendos del sistema sólo disponibles en MASTER.
      MSDB. ¿Para que sirve MSDB? Principalmente tiene la función de dar soporte al Agente
      de SQL Server, de tal modo que almacena la definición y planificación de JOBs, Planes de
      Mantenimiento, etc. (incluyendo su historial de ejecución), así como almacena la definición
      de otros objetos como Operadores, Alertas, etc. Esto implica, que el Agente de SQL Server,
      que cómo sabemos es un servicio de Windows, se conectará a esta base de datos, y por ello
      será necesario parar el Agente de SQL Server si deseamos hacer un RESTORE de la misma,
      pues                                 necesitaremos                               exclusividad.
      Sin embargo, MSDB también se utiliza cuando el Agente de SQL Server no está
      presente, como es el caso de SQL Express (que no incluye éste servicio) o en los casos en
      que no se utiliza (ej: el Agente de SQL Server está parado). Por poner ejemplos, siempre que
      se realiza una copia de seguridad (BACKUP DATABASE o BACKUP LOG) o una
      restauración (RESTORE DATABASE o RESTORE LOG), se almacena en MSDB (tablas
      backupfile, backupfilegroup, backupmediafamily, backupmediaset, backupset, restorefile,
      restorefilegroup,                                                             restorehistory).
      Por último, también permite servir de ubicación de almacenamiento de paquetes DTS
      (SQL Server 2000) y DTSX (SQL Server 2005 - SSIS).
      MODEL. ¿Para que sirve MODEL? Esta base de datos sirve de modelo. Siempre que se crea
      una nueva base de datos (CREATE DATABASE), se realiza una copia de la base de datos
      MODEL, heredando de ésta su configuración y contenido, salvo que se especifique lo
      contrario. Por ejemplo, es posible establecer el Modo de Recuperación o Modo de Registro
      de MODEL en SIMPLE (o sencillo), con el fin de evitar que al crear una base de datos por
      defecto se utilice el Modo de Recuperación FULL (completo).
      TEMPDB. ¿Para que sirve TEMPDB? Almacena tanto los objetos temporales (tablas
      temporales, procedimientos almacenados temporales, etc.), como los resultados intermedios
      que pueda necesitar crear el motor de base de datos, por ejemplo durante la ejecución de
      consultas que utilizan las cláusulas GROUP BY, ORDER BY, DISTINCT, etc.
      Además, TEMPDB se crea de nuevo siempre que se inicia la instancia SQL Server, tomando
      su tamaño por defecto. Dado que según necesite más espacio, TEMPDB crecerá hasta el
      tamaño que necesite, y dado que el crecimiento de un fichero implica esperas debidas a la
      entrada/salida, es muy importante en entornos críticos dimensionar correctamente TEMPDB
      para que se cree con un tamaño apropiado, y evitar dichas esperas de entrada/salida en tiempo
      de ejecución, justo cuando estamos ofreciendo servicio a los usuarios. Evidentemente,
      estamos desplazando dichas esperas al momento de inicio de la instancia, pero también
      conseguimos una ventaja adicional al crear de una vez TEMPDB: limitamos la fragmentación
      (también            muy           importante          en          entornos           críticos).


7mo “A” Sistemas                                       Henrry Davids Carriel Álvarez
Base de Datos Avanzada


        A partir de SQL Server 2005, también se utiliza al habilitar el modo de aislamiento
        SNAPSHOT, así como al crear o reconstruir índices con la opción SORT_IN_TEMPDB.
        DISTRIBUTION. ¿Para que sirve DISTRIBUTION? No existe por defecto. Se crea al
        habilitar una instancia de SQL Server como Distribuidor en un entorno de Replicación.
        Durante el proceso de configuración del Distribuidor, se puede elegir el nombre de ésta base
        de datos, por lo que no resulta estrictamente necesario que se llame DISTRIBUTION.
        Almacena información como la definición de las Publicaciones, la definición de los Agentes
        de Instantánea, etc.
        MSSQLSYSTEMRESOURCE. ¿Para que sirve MSSQLSYSTEMRESOURCE? Esta base
        de datos es nueva en SQL Server 2005. Aparentemente está oculta (no podremos verla
        desde SQL Server Management Studio). Es de sólo lectura y no contiene datos, sino por el
        contrario, contiene el código de todos los objetos del sistema de SQL Server 2005. No es
        accesible directamente, puesto que es necesario establecer el modo de usuario único
        (single_user) para poder acceder a esta base de datos (USE MSSQLSYSTEMRESOURCE).
        En cualquier caso, jamás se debe acceder a esta base de datos.

Una de las principales diferencias entre SQL Server 2000 y SQL Server 2005, está en que en SQL
Server 2005 ya no es posible actualizar directamente las tablas del catálogo del sistema, es
decir, no funciona la opción 'allow update' de sp_configure. Todas las manipulaciones de éste tipo,
se deben de realizar a traves de los procedimientos almacenados del sistema o de las propias
sentencias del motor de base de datos (CREATE, ALTER, DROP, etc.).




CARACTERISTICAS PRINCIPALES DEL SQL SERVER
                   2005.
Las características de la Administración de Bases de Datos

Característica                                Descripción
Mirroring de Bases de Datos                   Microsoft SQL Server 2005 amplía las posibilidades de
                                              duplicación de logs (“log shipping”) proporcionando a los
                                              administradores de BBDD la opción de mirroring. Los
                                              administradores pueden usar esta funcionalidad para
                                              garantizar la disponibilidad de sus sistemas SQL mediante la
                                              configuración de un servidor en espera para su activación
                                              automática en caso de fallo (failover).
Operaciones de Indexación Online              La opción de indexado online permite modificaciones
                                              concurrentes (actualizaciones, borrados e inserciones) en las
                                              tablas subyacentes o datos con índices cluster y de cualquier
                                              índice asociado durante la ejecución de DDL de indexación.
                                              Por ejemplo, mientras se está reconstruyendo un índice
                                              cluster, se puede seguir haciendo actualizaciones a los datos
                                              y consultas sobre estos datos.
Nuevas herramientas integradas                SQL Server 2005 introduce el SQL Server Studio, una suite
                                              de herramientas de gestión integradas. Este nuevo conjunto
                                              incluye nuevas funcionalidades para desarrollo, implantación
                                              y resolución de problemas de Bases de Datos SQL, así como
                                              mejoras de las funcionalidades anteriores.
Aislamiento de Imágenes (SI)                  Se dispone de un nuevo nivel de aislamiento de imagen de
                                              BBDD (“SnapshotIsolation”, SI) a nivel de base de datos. SI
                                              permite a los usuarios acceder a la última operación
                                              realizada utilizando una vista transitoria consistente de la


7mo “A” Sistemas                                         Henrry Davids Carriel Álvarez
Base de Datos Avanzada


                                        Base de Datos. Esta funcionalidad ofrece una escalabilidad
                                        mayor para implementaciones de bases de datos
                                        extremadamente grandes.
Particionado de Datos                   El particionado de datos se ha mejorado con particiones
                                        nativas de tablas e índices, posibilitando soluciones de
                                        escalabilidad horizontal. Al particionar tablas de bases de
                                        datos muy grandes, el rendimiento de las consultas a la
                                        base de datos se mejora notablemente.
Backups duplicados (“mirroredbackup”)   SQL Server 2005 incluye un nuevo soporte para volúmenes
                                        de backup espejados, aumentando la disponibilidad de las
                                        copias de seguridad de SQL Server. La posibilidad de replicar
                                        el backup permite resolver posibles problemas de corrupción
                                        del medio físico de copia.
Restauración online                     SQL Server 2005 permitirá realizar una operación de
                                        recuperación mientras una instancia de SQL Server está
                                        activa. La restauración online mejora la disponibilidad de
                                        SQL Server, ya que únicamente los datos que se están
                                        recuperando quedan como no disponibles. El resto de la
                                        base de datos permanece online y disponible.
Recuperación rápida                     Esta característica mejora la disponibilidad de las bases de
                                        datos de SQL Server con una nueva opción. Los usuarios
                                        podrán reconectarse a una base de datos en recuperación
                                        después de que realizar un “roll forward” sobre el log de
                                        transacciones.
Conexión de Administrador dedicada      SQL Server 2005 introduce la conexión de administración
                                        dedicada, que pueden utilizar los administradores de BBDD
                                        para acceder a un servidor en explotación aun cuando el
                                        servidor está bloqueado o no disponible por cualquier
                                        motivo. Así, los administradores podrán ejecutar funciones
                                        de diagnóstico, o sentencias Transact SQL, a fin de poder
                                        resolver problemas en el servidor.
Mejoras en la Replication               Para bases de datos distribuidas móviles, SQL Server 2005
                                        proporciona una serie de funcionalidades de replicación
                                        extremo a extremo, incluyendo la posibilidad de publicar
                                        bases de datos Oracle. SQL Server 2005 incluirá nuevas
                                        mejoras a las herramientas y sobre la escalabilidad de la
                                        replicación también.
Las características de Desarrollo
Característica                          Descripción
Soporte para .NET Framework             SQL Server 2005 introduce la posibilidad de desarrollar
                                        objetos de base de datos en lenguajes .NET. Pueden crearse
                                        Objetos de código, incluyendo Funciones, Procedimientos y
                                        Triggers en lenguajes como C# y VB.NET. Se pueden crear
                                        también dos nuevos objetos en estos lenguajes: User-
                                        DefinedTypes y Agregados.
Tecnologías XML                         Las tecnologías XML son un estándar importante y
                                        ampliamente aceptado para distribuir datos entre diferentes
                                        aplicaciones sobre redes locales e Internet. Microsoft SQL
                                        Server 2005 soporta el almacenamiento nativo de
                                        documentos XML, especificación de consultas con XML y
                                        devolución de resultado de consultas como documentos
                                        XML.
ADO.NET Versión 2.0                     Desde el nuevo soporte para tipos SQL a “Multiple Active
                                        Result Set”, ADO .NET supone una evolución de los métodos
                                        de acceso y manipulación de datos, para conseguir una
                                        mayor escalabilidad y flexibilidad.
Mejoras en Transact-SQL                 SQL Server 2005 introduce muchas posibilidades nuevas
                                        para el desarrollo de aplicaciones de bases de datos
                                        escalables. Estas mejoras incluyen el manejo de errores,
                                        nuevas posibilidades de consultas recursivas y soporte para


7mo “A” Sistemas                                   Henrry Davids Carriel Álvarez
Base de Datos Avanzada


                                             nuevas funcionalidades del motor de SQL Server.
Gestor de Servicio SQL                       El Gestor de Servicio SQL (SQL ServiceBroker) ofrece un
                                             marco para aplicaciones distribuidas orientado a aplicaciones
                                             de línea de negocios a gran escala.
Servicios de Notification                    Los Servicios de Notificación (“Notification Services”)
                                             permiten construir aplicaciones de notificación mejoradas,
                                             capaces de expedir información personalizada en el
                                             momento en que se genera, como puede ser alertas de
                                             cotizaciones de bolsa, nuevas suscripciones, alertas de envío
                                             de paquetes, o cambios en las tarifas de billetes de avión, a
                                             cualquier dispositivo y a millones de suscriptores.
Servicios Web                                En SQL Server 2005 , los desarrolladores pueden crear
                                             servicios Web en la capa de base de datos, convirtiendo a
                                             SQL Server en un servidor HTTP. Esta capacidad supone un
                                             nuevo modelo de acceso a los datos para aplicaciones
                                             basadas en Web Services.
Soporte para Xquery                          SQL Server 2005 incluye funcionalidades Xquery de altas
                                             prestaciones, que permiten la manipulación de objetos XML
                                             en la capa de datos, así como un nuevo juego de
                                             herramientas de creación de Xquery.
Mejoras en la Búsqueda de Texto Completo     SQL Server 2005 incluirá soporte para aplicaciones de texto
                                             completo ampliadas. Las funcionalidades de catálogo se han
                                             mejorado para proporcionar una mayor flexibilidad sobre el
                                             conjunto de datos que se catalogan. El rendimiento de las
                                             funciones de consulta y la escalabilidad han mejorado
                                             sensiblemente. Una serie de nuevas herramientas de gestión
                                             permiten un mayor control de la implementación de texto
                                             completo.
Mejoras en Seguridad                         SQL Server 2005 incorpora un nuevo modelo de seguridad
                                             que separa a los usuarios de los objetos, proporciona un
                                             acceso muy granular y un mejor control de los accesos a los
                                             datos. Además, todas las tablas del sistema se implementan
                                             ahora como Vistas, lo que redunda en un mayor control
                                             sobre los objetos de sistema de la Base de Datos.



Las características de Business Intelligence
Característica                               Descripción
Servicios de Análisis                        Con SQL Server 2005, los Servicios de Análisis (Analysis
                                             Services) se mueven en el entorno del análisis en tiempo
                                             real. Desde mejoras en la escalabilidad hasta una
                                             integración profunda con Microsoft Office, SQL Server 2005
                                             amplía el concepto de “businessintelligence” a todos los
                                             niveles de su negocio.
Servicios de Transformación de Datos (DTS)   Los Servicios de Transformación de Datos (DTS) son un
                                             conjunto de herramientas gráficas y objetos programables
                                             que pueden usarse para extraer, transformar y cargar datos
                                             (ETL) desde fuentes muy diversas y llevarlas a un destino
                                             único o múltiples destinos. Data Transformation Services
                                             (DTS) para Microsoft SQL Server 2005 introduce un rediseño
                                             completo para proporcionar una plataforma ETL integral.
Data Mining                                  SQL Server 2005 introduce cuatro nuevos algoritmos de
                                             Data Mining, así como herramientas y asistentes mejorados,
                                             haciendo que el data mining sea más accesible a negocios
                                             de cualquier tamaño.
Servicios de Reporting                       Servicios de Reporting permite a los negocios integrar de
                                             forma sencilla datos desde fuentes heterogéneas y data
                                             warehouses en informes ricos, interactivos y gestionables,
                                             que pueden localizarse y consultarse en intranets, extranets
                                             y en Internet.


7mo “A” Sistemas                                        Henrry Davids Carriel Álvarez
Base de Datos Avanzada


Soporte de Servicios de Análisis en Cluster      Esta funcionalidad mejora la disponibilidad de los Servicios
                                                 de Análisis con soporte para clusters con conmutación de
                                                 nodos, soporte mejorado para múltiples instancias y soporte
                                                 para backup y recuperación de objetos y datos de Servicios
                                                 de Análisis.
Indicadores de Rendimiento Principales           Los    Indicadores    de    Rendimiento   Principales  (“Key
                                                 Performance Indicators” , KPI) permiten definir métricas de
                                                 negocio en formato gráfico, adaptables, para ayudar a
                                                 generar y hacer el seguimiento de entornos de prueba
                                                 corporativos.
Escalabilidad y Rendimiento                      Se ha mejorado la escalabilidad y el rendimiento de los
                                                 Servicios de Análisis de SQL Server 2005 por medio de
                                                 características como el proceso de partición paralelo,
                                                 creación de particiones ROLAP y HOLAP remotas, cubos
                                                 particionados distribuidos, cálculos persistentes y cache
                                                 proactivo.
Cubo en un solo click                            Cuando se crea un cubo en un proyecto de Data Warehouse,
                                                 el asistente para creación de Cubos incluye una opción para
                                                 habilitar la detección de cubos y sugerencias con un solo
                                                 click. Esta tecnología de cubos en un solo click de SQL
                                                 Server 2005 examina las relaciones en una vista del origen
                                                 de datos y aporta sugerencias.
Mejoras en la Arquitectura                       SQL Server 2005 introduce una nueva arquitectura de
                                                 Servicios de Transformación de Datos (DTS). La arquitectura
                                                 consiste en dos motores: El Runtime de Transformación de
                                                 Datos (DTR). Este motor ejecuta paquetes DTS, tareas DTS,
                                                 hace seguimiento de la ejecución del paquete y proporciona
                                                 servicios para las tareas. El Pipeline de Transformación de
                                                 Datos (DTP). El motor DTP extrae datos de las fuentes,
                                                 aplica las transformaciones contra las columnas de datos y
                                                 carga los datos en los sistemas de almacenamiento.
Integración con los informes de Office System    Los reports emitidos por el servidor de reports pueden
                                                 ejecutarse en el contexto de SharePoint Portal Server y
                                                 aplicaciones Office, como Word y Excel. Los usuarios de
                                                 SharePoint pueden utilizar las funcionalidades de SharePoint
                                                 para suscribirse a informes, crear nuevas versiones de los
                                                 informes y distribuirlos. Los usuarios pueden también abrir
                                                 reports en Word o Excel para ver versiones en HTML de los
                                                 mismos. Los usuarios de SQL Server y Servicios de Análisis
                                                 pueden definir reports basados en consultas contra bases de
                                                 datos relacionales y multidimensionales. Las consultas
                                                 definidas con el QueryBuilder pueden procesarse utilizando
                                                 las posibilidades de proceso de datos incorporado al servidor
                                                 de informes.




            CREAR, MODIFICAR Y ELIMINAR TABLAS.
CREAR TABLAS:
En el modelo relacional la información de una base de datos se almacena en tablas. Para saber más sobre las
tablas y como se almacena la información de BD

La creación de la base de datos debe comenzar por con la creación de una o más tablas. Para ello
utilizaremos la sentencia CREATE TABLE.

La sintaxis de la sentencia es la siguiente:

7mo “A” Sistemas                                            Henrry Davids Carriel Álvarez
Base de Datos Avanzada


CREATE TABLE <nombre_tabla>
(
<nombre_campo><tipo_datos(tamaño)>
[null | notnull] [default <valor_por_defecto>]
{
,<nombre_campo><tipo_datos(tamaño)>
[null | notnull] [default <valor_por_defecto>]}
[
, constraint <nombre> primary key (<nombre_campo>[ ,...n ])]
[
, constraint <nombre> foreign key (<nombre_campo>[ ,...n ])
references <tabla_referenciada> ( <nombre_campo> [ ,...n ] ) ]
);

Ejemplo: Vamos a simular una base de datos para un negocio de alquiler de coches, por lo que vamos a
empezar creando una tabla para almacenar los coches que tenemos.

CREATE TABLE tCoches
(
matricula          char(8) notnull,
marca              varchar(255) null,
modelo              varchar(255) null,
color             varchar(255) null,
numero_kilometros       numeric(14,2) null default 0,
constraint PK_Coches primary key (matricula)
);

 En este ejemplo creamos una tabla llamada tCoches con cinco campos (matricula, marca, modelo, color,
numero_kilometros).

 Nótese que se han omitido las tildes y los espacios a propósito. Nunca cree campos que contengan
caracteres específicos de un idioma (tildes, eñes, ...) ni espacios.

    Las claves primarias y externas (o foraneas) se pueden implementar directamente a través de la
instrucción CREATE TABLE, o bien se pueden agregar a través de sentencias ALTER TABLE.

 Cada gestor de bases de datos implementa distintas opciones para la instrucción CREATE TABLE, pudiendo
especificarse gran cantidad de parámetros y pudiendo variar el nombre que damos a los tipos de datos, pero
la sintaxis estándar es la que hemos mostrado aquí. Si queremos conocer más acerca de las opciones
de CREATE TABLE lo mejor es recurrir a la documentación de nuestro gestor de base de datos

MODIFICAR TABLAS:
En ocasiones puede ser necesario modificar la estructura de una tabla, comúnmente para añadir un campo o
restricción. Para ello disponemos de la instrucción ALTER TABLE.

ALTER TABLE nos va a permitir:

Añadir campos a la estructura incial de una tabla.
Añadir restricciones y referencias.

Para añadir un campo a una tabla existente:

ALTER TABLE <nombre_tabla>
ADD <nombre_campo><tipo_datos(tamaño)>

7mo “A” Sistemas                                           Henrry Davids Carriel Álvarez
Base de Datos Avanzada


[null |notnull] [default <valor_por_defecto>]
{
, <nombre_campo><tipo_datos(tamaño)>
[null |notnull] [default <valor_por_defecto>]} ;

  Ejemplo:


ALTER TABLE tCoches
ADD num_plazas integernull default 5;

   En este ejemplo añadimos el campo num_plazas a la tabla tCoches que habiamos creado en el apartado
anterior.

   Para añadir una clave primaria vamos a crear una tabla de cliente y le añadiremos la clave primaria
ejecutando una sentencia alter table:

   Creamos la tabla clientes y le añadimos una reestricción primary key a la que damos el nombre
PK_tClientes en el campo codigo.



CREATE TABLE tClientes
(
codigo     integer                 notnull,
nombre     varchar(255)            notnull,
apellidos varchar(255)             null,
nif        varchar(10)             null,
telefono   varchar(9)              null,
movil      varchar(9)               null
);

ALTER TABLEtClientesADD
CONSTRAINTPK_tClientesprimary key (codigo);

   Solo podemos modificar una única tabla a la vez con ALTER TABLE, para modificar más de una tabla
debemos ejecutar una sentencia ALTER TABLE por tabla.

   Para añadir una clave externa (o foranea) necesitamos una tercera tabla en nuestra estructura. Por un
lado tenemos la tabla tCoches y la tabla tClientes, ahora vamos a crear la tabla tAlquileres que será la
encargada de "decirnos" que clientes han alquilado un coche.

CREATE TABLE tAlquileres
(
codigo       integer not null,
codigo_cliente integer not null,
matricula     char(8) not null,
fx_alquiler   datetime not null,
fx_devolucion datetime null
);

ALTER TABLEtAlquileresADD
CONSTRAINTPK_tAlquileresprimary key (codigo),
CONSTRAINT FK_Clientesforeign key (codigo_cliente)
           referencestClientes (Codigo),
CONSTRAINTFK_Cochesforeign key (matricula)


7mo “A” Sistemas                                            Henrry Davids Carriel Álvarez
Base de Datos Avanzada


references tCoches (matricula);

Bien, en este código creamos la tabla tAlquileres, y luego mediante una sentencia ALTER TABLE añadimos
una clave primaria llamada PK_tAlquileres en el campo codigo, una clave externa llamada FK_Clientes
referenciada al codigo de la tabla tClientes, y por último otra clave externa llamada FK_Coches referenciada al
campo matricula de la tabla tCoches.

Nota:Cuando creamos una clave externa el campo referenciado y el que sirve de referencia deben ser del
mismo tipo de datos.

Si somos observadores nos daremos cuenta que los campos que sirven de referencia a las claves foraneas
son las claves primarias de sus tablas. Sólo podemos crear claves externas que referencien claves primarias.

Al igual que ocurria con la sentencia CREATE TABLE cada gestor de bases de datos implementa sus
mejoras, siendo la mejor forma de conocerlas recurrir a la documentación del gestor de bases de datos.

En principio, para borrar columnas de una tabla debemos:

    1. Crear una tabla con la nueva estructura.
    2. Transferir los datos
    3. Borrar la tabla original.

y digo en principio, porque como ya hemos comentado según el gestor de bases de datos con el que
trabajemos podremos realizar esta tarea a través de una sentencia ALTER TABLE.

ELIMINAR TABLAS:
Podemos eliminar una tabla de una base de datos mediante la instrucción DROP TABLE.

DROP TABLE <nombre_tabla>;

La instrucción DROP TABLE elimina de forma permanente la tabla y los datos en ella contenida.

Si intentamos eliminar una tabla que tenga registros relacionados a través de una clave externa la
instrucciónDROP TABLE fallará por integridad referencial.

Cuando eliminamos una tabla eliminamos también sus índices.


    INGRESAR, MODIFICAR Y ELIMINAR REGISTROS.
INGRESAR REGISTRO:
Los registros pueden ser introducidos a partir de sentencias que emplean la instrucción Insert.

La sintaxis utilizada es la siguiente:

Insert Into nombre_tabla (nombre_campo1, nombre_campo2,...) Values (valor_campo1,
valor_campo2...)
Un ejemplo sencillo a partir de nuestra tabla modelo es la introducción de un nuevo cliente lo cual se
haría con una instrucción de este tipo:

Insert Into clientes (nombre, apellidos, dirección, población, codigopostal, email, pedidos)

7mo “A” Sistemas                                              Henrry Davids Carriel Álvarez
Base de Datos Avanzada


Values
('Henrry', 'Carriel', 'vinces', 'vinces', '123', henrrydavids_carriel@hotmail.com', 3)

Como puede verse, los campos no numéricos o booleanos van delimitados por apostrofes: '. También
resulta interesante ver que el código postal lo hemos guardado como un campo no numérico. Esto es
debido a que en determinados países (europeos) los códigos postales contienen también letras.
Aunque, de todos modos, puede que sea más cómodo utilizar un programa con interfaz gráfica, como
Access, que nos puede servir para crear las tablas en bases de datos del propio Access o por ODBC a
otras bases de datos como SQL Server o MySQL.
Por supuesto, no es imprescindible rellenar todos los campos del registro. Eso sí, puede ser que
determinados campos sean necesarios. Estos campos necesarios pueden ser definidos cuando
construimos nuestra tabla mediante la base de datos.

MODIFICAR REGISTRO:
Update es la instrucción del lenguaje SQL que nos sirve para modificar los registros de una tabla.
Como para el caso de Delete, necesitamos especificar por medio de Where cuáles son los registros en
los que queremos hacer efectivas nuestras modificaciones. Además, obviamente, tendremos que
especificar cuáles son los nuevos valores de los campos que deseamos actualizar.
La sintaxis es de este tipo:

Update nombre_tabla Set nombre_campo1 = valor_campo1, nombre_campo2 = valor_campo2,...
Where condiciones_de_selección

Un ejemplo aplicado:

Update clientes Set nombre='Davids' Where nombre='Henrry'

Mediante esta sentencia cambiamos el nombre Henrry por el de Davids en todos los registros cuyo
nombre sea Henrry.
Aquí también hay que ser cuidadoso de no olvidarse de usar Where, de lo contrario, modificaríamos
todos los registros de nuestra tabla.

Update producto Set precio=12,50, descuento=15%

Esa sentencia modificaría el campo precio y el campo descuento en todos los productos de la tabla
producto. Si tenemos una tabla con miles de productos con esa sentencia se actualizarían todos, de
modo que la totalidad de los registros tendrían el mismo precio y el mismo descuento. Os aseguro
que este problema de olvidarse el Where no es algo extraño que ocurra, incluso para programadores
experimentados y puede acarrear problemas serios.

BORRAR REGISTRO:

Para borrar un registro nos servimos de la instrucción Delete. En este caso debemos especificar cual
o cuales son los registros que queremos borrar. Es por ello necesario establecer una selección que se
llevara a cabo mediante la cláusula Where.
La forma de seleccionar se verá detalladamente en capítulos posteriores. Por ahora nos
contentaremos de mostrar cuál es el tipo de sintaxis utilizado para efectuar estas supresiones:



7mo “A” Sistemas                                           Henrry Davids Carriel Álvarez
Base de Datos Avanzada


Delete From nombre_tabla Where condiciones_de_selección

Ej:

Delete From clientes

Delete From clientes Where nombre='Henrry'

Hay que tener cuidado con esta instrucción ya que si no especificamos una condición con Where, lo
que estamos haciendo es borrar toda la tabla:




7mo “A” Sistemas                                       Henrry Davids Carriel Álvarez

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (18)

Bases de datos my sql
Bases de datos my sqlBases de datos my sql
Bases de datos my sql
 
Tipos de datos. Ejercicios en SQLServer
Tipos de datos. Ejercicios en SQLServerTipos de datos. Ejercicios en SQLServer
Tipos de datos. Ejercicios en SQLServer
 
My sql para principiantes
My sql para principiantesMy sql para principiantes
My sql para principiantes
 
Informixsql
InformixsqlInformixsql
Informixsql
 
SQL
SQLSQL
SQL
 
Lenguaje estructurado sql
Lenguaje estructurado sqlLenguaje estructurado sql
Lenguaje estructurado sql
 
Tema7 dinamicas
Tema7 dinamicasTema7 dinamicas
Tema7 dinamicas
 
Cetis 109 jen_ax
Cetis 109 jen_axCetis 109 jen_ax
Cetis 109 jen_ax
 
Clase 10_ programacion
Clase 10_ programacionClase 10_ programacion
Clase 10_ programacion
 
PRESENTACIÓN SQL
PRESENTACIÓN SQLPRESENTACIÓN SQL
PRESENTACIÓN SQL
 
Funciones de sql server
Funciones de sql serverFunciones de sql server
Funciones de sql server
 
Arreglos Java (arrays)
Arreglos Java (arrays)Arreglos Java (arrays)
Arreglos Java (arrays)
 
Breve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQLBreve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQL
 
Manual tutorial-sql
Manual tutorial-sqlManual tutorial-sql
Manual tutorial-sql
 
Actividad3 2 david a. condori tantani
Actividad3 2  david a. condori tantaniActividad3 2  david a. condori tantani
Actividad3 2 david a. condori tantani
 
Bd sql
Bd sqlBd sql
Bd sql
 
Lotus script
Lotus scriptLotus script
Lotus script
 
Vb access
Vb accessVb access
Vb access
 

Ähnlich wie Sql server 2005 (bda)henrry

Ähnlich wie Sql server 2005 (bda)henrry (20)

Clase06 25-06-12
Clase06 25-06-12Clase06 25-06-12
Clase06 25-06-12
 
Trabajo ddl
Trabajo ddlTrabajo ddl
Trabajo ddl
 
Downloads%2 ftutorial sql%2fmanual-tutorial-sql
Downloads%2 ftutorial sql%2fmanual-tutorial-sqlDownloads%2 ftutorial sql%2fmanual-tutorial-sql
Downloads%2 ftutorial sql%2fmanual-tutorial-sql
 
Manual tutorial-sql
Manual tutorial-sqlManual tutorial-sql
Manual tutorial-sql
 
Introducción a la base de datos
Introducción a la base de datosIntroducción a la base de datos
Introducción a la base de datos
 
Oracle Características y tipos de datos
Oracle Características y tipos de datos Oracle Características y tipos de datos
Oracle Características y tipos de datos
 
LENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQLLENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQL
 
Carlos zarate
Carlos zarateCarlos zarate
Carlos zarate
 
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptxOVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
 
Educación para el desarrollo humano apartar de
Educación para el desarrollo humano apartar deEducación para el desarrollo humano apartar de
Educación para el desarrollo humano apartar de
 
TODO SOBRE SQL
TODO SOBRE SQLTODO SOBRE SQL
TODO SOBRE SQL
 
Tema3
Tema3Tema3
Tema3
 
Sql
SqlSql
Sql
 
Tipos de datos de oracle
Tipos de datos de oracleTipos de datos de oracle
Tipos de datos de oracle
 
Cap. iv bdd ii
Cap. iv bdd iiCap. iv bdd ii
Cap. iv bdd ii
 
Modulo sql unidad 1
Modulo sql  unidad 1Modulo sql  unidad 1
Modulo sql unidad 1
 
informacion sobre blog datos y sql
informacion sobre blog datos y sqlinformacion sobre blog datos y sql
informacion sobre blog datos y sql
 
Unidad iv ddl
Unidad iv ddlUnidad iv ddl
Unidad iv ddl
 
Presentacion power designer
Presentacion power designerPresentacion power designer
Presentacion power designer
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 

Kürzlich hochgeladen

Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 

Kürzlich hochgeladen (20)

Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 

Sql server 2005 (bda)henrry

  • 1. Base de Datos Avanzada CREACION DE TABLAS EN SQL SERVER 2005. Este tipo de sentencias son especialmente útiles para bases de datos como MySQL, las cuales trabajan directamente con comandos SQL y no por medio de editores.Para crear una tabla debemos especificar diversos datos: El nombre que le queremos asignar, los nombres de los campos y sus características. Además, puede ser necesario especificar cuáles de estos campos van a ser índices y de qué tipo van a serlo.La sintaxis de creación puede variar ligeramente de una base de datos a otra ya que los tipos de campo aceptados no están completamente estandarizados.A continuación os explicamos someramente la sintaxis de esta sentencia y os proponemos una serie de ejemplos prácticos: Sintaxis: Create Table nombre_tabla ( nombre_campo_1 tipo_1 nombre_campo_2 tipo_2 nombre_campo_n tipo_n Key(campo_x,...) ) Pongamos ahora como ejemplo la creación de la tabla pedidos que hemos empleado en capítulos previos: Create Table pedidos ( id_pedido INT(4) NOT NULL AUTO_INCREMENT, id_cliente INT(4) NOT NULL, id_articulo INT(4)NOT NULL, fecha DATE, cantidad INT(4), total INT(4), KEY(id_pedido,id_cliente,id_articulo) ) En este caso creamos los campos id los cuales son considerados de tipo entero de una longitud especificada por el número entre paréntesis. Para id_pedido requerimos quedicho campo se incremente automáticamente (AUTO_INCREMENT) de una unidad a cada introducción de un nuevo registro para, de esta forma, automatizar su creación. Por otra parte, para evitar un mensaje de error, es necesario requerir que los campos que van a ser definidos como índices no puedan ser nulos (NOT NULL).El campo fecha es almacenado con formato de fecha (DATE) para permitir su correcta explotación a partir de las funciones previstas a tal efecto.Finalmente, definimos los índices enumerándolos entre paréntesis precedidos de la palabra KEY o INDEX. 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 2. Base de Datos Avanzada Del mismo modo podríamos crear la tabla de artículos con una sentencia como ésta: Create Table articulos ( id_articulo INT(4) NOT NULL AUTO_INCREMENT, titulo VARCHAR(50), autor VARCHAR(25), editorial VARCHAR(25), precio REAL, KEY(id_articulo) ) En este caso puede verse que los campos alfanuméricos son introducidos de la misma forma que los numéricos. Volvemos a recordar que en tablas que tienen campos comunes es de vital importancia definir estos campos de la misma forma para el buen funcionamiento de la base.Muchas son las opciones que se ofrecen al generar tablas. No vamos a tratarlas detalladamente pues sale de lo estrictamente práctico. Tan sólo mostraremos algunos de los tipos de campos que pueden ser empleados en la creación de tablas con sus características: Tipo Bytes Descripción INT o INTEGER 4 Números enteros. Existen otros tipos de mayor o menor longitud específicos de cada base de datos. DOUBLE o 8 Números reales (grandes y con decimales). Permiten REAL almacenar todo tipo de número no entero. CHAR 1/caracter Alfanuméricos de longitud fija predefinida VARCHAR 1/caracter+1 Alfanuméricos de longitud variable DATE 3 Fechas, existen multiples formatos específicos de cada base de datos BLOB 1/caracter+2 Grandes textos no indexables BIT o 1 Almacenan un bit de información (verdadero o falso) BOOLEAN TIPOS DE DATOS DEL SQL SERVER 2005. Los tipos de datos SQL se clasifican en 13 tipos de datos primarios y de varios sinónimos válidos reconocidos por dichos tipos de datos. Los tipos de datos primarios son: Tipo de Datos Longitud Descripción 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 3. Base de Datos Avanzada BINARY 1 byte Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario. BIT 1 byte Valores Si/No ó True/False BYTE 1 byte Un valor entero entre 0 y 255. COUNTER 4 bytes Un número incrementado automáticamente (de tipo Long) CURRENCY 8 bytes Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807. DATETIME 8 bytes Un valor de fecha u hora entre los años 100 y 9999. SINGLE 4 bytes Un valor en punto flotante de precisión simple con un rango de - 3.402823*1038 a -1.401298*10-45 para valores negativos, 1.401298*10- 45 a 3.402823*1038 para valores positivos, y 0. DOUBLE 8 bytes Un valor en punto flotante de doble precisión con un rango de - 1.79769313486232*10308 a -4.94065645841247*10-324 para valores negativos, 4.94065645841247*10-324 a 1.79769313486232*10308 para valores positivos, y 0. SHORT 2 bytes Un entero corto entre -32,768 y 32,767. LONG 4 bytes Un entero largo entre -2,147,483,648 y 2,147,483,647. LONGTEXT 1 byte por De cero a un máximo de 1.2 gigabytes. carácter LONGBINARY Según se De cero 1 gigabyte. Utilizado para objetos OLE. necesite TEXT 1 byte por De cero a 255 caracteres. carácter La siguiente tabla recoge los sinónimos de los tipos de datos definidos: Tipo de Tipo de Datos Tipo de Datos Tipo de Datos Datos BINARY VARBINARY DOUBLE FLOAT FLOAT8 IEEEDOUBLE NUMBER NUMERIC BIT BOOLEAN LOGICAL SHORT INTEGER2 LOGICAL1 YESNO SMALLINT BYTE INTEGER1 LONG INT INTEGER INTEGER4 COUNTER AUTOINCREMENT LONGBINARY GENERAL OLEOBJECT CURRENCY MONEY LONGTEXT LONGCHAR MEMO NOTE DATETIME DATE TIME TIMESTAMP TEXT ALPHANUMERIC CHAR - CHARACTER STRING - VARCHAR SINGLE FLOAT4 IEEESINGLE REAL VARIANT (No VALUE Admitido) 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 4. Base de Datos Avanzada TIPOS DE BASE DE DATOS SQL Server incluye varias bases de datos del sistema (MASTER, MSDB, MODEL, TEMPDB, DISTRIBUTION, MSSQLSYSTEMRESOURCE), cada con unas finalidades específicas, que a continuación se indican: MASTER. ¿Para que sirve MASTER? Almacena información de configuración de la instancia de SQL Server, como puede ser la definición de los inicios de sesión (Logins), de las bases de datos, de los errores del sistema, etc. Hay que tener en cuenta, que no toda la configuración de la instancia se almacena en MASTER, pues por ejemplo, el modo de autenticación (Windows o Mixto) se almacena en el registro. También contiene los procedimientos almacenados extendidos, y muchos otros procedimientos almacendos del sistema sólo disponibles en MASTER. MSDB. ¿Para que sirve MSDB? Principalmente tiene la función de dar soporte al Agente de SQL Server, de tal modo que almacena la definición y planificación de JOBs, Planes de Mantenimiento, etc. (incluyendo su historial de ejecución), así como almacena la definición de otros objetos como Operadores, Alertas, etc. Esto implica, que el Agente de SQL Server, que cómo sabemos es un servicio de Windows, se conectará a esta base de datos, y por ello será necesario parar el Agente de SQL Server si deseamos hacer un RESTORE de la misma, pues necesitaremos exclusividad. Sin embargo, MSDB también se utiliza cuando el Agente de SQL Server no está presente, como es el caso de SQL Express (que no incluye éste servicio) o en los casos en que no se utiliza (ej: el Agente de SQL Server está parado). Por poner ejemplos, siempre que se realiza una copia de seguridad (BACKUP DATABASE o BACKUP LOG) o una restauración (RESTORE DATABASE o RESTORE LOG), se almacena en MSDB (tablas backupfile, backupfilegroup, backupmediafamily, backupmediaset, backupset, restorefile, restorefilegroup, restorehistory). Por último, también permite servir de ubicación de almacenamiento de paquetes DTS (SQL Server 2000) y DTSX (SQL Server 2005 - SSIS). MODEL. ¿Para que sirve MODEL? Esta base de datos sirve de modelo. Siempre que se crea una nueva base de datos (CREATE DATABASE), se realiza una copia de la base de datos MODEL, heredando de ésta su configuración y contenido, salvo que se especifique lo contrario. Por ejemplo, es posible establecer el Modo de Recuperación o Modo de Registro de MODEL en SIMPLE (o sencillo), con el fin de evitar que al crear una base de datos por defecto se utilice el Modo de Recuperación FULL (completo). TEMPDB. ¿Para que sirve TEMPDB? Almacena tanto los objetos temporales (tablas temporales, procedimientos almacenados temporales, etc.), como los resultados intermedios que pueda necesitar crear el motor de base de datos, por ejemplo durante la ejecución de consultas que utilizan las cláusulas GROUP BY, ORDER BY, DISTINCT, etc. Además, TEMPDB se crea de nuevo siempre que se inicia la instancia SQL Server, tomando su tamaño por defecto. Dado que según necesite más espacio, TEMPDB crecerá hasta el tamaño que necesite, y dado que el crecimiento de un fichero implica esperas debidas a la entrada/salida, es muy importante en entornos críticos dimensionar correctamente TEMPDB para que se cree con un tamaño apropiado, y evitar dichas esperas de entrada/salida en tiempo de ejecución, justo cuando estamos ofreciendo servicio a los usuarios. Evidentemente, estamos desplazando dichas esperas al momento de inicio de la instancia, pero también conseguimos una ventaja adicional al crear de una vez TEMPDB: limitamos la fragmentación (también muy importante en entornos críticos). 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 5. Base de Datos Avanzada A partir de SQL Server 2005, también se utiliza al habilitar el modo de aislamiento SNAPSHOT, así como al crear o reconstruir índices con la opción SORT_IN_TEMPDB. DISTRIBUTION. ¿Para que sirve DISTRIBUTION? No existe por defecto. Se crea al habilitar una instancia de SQL Server como Distribuidor en un entorno de Replicación. Durante el proceso de configuración del Distribuidor, se puede elegir el nombre de ésta base de datos, por lo que no resulta estrictamente necesario que se llame DISTRIBUTION. Almacena información como la definición de las Publicaciones, la definición de los Agentes de Instantánea, etc. MSSQLSYSTEMRESOURCE. ¿Para que sirve MSSQLSYSTEMRESOURCE? Esta base de datos es nueva en SQL Server 2005. Aparentemente está oculta (no podremos verla desde SQL Server Management Studio). Es de sólo lectura y no contiene datos, sino por el contrario, contiene el código de todos los objetos del sistema de SQL Server 2005. No es accesible directamente, puesto que es necesario establecer el modo de usuario único (single_user) para poder acceder a esta base de datos (USE MSSQLSYSTEMRESOURCE). En cualquier caso, jamás se debe acceder a esta base de datos. Una de las principales diferencias entre SQL Server 2000 y SQL Server 2005, está en que en SQL Server 2005 ya no es posible actualizar directamente las tablas del catálogo del sistema, es decir, no funciona la opción 'allow update' de sp_configure. Todas las manipulaciones de éste tipo, se deben de realizar a traves de los procedimientos almacenados del sistema o de las propias sentencias del motor de base de datos (CREATE, ALTER, DROP, etc.). CARACTERISTICAS PRINCIPALES DEL SQL SERVER 2005. Las características de la Administración de Bases de Datos Característica Descripción Mirroring de Bases de Datos Microsoft SQL Server 2005 amplía las posibilidades de duplicación de logs (“log shipping”) proporcionando a los administradores de BBDD la opción de mirroring. Los administradores pueden usar esta funcionalidad para garantizar la disponibilidad de sus sistemas SQL mediante la configuración de un servidor en espera para su activación automática en caso de fallo (failover). Operaciones de Indexación Online La opción de indexado online permite modificaciones concurrentes (actualizaciones, borrados e inserciones) en las tablas subyacentes o datos con índices cluster y de cualquier índice asociado durante la ejecución de DDL de indexación. Por ejemplo, mientras se está reconstruyendo un índice cluster, se puede seguir haciendo actualizaciones a los datos y consultas sobre estos datos. Nuevas herramientas integradas SQL Server 2005 introduce el SQL Server Studio, una suite de herramientas de gestión integradas. Este nuevo conjunto incluye nuevas funcionalidades para desarrollo, implantación y resolución de problemas de Bases de Datos SQL, así como mejoras de las funcionalidades anteriores. Aislamiento de Imágenes (SI) Se dispone de un nuevo nivel de aislamiento de imagen de BBDD (“SnapshotIsolation”, SI) a nivel de base de datos. SI permite a los usuarios acceder a la última operación realizada utilizando una vista transitoria consistente de la 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 6. Base de Datos Avanzada Base de Datos. Esta funcionalidad ofrece una escalabilidad mayor para implementaciones de bases de datos extremadamente grandes. Particionado de Datos El particionado de datos se ha mejorado con particiones nativas de tablas e índices, posibilitando soluciones de escalabilidad horizontal. Al particionar tablas de bases de datos muy grandes, el rendimiento de las consultas a la base de datos se mejora notablemente. Backups duplicados (“mirroredbackup”) SQL Server 2005 incluye un nuevo soporte para volúmenes de backup espejados, aumentando la disponibilidad de las copias de seguridad de SQL Server. La posibilidad de replicar el backup permite resolver posibles problemas de corrupción del medio físico de copia. Restauración online SQL Server 2005 permitirá realizar una operación de recuperación mientras una instancia de SQL Server está activa. La restauración online mejora la disponibilidad de SQL Server, ya que únicamente los datos que se están recuperando quedan como no disponibles. El resto de la base de datos permanece online y disponible. Recuperación rápida Esta característica mejora la disponibilidad de las bases de datos de SQL Server con una nueva opción. Los usuarios podrán reconectarse a una base de datos en recuperación después de que realizar un “roll forward” sobre el log de transacciones. Conexión de Administrador dedicada SQL Server 2005 introduce la conexión de administración dedicada, que pueden utilizar los administradores de BBDD para acceder a un servidor en explotación aun cuando el servidor está bloqueado o no disponible por cualquier motivo. Así, los administradores podrán ejecutar funciones de diagnóstico, o sentencias Transact SQL, a fin de poder resolver problemas en el servidor. Mejoras en la Replication Para bases de datos distribuidas móviles, SQL Server 2005 proporciona una serie de funcionalidades de replicación extremo a extremo, incluyendo la posibilidad de publicar bases de datos Oracle. SQL Server 2005 incluirá nuevas mejoras a las herramientas y sobre la escalabilidad de la replicación también. Las características de Desarrollo Característica Descripción Soporte para .NET Framework SQL Server 2005 introduce la posibilidad de desarrollar objetos de base de datos en lenguajes .NET. Pueden crearse Objetos de código, incluyendo Funciones, Procedimientos y Triggers en lenguajes como C# y VB.NET. Se pueden crear también dos nuevos objetos en estos lenguajes: User- DefinedTypes y Agregados. Tecnologías XML Las tecnologías XML son un estándar importante y ampliamente aceptado para distribuir datos entre diferentes aplicaciones sobre redes locales e Internet. Microsoft SQL Server 2005 soporta el almacenamiento nativo de documentos XML, especificación de consultas con XML y devolución de resultado de consultas como documentos XML. ADO.NET Versión 2.0 Desde el nuevo soporte para tipos SQL a “Multiple Active Result Set”, ADO .NET supone una evolución de los métodos de acceso y manipulación de datos, para conseguir una mayor escalabilidad y flexibilidad. Mejoras en Transact-SQL SQL Server 2005 introduce muchas posibilidades nuevas para el desarrollo de aplicaciones de bases de datos escalables. Estas mejoras incluyen el manejo de errores, nuevas posibilidades de consultas recursivas y soporte para 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 7. Base de Datos Avanzada nuevas funcionalidades del motor de SQL Server. Gestor de Servicio SQL El Gestor de Servicio SQL (SQL ServiceBroker) ofrece un marco para aplicaciones distribuidas orientado a aplicaciones de línea de negocios a gran escala. Servicios de Notification Los Servicios de Notificación (“Notification Services”) permiten construir aplicaciones de notificación mejoradas, capaces de expedir información personalizada en el momento en que se genera, como puede ser alertas de cotizaciones de bolsa, nuevas suscripciones, alertas de envío de paquetes, o cambios en las tarifas de billetes de avión, a cualquier dispositivo y a millones de suscriptores. Servicios Web En SQL Server 2005 , los desarrolladores pueden crear servicios Web en la capa de base de datos, convirtiendo a SQL Server en un servidor HTTP. Esta capacidad supone un nuevo modelo de acceso a los datos para aplicaciones basadas en Web Services. Soporte para Xquery SQL Server 2005 incluye funcionalidades Xquery de altas prestaciones, que permiten la manipulación de objetos XML en la capa de datos, así como un nuevo juego de herramientas de creación de Xquery. Mejoras en la Búsqueda de Texto Completo SQL Server 2005 incluirá soporte para aplicaciones de texto completo ampliadas. Las funcionalidades de catálogo se han mejorado para proporcionar una mayor flexibilidad sobre el conjunto de datos que se catalogan. El rendimiento de las funciones de consulta y la escalabilidad han mejorado sensiblemente. Una serie de nuevas herramientas de gestión permiten un mayor control de la implementación de texto completo. Mejoras en Seguridad SQL Server 2005 incorpora un nuevo modelo de seguridad que separa a los usuarios de los objetos, proporciona un acceso muy granular y un mejor control de los accesos a los datos. Además, todas las tablas del sistema se implementan ahora como Vistas, lo que redunda en un mayor control sobre los objetos de sistema de la Base de Datos. Las características de Business Intelligence Característica Descripción Servicios de Análisis Con SQL Server 2005, los Servicios de Análisis (Analysis Services) se mueven en el entorno del análisis en tiempo real. Desde mejoras en la escalabilidad hasta una integración profunda con Microsoft Office, SQL Server 2005 amplía el concepto de “businessintelligence” a todos los niveles de su negocio. Servicios de Transformación de Datos (DTS) Los Servicios de Transformación de Datos (DTS) son un conjunto de herramientas gráficas y objetos programables que pueden usarse para extraer, transformar y cargar datos (ETL) desde fuentes muy diversas y llevarlas a un destino único o múltiples destinos. Data Transformation Services (DTS) para Microsoft SQL Server 2005 introduce un rediseño completo para proporcionar una plataforma ETL integral. Data Mining SQL Server 2005 introduce cuatro nuevos algoritmos de Data Mining, así como herramientas y asistentes mejorados, haciendo que el data mining sea más accesible a negocios de cualquier tamaño. Servicios de Reporting Servicios de Reporting permite a los negocios integrar de forma sencilla datos desde fuentes heterogéneas y data warehouses en informes ricos, interactivos y gestionables, que pueden localizarse y consultarse en intranets, extranets y en Internet. 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 8. Base de Datos Avanzada Soporte de Servicios de Análisis en Cluster Esta funcionalidad mejora la disponibilidad de los Servicios de Análisis con soporte para clusters con conmutación de nodos, soporte mejorado para múltiples instancias y soporte para backup y recuperación de objetos y datos de Servicios de Análisis. Indicadores de Rendimiento Principales Los Indicadores de Rendimiento Principales (“Key Performance Indicators” , KPI) permiten definir métricas de negocio en formato gráfico, adaptables, para ayudar a generar y hacer el seguimiento de entornos de prueba corporativos. Escalabilidad y Rendimiento Se ha mejorado la escalabilidad y el rendimiento de los Servicios de Análisis de SQL Server 2005 por medio de características como el proceso de partición paralelo, creación de particiones ROLAP y HOLAP remotas, cubos particionados distribuidos, cálculos persistentes y cache proactivo. Cubo en un solo click Cuando se crea un cubo en un proyecto de Data Warehouse, el asistente para creación de Cubos incluye una opción para habilitar la detección de cubos y sugerencias con un solo click. Esta tecnología de cubos en un solo click de SQL Server 2005 examina las relaciones en una vista del origen de datos y aporta sugerencias. Mejoras en la Arquitectura SQL Server 2005 introduce una nueva arquitectura de Servicios de Transformación de Datos (DTS). La arquitectura consiste en dos motores: El Runtime de Transformación de Datos (DTR). Este motor ejecuta paquetes DTS, tareas DTS, hace seguimiento de la ejecución del paquete y proporciona servicios para las tareas. El Pipeline de Transformación de Datos (DTP). El motor DTP extrae datos de las fuentes, aplica las transformaciones contra las columnas de datos y carga los datos en los sistemas de almacenamiento. Integración con los informes de Office System Los reports emitidos por el servidor de reports pueden ejecutarse en el contexto de SharePoint Portal Server y aplicaciones Office, como Word y Excel. Los usuarios de SharePoint pueden utilizar las funcionalidades de SharePoint para suscribirse a informes, crear nuevas versiones de los informes y distribuirlos. Los usuarios pueden también abrir reports en Word o Excel para ver versiones en HTML de los mismos. Los usuarios de SQL Server y Servicios de Análisis pueden definir reports basados en consultas contra bases de datos relacionales y multidimensionales. Las consultas definidas con el QueryBuilder pueden procesarse utilizando las posibilidades de proceso de datos incorporado al servidor de informes. CREAR, MODIFICAR Y ELIMINAR TABLAS. CREAR TABLAS: En el modelo relacional la información de una base de datos se almacena en tablas. Para saber más sobre las tablas y como se almacena la información de BD La creación de la base de datos debe comenzar por con la creación de una o más tablas. Para ello utilizaremos la sentencia CREATE TABLE. La sintaxis de la sentencia es la siguiente: 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 9. Base de Datos Avanzada CREATE TABLE <nombre_tabla> ( <nombre_campo><tipo_datos(tamaño)> [null | notnull] [default <valor_por_defecto>] { ,<nombre_campo><tipo_datos(tamaño)> [null | notnull] [default <valor_por_defecto>]} [ , constraint <nombre> primary key (<nombre_campo>[ ,...n ])] [ , constraint <nombre> foreign key (<nombre_campo>[ ,...n ]) references <tabla_referenciada> ( <nombre_campo> [ ,...n ] ) ] ); Ejemplo: Vamos a simular una base de datos para un negocio de alquiler de coches, por lo que vamos a empezar creando una tabla para almacenar los coches que tenemos. CREATE TABLE tCoches ( matricula char(8) notnull, marca varchar(255) null, modelo varchar(255) null, color varchar(255) null, numero_kilometros numeric(14,2) null default 0, constraint PK_Coches primary key (matricula) ); En este ejemplo creamos una tabla llamada tCoches con cinco campos (matricula, marca, modelo, color, numero_kilometros). Nótese que se han omitido las tildes y los espacios a propósito. Nunca cree campos que contengan caracteres específicos de un idioma (tildes, eñes, ...) ni espacios. Las claves primarias y externas (o foraneas) se pueden implementar directamente a través de la instrucción CREATE TABLE, o bien se pueden agregar a través de sentencias ALTER TABLE. Cada gestor de bases de datos implementa distintas opciones para la instrucción CREATE TABLE, pudiendo especificarse gran cantidad de parámetros y pudiendo variar el nombre que damos a los tipos de datos, pero la sintaxis estándar es la que hemos mostrado aquí. Si queremos conocer más acerca de las opciones de CREATE TABLE lo mejor es recurrir a la documentación de nuestro gestor de base de datos MODIFICAR TABLAS: En ocasiones puede ser necesario modificar la estructura de una tabla, comúnmente para añadir un campo o restricción. Para ello disponemos de la instrucción ALTER TABLE. ALTER TABLE nos va a permitir: Añadir campos a la estructura incial de una tabla. Añadir restricciones y referencias. Para añadir un campo a una tabla existente: ALTER TABLE <nombre_tabla> ADD <nombre_campo><tipo_datos(tamaño)> 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 10. Base de Datos Avanzada [null |notnull] [default <valor_por_defecto>] { , <nombre_campo><tipo_datos(tamaño)> [null |notnull] [default <valor_por_defecto>]} ; Ejemplo: ALTER TABLE tCoches ADD num_plazas integernull default 5; En este ejemplo añadimos el campo num_plazas a la tabla tCoches que habiamos creado en el apartado anterior. Para añadir una clave primaria vamos a crear una tabla de cliente y le añadiremos la clave primaria ejecutando una sentencia alter table: Creamos la tabla clientes y le añadimos una reestricción primary key a la que damos el nombre PK_tClientes en el campo codigo. CREATE TABLE tClientes ( codigo integer notnull, nombre varchar(255) notnull, apellidos varchar(255) null, nif varchar(10) null, telefono varchar(9) null, movil varchar(9) null ); ALTER TABLEtClientesADD CONSTRAINTPK_tClientesprimary key (codigo); Solo podemos modificar una única tabla a la vez con ALTER TABLE, para modificar más de una tabla debemos ejecutar una sentencia ALTER TABLE por tabla. Para añadir una clave externa (o foranea) necesitamos una tercera tabla en nuestra estructura. Por un lado tenemos la tabla tCoches y la tabla tClientes, ahora vamos a crear la tabla tAlquileres que será la encargada de "decirnos" que clientes han alquilado un coche. CREATE TABLE tAlquileres ( codigo integer not null, codigo_cliente integer not null, matricula char(8) not null, fx_alquiler datetime not null, fx_devolucion datetime null ); ALTER TABLEtAlquileresADD CONSTRAINTPK_tAlquileresprimary key (codigo), CONSTRAINT FK_Clientesforeign key (codigo_cliente) referencestClientes (Codigo), CONSTRAINTFK_Cochesforeign key (matricula) 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 11. Base de Datos Avanzada references tCoches (matricula); Bien, en este código creamos la tabla tAlquileres, y luego mediante una sentencia ALTER TABLE añadimos una clave primaria llamada PK_tAlquileres en el campo codigo, una clave externa llamada FK_Clientes referenciada al codigo de la tabla tClientes, y por último otra clave externa llamada FK_Coches referenciada al campo matricula de la tabla tCoches. Nota:Cuando creamos una clave externa el campo referenciado y el que sirve de referencia deben ser del mismo tipo de datos. Si somos observadores nos daremos cuenta que los campos que sirven de referencia a las claves foraneas son las claves primarias de sus tablas. Sólo podemos crear claves externas que referencien claves primarias. Al igual que ocurria con la sentencia CREATE TABLE cada gestor de bases de datos implementa sus mejoras, siendo la mejor forma de conocerlas recurrir a la documentación del gestor de bases de datos. En principio, para borrar columnas de una tabla debemos: 1. Crear una tabla con la nueva estructura. 2. Transferir los datos 3. Borrar la tabla original. y digo en principio, porque como ya hemos comentado según el gestor de bases de datos con el que trabajemos podremos realizar esta tarea a través de una sentencia ALTER TABLE. ELIMINAR TABLAS: Podemos eliminar una tabla de una base de datos mediante la instrucción DROP TABLE. DROP TABLE <nombre_tabla>; La instrucción DROP TABLE elimina de forma permanente la tabla y los datos en ella contenida. Si intentamos eliminar una tabla que tenga registros relacionados a través de una clave externa la instrucciónDROP TABLE fallará por integridad referencial. Cuando eliminamos una tabla eliminamos también sus índices. INGRESAR, MODIFICAR Y ELIMINAR REGISTROS. INGRESAR REGISTRO: Los registros pueden ser introducidos a partir de sentencias que emplean la instrucción Insert. La sintaxis utilizada es la siguiente: Insert Into nombre_tabla (nombre_campo1, nombre_campo2,...) Values (valor_campo1, valor_campo2...) Un ejemplo sencillo a partir de nuestra tabla modelo es la introducción de un nuevo cliente lo cual se haría con una instrucción de este tipo: Insert Into clientes (nombre, apellidos, dirección, población, codigopostal, email, pedidos) 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 12. Base de Datos Avanzada Values ('Henrry', 'Carriel', 'vinces', 'vinces', '123', henrrydavids_carriel@hotmail.com', 3) Como puede verse, los campos no numéricos o booleanos van delimitados por apostrofes: '. También resulta interesante ver que el código postal lo hemos guardado como un campo no numérico. Esto es debido a que en determinados países (europeos) los códigos postales contienen también letras. Aunque, de todos modos, puede que sea más cómodo utilizar un programa con interfaz gráfica, como Access, que nos puede servir para crear las tablas en bases de datos del propio Access o por ODBC a otras bases de datos como SQL Server o MySQL. Por supuesto, no es imprescindible rellenar todos los campos del registro. Eso sí, puede ser que determinados campos sean necesarios. Estos campos necesarios pueden ser definidos cuando construimos nuestra tabla mediante la base de datos. MODIFICAR REGISTRO: Update es la instrucción del lenguaje SQL que nos sirve para modificar los registros de una tabla. Como para el caso de Delete, necesitamos especificar por medio de Where cuáles son los registros en los que queremos hacer efectivas nuestras modificaciones. Además, obviamente, tendremos que especificar cuáles son los nuevos valores de los campos que deseamos actualizar. La sintaxis es de este tipo: Update nombre_tabla Set nombre_campo1 = valor_campo1, nombre_campo2 = valor_campo2,... Where condiciones_de_selección Un ejemplo aplicado: Update clientes Set nombre='Davids' Where nombre='Henrry' Mediante esta sentencia cambiamos el nombre Henrry por el de Davids en todos los registros cuyo nombre sea Henrry. Aquí también hay que ser cuidadoso de no olvidarse de usar Where, de lo contrario, modificaríamos todos los registros de nuestra tabla. Update producto Set precio=12,50, descuento=15% Esa sentencia modificaría el campo precio y el campo descuento en todos los productos de la tabla producto. Si tenemos una tabla con miles de productos con esa sentencia se actualizarían todos, de modo que la totalidad de los registros tendrían el mismo precio y el mismo descuento. Os aseguro que este problema de olvidarse el Where no es algo extraño que ocurra, incluso para programadores experimentados y puede acarrear problemas serios. BORRAR REGISTRO: Para borrar un registro nos servimos de la instrucción Delete. En este caso debemos especificar cual o cuales son los registros que queremos borrar. Es por ello necesario establecer una selección que se llevara a cabo mediante la cláusula Where. La forma de seleccionar se verá detalladamente en capítulos posteriores. Por ahora nos contentaremos de mostrar cuál es el tipo de sintaxis utilizado para efectuar estas supresiones: 7mo “A” Sistemas Henrry Davids Carriel Álvarez
  • 13. Base de Datos Avanzada Delete From nombre_tabla Where condiciones_de_selección Ej: Delete From clientes Delete From clientes Where nombre='Henrry' Hay que tener cuidado con esta instrucción ya que si no especificamos una condición con Where, lo que estamos haciendo es borrar toda la tabla: 7mo “A” Sistemas Henrry Davids Carriel Álvarez