sql (lenguaje de consulta estructurado) - unitec.edu.ve · no incluye las herramientas avanzadas de...
TRANSCRIPT
![Page 1: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/1.jpg)
![Page 2: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/2.jpg)
SQL (Lenguaje de Consulta Estructurado):
Es un lenguaje de consulta estructurado establecidoclaramente como lenguaje de alto nivel estándar parasistemas de base de datos relacionales.
ANSI (Instituto Americano de Normalización) e ISO(Organismo Internacional de Normalización) fueron losencargados de publicar este lenguaje como estándar.
Es por esto que este lenguaje lo vas a encontrar encualquier DBMS que estés trabajando.
![Page 3: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/3.jpg)
![Page 4: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/4.jpg)
Versión Descripción
SQL Server 2008 Express Edition
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 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.
SQL Server 2008 Workgroup Edition
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 datos. No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales que requieren sincronizar sus
datos.
SQL Server 2008 Standard Edition
Pensada para empresas de mediano tamaño, cuenta con herramientas avanzadas para la administración y
análisis de datos. Orientada a aplicaciones departamentales.
![Page 5: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/5.jpg)
SQL Server 2008 Enterprise Edition
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
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.
SQL Server 2008 Developer Edition
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
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.
![Page 6: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/6.jpg)
SQL agrupa tres tipos de sentencias con objetivosparticulares en los siguientes lenguajes:
Lenguaje de Definición de Datos (DDL)
Lenguaje de Manipulación de Datos (DML)
Lenguaje de Control de Datos (DCL)
![Page 7: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/7.jpg)
Grupo de sentencias SQL que soportan la definición ydeclaració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)
![Page 8: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/8.jpg)
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
![Page 9: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/9.jpg)
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 trabajandosobre ella, para trabajar sobre la base de datos debemos utilizar el comando USE eindicarle el Nombre dado a la base de datos, ejemplo:
USE CURSO
![Page 10: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/10.jpg)
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",
... )
![Page 11: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/11.jpg)
Antes de crear una nueva tabla debemos conocer ciertosaspectos:
1. 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 permitirestablecer restricciones a mi tabla.
![Page 12: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/12.jpg)
Numéricos Exacto
Numérico Aproximado
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)
float real
![Page 13: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/13.jpg)
Fecha y Hora
Cadenas de Caracteres.
Cadena de Caracteres Unicode
date datetime
Nchar (Longitud fija)Nvarchar (Longitud Variable)
Char (Longitud fija)Varchar (Longitud Variable)
![Page 14: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/14.jpg)
UNICODE:
Unicode es un estándar universal para la codificación decaracteres para el intercambio y despliegue de losprincipales lenguajes escritos.
Cubre los lenguajes de las Américas, Europa, Medio Este,África, India, Asia y el Pacífico, así como para escritoshistóricos y símbolos técnicos.
![Page 15: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/15.jpg)
IDENTITY (Identidad): Indica que la nueva columna es unacolumna 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 lasrestricciones PRIMARY KEY como identificadores de fila únicos dela tabla. La propiedad IDENTITY se puede asignar a columnastinyint, smallint, int, bigint, decimal(p,0) o numeric(p,0). Solo sepuede crear una columna de identidad para cada tabla.
En este caso, deben especificarse el valor de inicialización y elincremento, o ninguno de esto valores. Si no se especificaninguno, el valor predeterminado es (1,1).
![Page 16: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/16.jpg)
CONSTRAINT (Restricción): Es una palabra clave opcional queindica el principio de la definición de una restricción PRIMARYKEY, NOT NULL, UNIQUE, FOREIGN KEY o CHECK. Para obtenermás información.
Constraint_name Es el nombre de una restricción. Losnombres de restricción deben ser únicos en el esquema alque pertenece la tabla.
NOT NULL (No Nulo): Determina si se permiten valores NULL enla columna.
CHECK (Verificación): La restricción CHECK asegura que todos losvalores en una columna cumplan ciertas condiciones.
![Page 17: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/17.jpg)
DEFAULT (Cláusula por defecto): indica el valor de defecto quetomará la columna si no se le asigna uno explícitamente en elmomento en que se crea la línea.
![Page 18: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/18.jpg)
Ejemplo:
SeleccionIdSeleccion
Nombre
IdContinente
ContinenteIdContinente
Nombre
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 deninguna otra tabla
![Page 19: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/19.jpg)
Ejemplo:
SeleccionIdSeleccion
Nombre
IdContinente
ContinenteIdContinente
Nombre
Se debe crear primero la tabla Continente, porque estatabla no tiene campo comunes o llaves foráneas.
Luego se debe crear la Selección
![Page 20: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/20.jpg)
Ejemplo:
SeleccionIdSeleccion
Nombre
IdContinente
ContinenteIdContinente
Nombre
Para nuestro primer caso vamos a crear los campos de lasiguiente manera:
IdContinente, tipo entero y auto numérico clave primaria.
Nombre, tipo nvarchar(100), not null.
![Page 21: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/21.jpg)
Código de ejemplo nro.1 : Sin Constraint
Código de ejemplo nro.2 : Con Constraint
![Page 22: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/22.jpg)
Ejemplo:
SeleccionIdSeleccion
Nombre
IdContinente
ContinenteIdContinente
Nombre
Para nuestro primer caso vamos a crear los campos de lasiguiente manera:
IdSelección, tipo entero y auto numérico clave primaria.
Nombre, tipo nvarchar(100), not null.
IdContinente, tipo entero, not null.
![Page 23: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/23.jpg)
Código de Ejemplo:
![Page 24: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/24.jpg)
Ejemplo 2:
EditorialIdEditorial
Descripcion
LibroIdLibro
Titulo
IdEditorial
LibroTipoLibro
IdLibro
IdTipoLibro
TipoLibroIdTipoLibro
Descripcion
![Page 25: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/25.jpg)
Orden de Creación:
EditorialIdEditorial
Descripcion
LibroIdLibro
Titulo
IdEditorial
LibroTipoLibro
IdLibro
IdTipoLibro
TipoLibroIdTipoLibro
Descripcion
![Page 26: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/26.jpg)
Código Tipo Libro:
EditorialIdEditorial
Descripcion
LibroIdLibro
Titulo
IdEditorial
LibroTipoLibroIdLibro
IdTipoLibro
TipoLibroIdTipoLibro
Descripcion
IdTipoLibro, tipo entero y autonumérico clave primaria.
Descripción, tipo nvarchar(75), not null.
![Page 27: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/27.jpg)
Código Editorial:
EditorialIdEditorial
Descripcion
LibroIdLibro
Titulo
IdEditorial
LibroTipoLibroIdLibro
IdTipoLibro
TipoLibroIdTipoLibro
Descripcion
IdEditorial, tipo entero y auto numéricoclave primaria.
Descripción, tipo nvarchar(100), notnull.
![Page 28: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/28.jpg)
Código Libro:
EditorialIdEditorial
Descripcion
LibroIdLibro
Titulo
IdEditorial
LibroTipoLibro
IdLibro
IdTipoLibro
TipoLibroIdTipoLibro
Descripcion
IdLibro, tipo entero y auto numéricoclave primaria.
Titulo, tipo nvarchar(150), not null.
IdEditorial, tipo entero, not null.
![Page 29: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/29.jpg)
Código LibroTipoLibro:
EditorialIdEditorial
Descripcion
LibroIdLibro
Titulo
IdEditorial
LibroTipoLibroIdLibro
IdTipoLibro
TipoLibroIdTipoLibro
Descripcion
IdLibro, tipo entero not null.
IdTipoLibro, tipo entero, not null.
![Page 30: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/30.jpg)
Drop Database:
Elimina una base de datos de forma permanente.
Ejemplo:Drop Database Curso.
Drop table:
Elimina una tabla de forma permanente
EjemploDrop table Tablita
![Page 31: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/31.jpg)
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:
SeleccionIdSeleccion
Nombre
IdContinente
ContinenteIdContinente
Nombre
![Page 32: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/32.jpg)
ALTER
Use las instrucciones ALTER para modificar la definición deobjetos existentes.
Alter Table:
Una vez que se crea la tabla en la base de datos, hay muchasocasiones donde uno debe realizar algún cambio en la estructurade la tabla. Los casos típicos incluyen los siguientes:
Agregar una columna Eliminar una columna Cambiar el tipo de datos para una columna
![Page 33: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/33.jpg)
Agregar una Columna
Para agregar una columna utilizamos nuestra sentencia ALTERcombinada con la clausula ADD
EditorialIdEditorial
Descripcion
LibroIdLibro
Titulo
IdEditorial
LibroTipoLibro
IdLibro
IdTipoLibro
TipoLibroIdTipoLibro
Descripcion
Se nos pide agregar a nuestra tabla Libroun nuevo campo llamado NumeroPaginas,el cual será de tipo entero y not null.
Para verificar que el cambio se efectuó de forma correcta,ejecuto el siguiente código:
Sp_Columns Libro
![Page 34: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/34.jpg)
Eliminar una Columna
Para eliminar una columna utilizamos nuestra sentencia ALTERcombinada con la clausulas DROP COLUMN
Se nos pide eliminar de nuestra tablaLibro el campo llamado NumeroPaginas.
Para verificar que el cambio se efectuó de forma correcta,ejecuto el siguiente código:
Sp_Columns Libro
LibroIdLibro
Titulo
IdEditorial
NumeroPaginas
![Page 35: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/35.jpg)
Cambiar el tipo de datos de una Columna
Para cambiar el tipo de dato de una columna utilizamos nuestrasentencia ALTER combinada con la clausulas ALTER COLUMN
EditorialIdEditorial
Descripcion
LibroIdLibro
Titulo
IdEditorial
LibroTipoLibro
IdLibro
IdTipoLibro
TipoLibroIdTipoLibro
Descripcion
Se nos pide cambiar el tipo de datos delcampo Titulo de nuestra tabla Libro, elnuevo tipo de datos será nchar(150).
Para verificar que el cambio se efectuó de forma correcta,ejecuto el siguiente código:
Sp_Columns Libro
![Page 36: SQL (Lenguaje de Consulta Estructurado) - unitec.edu.ve · No incluye las herramientas avanzadas de las versiones superiores. Especializada para aplicaciones en distintas sucursales](https://reader031.vdocuments.site/reader031/viewer/2022022617/5ba6821109d3f201538c1252/html5/thumbnails/36.jpg)
1. Investigar:
Sintaxis correcta para agregar una clave Primaria utilizando lasentencia ALTER
Sintaxis correcta para agregar una clave Foránea utilizando lasentencia ALTER
2. Escribir el código necesario para Crear el siguiente modelo.
ClienteIdCliente
Nombre
Apellido
Nit
IdCiudad
Telefono
CiudadIdCiudad
Nombre
CodigoPostal
PedidoIdPedido
Numero
Fecha
IdCliente
Impuesto
envio
total