Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Introducción a sql consultas. tablas, uniones
Tipo: Apuntes
1 / 33
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Preparado por: Alvaro E. García [email protected]
Preparado por: Alvaro E. García
Lenguaje de Manipulación de Datos (DML, Data Management Language)
Lenguaje de Control de Datos (DCL, Data Control Language)
Preparado por: Alvaro E. García
PASO Descripción
1
Definir en el disco duro, el área física que contendrá las tablas de la base de datos. Sentencia SQL --> CREATE DATABASE. Æ Tema 1 de este manual
2
Crear las diferentes tablas de la base de dato. Sentencia SQL --> CREATE TABLE Tema 4.2 del contenido de este curso.
3
Insertar las filas de las diferentes tablas, sin violar la integridad de datos. Sentencia SQL --> INSERT INTO. Tema 3.4.1 del contenido de este curso.
4
Actualizar los datos que cambien con el tiempo en las diferentes tablas. Sentencia SQL --> UPDATE. Tema 3.4. del contenido de este curso.
5
Eliminar las filas que ya no se requieran en las diferentes tablas. Sentencia SQL --> DELETE Tema 3.4.3 del contenido de este curso.
6
Realizar las consultas deseadas a las tablas de la base de datos a través de la poderosa sentencia de consultas del SQL, llamada SELECT. Tema 4.3 hasta 4.6 del contenido de este curso.
7
Dar nombre a las consultas. elaboradas en el paso No.6 cuando se requiera ocultar el diseño y columnas de las tablas a través de la creación de vistas lógicas. Sentencia SQL ----> CREATE VIEW. Tema 3.5 del contenido de este curso.
Preparado por: Alvaro E. García
CREATE DATABASE VENTAS ON PRIMARY ( NAME=VENTAS_data, FILENAME='c:\VENTAS.mdf', SIZE=5MB, MAXSIZE=10MB, FILEGROWTH=1MB ) LOG ON ( NAME=VENTAS_log, FILENAME='c:\VENTAS.ldf', SIZE=5MB, MAXSIZE=10MB, FILEGROWTH=1MB )
En el ejemplo que se acaba de presentar se crea un archivo principal de extensión mdf de tamaño inicial de 5 MB, cuando este espacio se agote, este se expandirá en 1 MB más para tener espacio libre y meter más registros o tablas y cuando se agote nuevamente el archivo físico de 1MB, éste se expandirá en 1 MB nuevamente y así en lo sucesivo hasta alcanzar el máximo 10 MB ya de ahí no crecerá más.
Preparado por: Alvaro E. García
Sentencia CREATE
Dentro del Lenguaje de Definición (DL) del SQL, la sentencia CREATE permiten la definición o creaciòn de muchos objetos de la base de datos tales como: tablas (esquemas), índices, vistas, dominios, ligaduras de integridad y procedimientos.
En esta oportunidad veremos las sentencias correspondientes a la creación de los esquemas o lo que es lo mismo las tablas que contendrán los datos de la base de datos, La sentencia CREATE TABLE.
La sentencia CREATE TABLE, define el nombre de la tabla, las columnas con su tipo de datos, las ligaduras de intengridad que vigilan el valor que se guarde como dato en las columnas o atributos sean llaves o no.
Sintaxis:
CREATE TABLE nombre_tabla ( campo1 tipo dato [NULL/NOT NULL] | CHECK (expresiónLógica) | [ DEFAULT expresiónConstante], campo2 tipo dato [NULL/NOT NULL] | CHECK (expresiónLógica) | [ DEFAULT expresiónConstante ], campo-N, PRIMARY KEY(campo_llave), FOREIGN KEY (campo_llave) REFERENCES tabla2 (campo_llave-tabla2) )
Preparado por: Alvaro E. García
Tipo: Integridad de Entidad o Tabla Específica que en una tabla o entidad, todas sus filas tenga un identificador único que diferencie a una fila de otra y también que se establezcan columnas cuyo contenido es un valor único que las hace llaves candidatas para un futuro como por ejemplo: número de cédula, número de seguro social o cuenta de e- mail.
Tipos de Restricción
Descripción Cláusula SQL
Por Llave Primaria
Este tipo de restricción se aplica a todas las filas permitiendo que exista un identificador, que se conoce como llave primaria y que se asegura que los usuarios no introduzcan valores duplicados. Además asegura que se cree un índice para mejorar el desempeño. Los valores nulos no están permitidos para este tipo de restricción.
CREATE TABLE CLIENTE (NUMCLI INT not null, NOMCLI char(30) not null, DIRCLI char(30), FAX INT, E_MAIL CHAR(30) UNIQUE not null, SALD_0_30 DECIMAL (10,2), SALD_31_60 DECIMAL (10,2), SALD_61_ DECIMAL (10,2), primary key (NUMCLI) )
En este ejemplo, NUMCLI corresponderá a ser la llave primaria de la tabla CLIENTE.
Por Valor Unico
Con esta restricción se previene la duplicación de valores en columnas que tienen valor único y que no son llave primaria pero que pueden ser una llave alternativa o candidata para el futuro. Asegura que se cree (Por parte del DBMS) un índice para mejorar el desempeño. Y al igual que las llaves primarias, no se le está permitido que se introduzcan valores nulos.
CREATE TABLE CLIENTE (NUMCLI INT not null, NOMCLI char(30) not null, DIRCLI char(30), FAX INT, E_MAIL CHAR(30) UNIQUE not null, SALD_0_30 DECIMAL (10,2), SALD_31_60 DECIMAL (10,2), SALD_61_ DECIMAL (10,2), primary key (NUMCLI) )
En este ejemplo, E_MAIL correponderá a ser una columna de valores único en la tabla CLIENTE
Preparado por: Alvaro E. García
Tipo: Integridad Referencial La Integridad Referencial asegura que las relaciones que existe entre llave primaria (en la tabla referenciada) y la llave foránea (en las tablas referenciantes) serán siempre mantenidas. Una fila o registro en la tabla referenciada (tabla donde reside la llave primaria) no puede ser borrada o su llave primaria cambiada si existe una fila o registro con una llave foránea (en la tabla referenciante) que se refiere a esa llave primaria.
Tipos de Restricción
Descripción Cláusula SQL
Por Llave Foránea
En esta restricción se define una columna o combinación de columnas en las cuales su valor debe corresponder al valor de la llave primaria en la misma u en otra tabla.
CREATE TABLE PEDIDO (NUMPED INT not null PRIMARY KEY, NUMCLI INT not null, FECHA_PED DATETIME, TOT_DESC DECIMAL (10,2), FOREIGN KEY (NUMCLI) REFERENCES CLIENTE(NUMCLI) )
En este ejemplo de la creación de la tabla PEDIDO, la columna NUMCLI correponderá a ser la llave foránea que hace referecia a la llave primaria NUMCLI (no necesariamente deben llamarse igual las columnas pero deben tener igual tipo de datos) en la tabla CLIENTE
Preparado por: Alvaro E. García
Creación de Tabla Cliente
CREATE TABLE CLIENTE
(NUMCLI INT not null,
NOMCLI CHAR(30) not null, DIRCLI char(30), FAX INT,
E_MAIL CHAR(30) DEFAULT ('Desconocido'),
SALD_0_30 DECIMAL (10,2), SALD_31_60 DECIMAL (10,2),
SALD_61_90 DECIMAL (10,2), primary key (NUMCLI) )
Creación de Tabla Vendedor
CREATE TABLE VENDEDOR (CODVEND INT not null,
NOMVEND char(20) not null,APELLVEND char(20) not null,
DIRVEND char(30), TELVEND INT, E_MAIL CHAR(30)
DEFAULT('Desconocido'),
CUOTA DECIMAL (10,2), VENTAS DECIMAL (10,2), primary key
(CODVEND) )
Creación de Tabla Artículo
CREATE TABLE ARTICULO (NUMART char(4) not null PRIMARY
KEY, DESCRIPCION CHAR(30), PRECIO DECIMAL (10,2) NOT
NULL CHECK (PRECIO >= 0.00), EXISTENCIA INT,
CATEGORIA_ART CHAR (15))
Creación de Tabla Pedido
CREATE TABLE PEDIDO (NUMPED INT not null PRIMARY KEY,
NUMCLI INT not null, FECHA_PED DATETIME,
TOT_DESC DECIMAL (10,2),
FOREIGN KEY (NUMCLI) REFERENCES CLIENTE(NUMCLI) ,
FOREIGN KEY (CODVEND) REFERENCES VENDEDOR(CODVEND))
Creación de Tabla Detalle_Ped
CREATE TABLE DETALLE_PED (NUMPED INT not null,
NUMART char (4) not null, CANTIDAD INT CHECK (CANTIDAD >=
0), PRIMARY KEY (NUMPED,NUMART),
FOREIGN KEY (NUMPED) REFERENCES PEDIDO(NUMPED),
FOREIGN KEY (NUMART) REFERENCES ARTICULO (NUMART) )
Preparado por: Alvaro E. García
La sentencia para eliminar una tabla y por ende todo los objetos asociados
con esa tabla como: las vistas, disparadores, etc., DROP TABLE, donde r
es el nombre de una tabla existente.
DROP TABLE r
Por ejemplo si deseamos eliminar a la tabla ARTICULO_PANAMA, revisemos haber si esta ya existe, de la siguiete manera
SELECT * from ARTICULO_PANAMA
Posteriormente una vez veriifcada que la tabla existe, se procede a borrar la tabla, escribiendo lo siguiente en l ainterface de consultas del SQL:
Después que una tabla ha sido utilizada durante algún tiempo, los usuarios suelen descubrir que desean almacenar información adicional con respecto a las tablas. Por ejemplo en la base de datos VENTAS , se podría desear:
9 Añadir el nombre y numero de de una persona de contacto a cada fila de la tabla CLIENTES para contactar a los clientes. 9 Añadir una columna de punto de reorden mínimo en la tabla ARTICULO, para que la base de datos pueda alertar automáticamente cuando la cantidad o stock de un producto en particular esta por debajo de lo optimo para la venta.
Por lo general, esta sentencia ALTER TABLE se utiliza sobre tablas que ya poseen desde cientos a miles de filas por ser tablas de un sistemas de Base de Datos que ya esta en producción.
Preparado por: Alvaro E. García
Ejemplo: ALTER TABLE T1 ADD PRIMARY KEY (a1,a2)
ALTER TABLE nombre_de_la_tabla ENABLE TRIGGER nombre_de_trigger
ALTER TABLE nombre_de_la_tabla DISABLE TRIGGER nombre_de_trigger
La persona que puede realizar esta operación de alterar la tabla puede ser: el DBA o el creador de la tabla, u otra persona que el creador o DBA haya autorizado. Para la ultima situación en que a una persona se le otorga el permiso en la operación, el usuario, debe calificar el nombre de la tabla con el nombre de su creador por delante y alterar la definición de la tabla de otro usuario, por ejemplo:
ALTER TABLE nombredueño.nombretabla
Preparado por: Alvaro E. García
Consultas Simples
El corazón o poder del Lenguaje SQL es el poder hacer consultas de cualquier tipo a la base de datos en forma no procedural. La sentencia SELECT es muy poderosa y ampliamente rica en sus cláusulas y variantes permitiendo la capacidad de atender en poco tiempo a consultas complejas sobre la base de datos. Está en el especialista desarrollador de aplicaciones conocerlo a profundidad para explotar las bondades y virtudes.
Gracias a esta sentencia es que se pueden realizar todas las operaciones del Algebra Relacional, tratadas en la sección 3.2 y 3.3 del modulo III. En esta sección veremos la sintaxis de como se utiliza.
También se puede unir estas sentencias con otras por el operador UNION entre consultas para combinar sus resultados en un sola tabla de resultados sin nombre.
Preparado por: Alvaro E. García
El utilizar la sentencia SELECT, con estas dos cláusulas SELECT - FROM, muestra como resultado a todas las filas existentes en las tablas especificadas en el FROM.
Da como resultado un total de 8 filas con las 7 columnas que posee la tabla CLIENTE.
Da como resultado un total de 8 filas con solo 3 columnas.
titulo especificado en AS, es decir con un alias. A NUMCLI lo muestra como NUMERO DE CLIENTE y NOMCLI lo muestra con el nombre especificado en el AS como NOMBRE DEL CLIENTE. Esto permite mostrar una columna con encabezados mas familiares a los usuarios finales.
Da como resultado un total de 8 filas.
La cláusula AS puede omitirse y el resultado es el mismo.
SELECT NUMCLI 'NUMERO DE CLIENTE', NOMCLI 'NOMBRE DE CLIENTE' FROM CLIENTE
Da como resultado un total de 8 filas.
Preparado por: Alvaro E. García
Si una consulta incluye la llave primaria (pk) de una tabla en su lista de selección, entonces cada fila de resultados será única (ya que la llave primaria (pk) tiene un valor diferente en cada fila). Si no se incluye la llave primaria en los resultados, pueden producirse filas duplicadas. Veamos el siguiente ejemplo,
usar la palabra reservada DISTINCT.
El resultado tendría 18 filas y con códigos de productos repetidos.
Utilizando la palabra reservada DISTINCT.
El resultado contiene menos filas, 9 filas y con códigos de productos únicos, es decir no se repiten por las veces que fueron comprados como en el ejemplo #5.