Preview only show first 6 pages with water mark for full document please download

Transcript

SQL (Lenguaje de Consulta Estructurado): Es un lenguaje de consulta estructurado establecido claramente como lenguaje de alto nivel estándar para sistemas de base de datos relacionales. ANSI (Instituto Americano de Normalización) e ISO (Organismo Internacional de Normalización) fueron los encargados de publicar este lenguaje como estándar. Es por esto que este lenguaje lo vas a encontrar en cualquier DBMS que estés trabajando. Versión Descripción Versión básica del servidor, limitada en el número de usuarios y en cuanto al volumen de datos a gestionar. Es la versión que Microsoft nos ofrece gratuitamente y sin duda es la versión ideal para SQL Server 2008 Express Edition comenzar a trabajar y desde la cual podemos ir ampliando a versiones superiores si nos fuese necesario. Permite ser distribuida con programas de desarrollo propios con su correspondiente licencia. Orientada a pequeñas empresas, no tiene límite de números de usuarios ni de capacidad de almacenamiento en cuanto al tamaño de la base de SQL Server 2008 Workgroup Edition datos. No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales que requieren sincronizar sus datos. Pensada para empresas de mediano tamaño, cuenta con herramientas avanzadas para la administración y SQL Server 2008 Standard Edition análisis de datos. Orientada a aplicaciones departamentales. Esta edición está preparada para gestionar las empresas de mayor tamaño, ya que ofrece mayor potencia que las anteriores. Y además de añadir servicios avanzados y estar preparada para trabajar con multiprocesadores de 64 Bits, amplias memorias RAM. Podemos hablar de bases de datos con tamaños dados SQL Server 2008 Enterprise Edition en Terabytes, para que puedas hacer una idea de la cantidad de información que puede llegar a gestionar con fiabilidad. Tiene la capacidad de trabajar con Clústers de ordenadores, de modo que el fallo de uno de ellos active otro ordenador que se encontraba pasivo hasta el momento del error. Se trata de una versión que cuenta con las mismas características que su versión anterior, con la diferencia de que va dirigida a desarrolladores. ¿Porque si tienen las mismas características, no se trata de la misma edición? Esta versión especial está limitada por su SQL Server 2008 Developer Edition licencia que no permite que se ejecute en entornos de explotación y sólo se permite para desarrollo. Otra diferencia importante, es que permite ser instalada en Sistemas Operativos Windows XP Professional Edition, o Windows Vista. SQL agrupa tres tipos de sentencias con objetivos particulares en los siguientes lenguajes:    Lenguaje de Definición de Datos (DDL) Lenguaje de Manipulación de Datos (DML) Lenguaje de Control de Datos (DCL) Grupo de sentencias SQL que soportan la definición y declaración de los objetos de la base de datos. Objetos de una base de datos       Base de datos (DATABASE) Tablas (TABLE) Procedimientos almacenados (STORE PROCEDURE) Vistas (VIEW) Disparadores (TRIGGER) Índices (INDEX) Comandos del lenguaje de Definición de Datos: Nombre Descripción CREATE Utilizando para crear cualquier objeto de la base de datos DROP Empleado para eliminar algún objeto de la base de datos ALTER Utilizado para modificar algún objeto de mi base de datos Create Database: Crea una base de datos con el nombre dado. Ejemplo: Create Database Curso. Nota: el hecho de crear la base de datos no significa que estemos ya trabajando sobre ella, para trabajar sobre la base de datos debemos utilizar el comando USE e indicarle el Nombre dado a la base de datos, ejemplo: USE CURSO Create Table: Crea una nueva tabla. La sintaxis SQL para CREATE TABLE es: CREATE TABLE "nombre_tabla" ("columna 1" "tipo_de_datos_para_columna_1", "columna 2" "tipo_de_datos_para_columna_2", ... ) Antes de crear una nueva tabla debemos conocer ciertos aspectos: Los tipos de datos soportados por el DBMS. 2. El orden en que debo crear cada una de mis tablas 3. Conocer algunas sentencias que van a permitir establecer restricciones a mi tabla. 1.  Numéricos Exacto Bigint (8 bytes) Numeric (P , S) Bit (Almacena 0 y 1) Smallint (2 bytes) Decimal (P , S) Smallmoney (4 bytes) Int (4 bytes) Tinyint (1 byte) Money (8 bytes)  Numérico Aproximado float real  Fecha y Hora date datetime  Cadenas de Caracteres. Char (Longitud fija) Varchar (Longitud Variable)  Cadena de Caracteres Unicode Nchar (Longitud fija) Nvarchar (Longitud Variable) UNICODE: Unicode es un estándar universal para la codificación de caracteres para el intercambio y despliegue de los principales lenguajes escritos. Cubre los lenguajes de las Américas, Europa, Medio Este, África, India, Asia y el Pacífico, así como para escritos históricos y símbolos técnicos. IDENTITY (Identidad): Indica que la nueva columna es una columna de identidad. Cuando se agrega una fila nueva a la tabla, el Motor de base de datos proporciona un valor incremental único para la columna. Las columnas de identidad se utilizan normalmente con las restricciones PRIMARY KEY como identificadores de fila únicos de la tabla. La propiedad IDENTITY se puede asignar a columnas tinyint, smallint, int, bigint, decimal(p,0) o numeric(p,0). Solo se puede crear una columna de identidad para cada tabla. En este caso, deben especificarse el valor de inicialización y el incremento, o ninguno de esto valores. Si no se especifica ninguno, el valor predeterminado es (1,1). CONSTRAINT (Restricción): Es una palabra clave opcional que indica el principio de la definición de una restricción PRIMARY KEY, NOT NULL, UNIQUE, FOREIGN KEY o CHECK. Para obtener más información. Constraint_name Es el nombre de una restricción. Los nombres de restricción deben ser únicos en el esquema al que pertenece la tabla. NOT NULL (No Nulo): Determina si se permiten valores NULL en la columna. CHECK (Verificación): La restricción CHECK asegura que todos los valores en una columna cumplan ciertas condiciones. DEFAULT (Cláusula por defecto): indica el valor de defecto que tomará la columna si no se le asigna uno explícitamente en el momento en que se crea la línea. Ejemplo: Continente Seleccion IdSeleccion IdContinente Nombre Nombre IdContinente  Verificamos las dos tablas  La tabla Selección tiene un campo común o llave foránea, que hace referencia al campo clave de la tabla Continente.  La tabla Continente no tiene ningún campo común de ninguna otra tabla Ejemplo: Continente Seleccion IdSeleccion IdContinente Nombre Nombre IdContinente  Se debe crear primero la tabla Continente, porque esta tabla no tiene campo comunes o llaves foráneas.  Luego se debe crear la Selección Ejemplo: Continente IdContinente Nombre Para nuestro primer caso vamos a crear los campos de la siguiente manera:  IdContinente, tipo entero y auto numérico clave primaria.  Nombre, tipo nvarchar(100), not null. Código de ejemplo nro.1 : Sin Constraint Código de ejemplo nro.2 : Con Constraint Ejemplo: Continente Seleccion IdSeleccion IdContinente Nombre Nombre IdContinente Para nuestro primer caso vamos a crear los campos de la siguiente manera:  IdSelección, tipo entero y auto numérico clave primaria.  Nombre, tipo nvarchar(100), not null.  IdContinente, tipo entero, not null. Código de Ejemplo: Ejemplo 2: TipoLibro IdTipoLibro Descripcion Libro IdLibro Titulo IdEditorial LibroTipoLibro IdLibro IdTipoLibro Editorial IdEditorial Descripcion Orden de Creación: TipoLibro IdTipoLibro Descripcion Libro IdLibro Titulo IdEditorial LibroTipoLibro IdLibro IdTipoLibro Editorial IdEditorial Descripcion Código Tipo Libro: TipoLibro IdTipoLibro Descripcion LibroTipoLibro IdLibro IdTipoLibro  IdTipoLibro, tipo entero y auto numérico clave primaria.  Descripción, tipo nvarchar(75), not null. IdEditorial LibroTipoLibro IdLibro Código Editorial: Editorial IdEditorial Descripcion IdTipoLibro  IdEditorial, tipo entero y auto numérico clave primaria.  Descripción, tipo nvarchar(100), not null. TipoLibro Código Libro: Libro IdLibro Titulo IdEditorial IdTipoLibro Descripcion  IdLibro, tipo entero y auto numérico clave primaria.  Titulo, tipo nvarchar(150), not null.  IdEditorial, tipo entero, not null. LibroTipoLibro IdLibro IdTipoLibro Editorial IdEditorial Descripcion Descripcion Código LibroTipoLibro: LibroTipoLibro IdLibro IdTipoLibro  IdLibro, tipo entero not null.  IdTipoLibro, tipo entero, not null. Drop Database: Elimina una base de datos de forma permanente. Ejemplo: Drop Database Curso. Drop table: Elimina una tabla de forma permanente Ejemplo Drop table Tablita DROP TABLE Al igual que el “Create Table” al momento de usar el “Drop Table” debe utilizar el orden Correcto, se debe:  Eliminar primero aquellas tablas que tienen campo comunes.  Eliminar al final aquellas tablas que no tengan campo comunes, Ejemplo: Continente Seleccion IdSeleccion Nombre IdContinente IdContinente Nombre ALTER Use las instrucciones ALTER para modificar la definición de objetos existentes. Alter Table: Una vez que se crea la tabla en la base de datos, hay muchas ocasiones donde uno debe realizar algún cambio en la estructura de la tabla. Los casos típicos incluyen los siguientes:  Agregar una columna  Eliminar una columna  Cambiar el tipo de datos para una columna Agregar una Columna TipoLibro Para agregar una columna utilizamos IdTipoLibro nuestra sentencia ALTER combinada con la clausula ADD Descripcion Libro IdLibro Titulo IdEditorial Se nos pide agregar a nuestra tabla Libro un nuevo campo llamado NumeroPaginas, el cual será de tipo entero y not null. LibroTipoLibro IdLibro IdTipoLibro Para verificar que el cambio se efectuó de forma correcta, ejecuto Editorial el siguiente código: IdEditorial Descripcion Sp_Columns Libro Eliminar una Columna Para eliminar una columna utilizamos nuestra sentencia ALTER combinada con la clausulas DROP COLUMN Libro IdLibro Titulo IdEditorial Se nos pide eliminar de nuestra tabla Libro el campo llamado NumeroPaginas. NumeroPaginas Para verificar que el cambio se efectuó de forma correcta, ejecuto el siguiente código: Sp_Columns Libro Cambiar el tipo de datos de una Columna TipoLibro Para cambiar el tipo de dato de una columna utilizamos nuestra IdTipoLibro Descripcion sentencia ALTER combinada con la clausulas ALTER COLUMN Libro IdLibro Titulo IdEditorial Se nos pide cambiar el tipo de datos del campo Titulo de nuestra tabla Libro, el nuevo tipo de datos será nchar(150). LibroTipoLibro IdLibro IdTipoLibro Para verificar que el cambio se efectuó de forma correcta, ejecuto Editorial el siguiente código: IdEditorial Descripcion Sp_Columns Libro 1. Investigar:  Sintaxis correcta para agregar una clave Primaria utilizando la sentencia ALTER  Sintaxis correcta para agregar una clave Foránea utilizando la sentencia ALTER 2. Escribir el código necesario para Crear el siguiente modelo. Pedido IdPedido Numero Fecha IdCliente Impuesto envio total Cliente IdCliente Ciudad IdCiudad Nombre Nombre Apellido CodigoPostal Nit IdCiudad Telefono