Base de Datos Avanzada       CREACION DE TABLAS EN SQL SERVER 2005.Este tipo de sentencias son especialmente útiles para b...
Base de Datos AvanzadaDel mismo modo podríamos crear la tabla de artículos con una sentencia como ésta:Create Table articu...
Base de Datos AvanzadaBINARY             1 byte            Para consultas sobre tabla adjunta de productos de bases de    ...
Base de Datos Avanzada                       TIPOS DE BASE DE DATOSSQL Server incluye varias bases de datos del sistema (M...
Base de Datos Avanzada        A partir de SQL Server 2005, también se utiliza al habilitar el modo de aislamiento        S...
Base de Datos Avanzada                                        Base de Datos. Esta funcionalidad ofrece una escalabilidad  ...
Base de Datos Avanzada                                             nuevas funcionalidades del motor de SQL Server.Gestor d...
Base de Datos AvanzadaSoporte de Servicios de Análisis en Cluster      Esta funcionalidad mejora la disponibilidad de los ...
Base de Datos AvanzadaCREATE TABLE <nombre_tabla>(<nombre_campo><tipo_datos(tamaño)>[null | notnull] [default <valor_por_d...
Base de Datos Avanzada[null |notnull] [default <valor_por_defecto>]{, <nombre_campo><tipo_datos(tamaño)>[null |notnull] [d...
Base de Datos Avanzadareferences tCoches (matricula);Bien, en este código creamos la tabla tAlquileres, y luego mediante u...
Base de Datos AvanzadaValues(Henrry, Carriel, vinces, vinces, 123, henrrydavids_carriel@hotmail.com, 3)Como puede verse, l...
Base de Datos AvanzadaDelete From nombre_tabla Where condiciones_de_selecciónEj:Delete From clientesDelete From clientes W...
Próxima SlideShare
Cargando en…5
×

Sql server 2005 (bda)henrry

2.282 visualizaciones

Publicado el

by henrry carriel

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
2.282
En SlideShare
0
De insertados
0
Número de insertados
1
Acciones
Compartido
0
Descargas
30
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Sql server 2005 (bda)henrry

  1. 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 cualestrabajan directamente con comandos SQL y no por medio de editores.Para crear una tabla debemosespecificar diversos datos: El nombre que le queremos asignar, los nombres de los campos y suscaracterísticas. Además, puede ser necesario especificar cuáles de estos campos van a ser índices yde qué tipo van a serlo.La sintaxis de creación puede variar ligeramente de una base de datos a otraya que los tipos de campo aceptados no están completamente estandarizados.A continuación osexplicamos someramente la sintaxis de esta sentencia y os proponemos una serie de ejemplosprácticos:Sintaxis:Create Table nombre_tabla(nombre_campo_1 tipo_1nombre_campo_2 tipo_2nombre_campo_n tipo_nKey(campo_x,...))Pongamos ahora como ejemplo la creación de la tabla pedidos que hemos empleado en capítulosprevios: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 longitudespecificada por el número entre paréntesis. Para id_pedido requerimos quedicho campo seincremente automáticamente (AUTO_INCREMENT) de una unidad a cada introducción de unnuevo registro para, de esta forma, automatizar su creación. Por otra parte, para evitar un mensaje deerror, 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 correctaexplotación a partir de las funciones previstas a tal efecto.Finalmente, definimos los índicesenumerándolos entre paréntesis precedidos de la palabra KEY o INDEX.7mo “A” Sistemas Henrry Davids Carriel Álvarez
  2. 2. Base de Datos AvanzadaDel 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 losnuméricos. Volvemos a recordar que en tablas que tienen campos comunes es de vital importanciadefinir estos campos de la misma forma para el buen funcionamiento de la base.Muchas son lasopciones que se ofrecen al generar tablas. No vamos a tratarlas detalladamente pues sale de loestrictamente práctico. Tan sólo mostraremos algunos de los tipos de campos que pueden serempleados en la creación de tablas con sus características: Tipo Bytes DescripciónINT 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álidosreconocidos por dichos tipos de datos. Los tipos de datos primarios son:Tipo de Datos Longitud Descripción7mo “A” Sistemas Henrry Davids Carriel Álvarez
  3. 3. Base de Datos AvanzadaBINARY 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/FalseBYTE 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ácterLONGBINARY Según se De cero 1 gigabyte. Utilizado para objetos OLE. necesiteTEXT 1 byte por De cero a 255 caracteres. carácterLa siguiente tabla recoge los sinónimos de los tipos de datos definidos:Tipo de Tipo de Datos Tipo de Datos Tipo de DatosDatosBINARY VARBINARY DOUBLE FLOAT FLOAT8 IEEEDOUBLE NUMBER NUMERICBIT BOOLEAN LOGICAL SHORT INTEGER2 LOGICAL1 YESNO SMALLINTBYTE INTEGER1 LONG INT INTEGER INTEGER4COUNTER AUTOINCREMENT LONGBINARY GENERAL OLEOBJECTCURRENCY MONEY LONGTEXT LONGCHAR MEMO NOTEDATETIME DATE TIME TIMESTAMP TEXT ALPHANUMERIC CHAR - CHARACTER STRING - VARCHARSINGLE FLOAT4 IEEESINGLE REAL VARIANT (No VALUE Admitido)7mo “A” Sistemas Henrry Davids Carriel Álvarez
  4. 4. Base de Datos Avanzada TIPOS DE BASE DE DATOSSQL Server incluye varias bases de datos del sistema (MASTER, MSDB, MODEL, TEMPDB,DISTRIBUTION, MSSQLSYSTEMRESOURCE), cada con unas finalidades específicas, que acontinuació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. 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 SQLServer 2005 ya no es posible actualizar directamente las tablas del catálogo del sistema, esdecir, 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 propiassentencias 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 DatosCaracterística DescripciónMirroring 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 la7mo “A” Sistemas Henrry Davids Carriel Álvarez
  6. 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 DesarrolloCaracterística DescripciónSoporte 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 para7mo “A” Sistemas Henrry Davids Carriel Álvarez
  7. 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 IntelligenceCaracterística DescripciónServicios 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. 8. Base de Datos AvanzadaSoporte 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 lastablas y como se almacena la información de BDLa creación de la base de datos debe comenzar por con la creación de una o más tablas. Para elloutilizaremos la sentencia CREATE TABLE.La sintaxis de la sentencia es la siguiente:7mo “A” Sistemas Henrry Davids Carriel Álvarez
  9. 9. Base de Datos AvanzadaCREATE 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 aempezar 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 contengancaracteres 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 lainstrucció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, pudiendoespecificarse gran cantidad de parámetros y pudiendo variar el nombre que damos a los tipos de datos, perola sintaxis estándar es la que hemos mostrado aquí. Si queremos conocer más acerca de las opcionesde CREATE TABLE lo mejor es recurrir a la documentación de nuestro gestor de base de datosMODIFICAR TABLAS:En ocasiones puede ser necesario modificar la estructura de una tabla, comúnmente para añadir un campo orestricció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. 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 tCochesADD num_plazas integernull default 5; En este ejemplo añadimos el campo num_plazas a la tabla tCoches que habiamos creado en el apartadoanterior. Para añadir una clave primaria vamos a crear una tabla de cliente y le añadiremos la clave primariaejecutando una sentencia alter table: Creamos la tabla clientes y le añadimos una reestricción primary key a la que damos el nombrePK_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 TABLEtClientesADDCONSTRAINTPK_tClientesprimary key (codigo); Solo podemos modificar una única tabla a la vez con ALTER TABLE, para modificar más de una tabladebemos ejecutar una sentencia ALTER TABLE por tabla. Para añadir una clave externa (o foranea) necesitamos una tercera tabla en nuestra estructura. Por unlado tenemos la tabla tCoches y la tabla tClientes, ahora vamos a crear la tabla tAlquileres que será laencargada 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 TABLEtAlquileresADDCONSTRAINTPK_tAlquileresprimary key (codigo),CONSTRAINT FK_Clientesforeign key (codigo_cliente) referencestClientes (Codigo),CONSTRAINTFK_Cochesforeign key (matricula)7mo “A” Sistemas Henrry Davids Carriel Álvarez
  11. 11. Base de Datos Avanzadareferences tCoches (matricula);Bien, en este código creamos la tabla tAlquileres, y luego mediante una sentencia ALTER TABLE añadimosuna clave primaria llamada PK_tAlquileres en el campo codigo, una clave externa llamada FK_Clientesreferenciada al codigo de la tabla tClientes, y por último otra clave externa llamada FK_Coches referenciada alcampo matricula de la tabla tCoches.Nota:Cuando creamos una clave externa el campo referenciado y el que sirve de referencia deben ser delmismo tipo de datos.Si somos observadores nos daremos cuenta que los campos que sirven de referencia a las claves foraneasson 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 susmejoras, 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 quetrabajemos 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 lainstrucció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 seharí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. 12. Base de Datos AvanzadaValues(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énresulta interesante ver que el código postal lo hemos guardado como un campo no numérico. Esto esdebido 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, comoAccess, que nos puede servir para crear las tablas en bases de datos del propio Access o por ODBC aotras bases de datos como SQL Server o MySQL.Por supuesto, no es imprescindible rellenar todos los campos del registro. Eso sí, puede ser quedeterminados campos sean necesarios. Estos campos necesarios pueden ser definidos cuandoconstruimos 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 enlos que queremos hacer efectivas nuestras modificaciones. Además, obviamente, tendremos queespecificar 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ónUn ejemplo aplicado:Update clientes Set nombre=Davids Where nombre=HenrryMediante esta sentencia cambiamos el nombre Henrry por el de Davids en todos los registros cuyonombre sea Henrry.Aquí también hay que ser cuidadoso de no olvidarse de usar Where, de lo contrario, modificaríamostodos 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 tablaproducto. Si tenemos una tabla con miles de productos con esa sentencia se actualizarían todos, demodo que la totalidad de los registros tendrían el mismo precio y el mismo descuento. Os aseguroque este problema de olvidarse el Where no es algo extraño que ocurra, incluso para programadoresexperimentados y puede acarrear problemas serios.BORRAR REGISTRO:Para borrar un registro nos servimos de la instrucción Delete. En este caso debemos especificar cualo cuales son los registros que queremos borrar. Es por ello necesario establecer una selección que sellevara a cabo mediante la cláusula Where.La forma de seleccionar se verá detalladamente en capítulos posteriores. Por ahora noscontentaremos de mostrar cuál es el tipo de sintaxis utilizado para efectuar estas supresiones:7mo “A” Sistemas Henrry Davids Carriel Álvarez
  13. 13. Base de Datos AvanzadaDelete From nombre_tabla Where condiciones_de_selecciónEj:Delete From clientesDelete From clientes Where nombre=HenrryHay que tener cuidado con esta instrucción ya que si no especificamos una condición con Where, loque estamos haciendo es borrar toda la tabla:7mo “A” Sistemas Henrry Davids Carriel Álvarez

×