Beruflich Dokumente
Kultur Dokumente
Lenguaje de definicin (DDL):Este subconjunto del SQL sirve para crear, eliminar y modificar las definiciones de tablas y vistas. Lenguaje de manipulacin (DML): Este subconjunto del SQL sirve para realizar consultas, insertar, eliminar y modificar tuplas. Triggers y restricciones de integridad: Los triggers son acciones ejecutadas por el DBMS cuando ciertos cambios en la BD cumplen las condiciones especificadas en el trigger.
Definicin de Objetos
Definicin de Objetos
Se debe especificar nombre de la tabla, nombre de columnas y tipo de datos de las columnas. Especificar si las columnas permiten nulos. Sintaxis:
CREATE TABLE nombre_tabla ( nombre_columna_1 tipo_dato NOT NULL/NULL, nombre_columna_2 tipo_dato NOT NULL/NULL, ... nombre_columna_n tipo_dato NOT NULL/NULL, primary key (nombre_columna1,.., nombre_columna_n), foreign key (nombre_columna_i) references tabla_ref(atributo_ref))
Precauciones
Las primeras tablas que se crean son las que NO tienen claves forneas. Los atributos que son claves forneas deben mantener el dominio, es decir, tener el mismo tipo de dato. Para listar las tablas creadas SELECT tablename FROM pg_tables WHERE schemaname = 'public'
Tipos de Datos
Texto: char(n) o varchar (n), donde n es el largo de la cadena de caracteres. Nmero: integer, numeric (p,n), donde p es la precisin y n la escala Fecha: Date Hora: Time
Definicin de Objetos
Eliminacin: Al eliminar una tabla se remueve su definicin y todos sus datos. Sintaxis:
DROP TABLE nombre_tabla
Integridad de Datos
CHECK
Utilizado en Instrucciones INSERT y UPDATE Puede Referenciar otras columnas de la tabla
Ejemplo
ALTER TABLE alumno ADD CONSTRAINT ch_sexo CHECK (sexo IN (F,M))
Integridad de Datos
PRIMARY KEY
Slo una PRIMARY KEY por tabla compuesta por uno o varios atributos. Sus valores son nicos No se permiten valores nulos Crea un ndice nico en la columna especificada. Ejemplo
ALTER TABLE alumno ADD CONSTRAINT pk_rut PRIMARY KEY (rut)
Integridad de Datos
FOREIGN KEY
Debe referenciar una PRIMARY KEY Entrega una integridad referencial a una o mas columna Los usuarios deben tener permisos de SELECT a las tablas referenciadas
Ejemplo
ALTER TABLE alumno ADD CONSTRAINT fk_alumno_carrera FOREIGN KEY (carrera) REFERENCES carrera(cod_crr)
Definicin de Objetos
Agregar Columna
Eliminar Columna
Agregar Restriccin
Eliminar Restriccin
Manipulacin de Objetos
Consultas, Insercin, Modificacin y Eliminacin de Tuplas.
Insercin de Datos
Existen tres formas de insertar datos a una tablas Sin conocer el orden de los atributos.
INSERT INTO Tabla (COLUMNA_1,, COLUMNA_N) VALUES (Dato_1, , Dato_n)
Modificacin de Datos
Sintaxis:
UPDATE nombre_tabla SET atributo_1 = valor1, ..., atributo_n = valorn WHERE condiciones de bsqueda condicion generalme es la clave primaria. Ej: rut = 16.852.156-0
Eliminacin de Datos
Sintaxis:
Consultas
Cada consulta debe tener una clusula SELECT y otra FROM, pero la clusula WHERE es opcional.
Consultas Bsicas
SELECT [DISTINCT|ALL] lista-seleccin FROM lista(tablas,vistas) WHERE condicin
En condicin se pueden encontrar los operadores de comparacin {=, <,<= ,>,>= , <> (distinto)}, que forman predicados built-in. Por ejemplo nombre=Juan o edad<=30
Consultas
Alumno
1
2 3
Pedro
Juan Marta
Gmez
Muoz
46
25
Figueroa 34
Mario
Gonzlez 27
Consultas Bsicas
Para la unin de operadores built-in se utilizan conectores lgicos, AND (y) - OR (o).
SELECT NOMBRE, APELLIDO, EDAD
FROM ALUMNO WHERE EDAD>30 AND APELLIDO =GOMEZ
Nombre Pedro
Apellido Gmez
Edad 46
Consultas Bsicas
SELECT NOMBRE, APELLIDO, EDAD FROM ALUMNO WHERE EDAD>30 OR APELLIDO =GOMEZ
Uso de Join
Para poder realizar consultas a ms de una tabla, se deben realizar una condicin donde se igualen las clave primaria de una de ellas y la clave fornea de la otra tabla.
Uso de Join
Si
Si deseo conocer el nombre del curso y nombre del alumno de los curso que toma cada uno de los alumnos
SELECT Curso.Nombre , Alumno.Nombre FROM Curso, Alumno, Nota WHERE Curso.Idc=Nota.IdC AND Alumno.IdA =Nota.IdA
Operadores
IN: Forma una condicin donde se sabe que valores exactos se deben cumplir. Es decir verifica si un elemento esta en un conjunto dado, los que pueden ser valores o el resultado de una consulta
SELECT columnas FROM tablas WHERE nombre_columna IN (valor1,.. , valorn) SELECT Nombre, Apellido, Edad FROM ALUMNO WHERE Nombre IN (Pedro,Mario);
Operadores
SELECT columnas FROM tablas WHERE nombre_columna BETWEEN valor1 AND valor2
SELECT Nombre, Apellido, Edad FROM ALUMNO WHERE Edad BETWEEN 20 AND 35;
Operadores
LIKE: Permite hacer una bsqueda basada en un patrn. Un _ representa un carcter y % n-caracteres.
Sintaxis
SELECT [DISTINCT|ALL] lista-seleccin, agregacin FROM lista(tablas,vistas) WHERE condicin GROUP BY lista-seleccin HAVING condicin de agregacin
SELECT AVG(Edad) as Promedio_Edad FROM ALUMNO; SELECT Nombre_Asig, Count(*) as Promedio_Edad FROM ALUMNO A,CURSA C, ASIGNATURA AS WHERE A.RUT=C.RUT AND AS.COD_AS=C.COD_AS GROUP BY Nombre_Asig HAVING count(*)> 2;