Sql Lenguaje Estructurado de Consulta

Preview:

Citation preview

Es un lenguaje estructurado de consulta que permite crear, actualizar y manipular una base de datos, a su vez puede especificar restricciones, como también el acceso relacional entre tablas donde permite especificar diversos tipos de operaciones utilizando el calculo relacional y el algebra relacional.

Con el lenguaje SQL podemos ejecutar varias cláusulas, por ejemplo:

FROM < Especifica de que tabla se cogen los registros > WHERE < Especifica condición para seleccionar la tuplas de las

relaciones > GROUP BY < atributo(s) de agrupación > Separa y crea grupos

específicos HAVING < Expresa la condición para satisfacer a cada grupo

seleccionado> ORDER BY < Ordena registros seleccionados de acuerdo a un orden

especifico>

http://technologyandweb.blogspot.com/ 1

LAS DDLLENGUAJE DEFINICIÓN DE

DATOS•Crea, modifica y elimina objetos en la base de datos•Permite crear objetos en la DB (Tablas, Índices, Vistas)•Permite crear las siguientes funciones:

Sentencia DescripciónCREATE TABLE Crea una tabla

ALTER TABLE Modifica la estructura de la tabla

DROP TABLE Elimina las filas y estructura de la tabla

RENAME Cambia el nombre de una tabla, vista, sequence, o sinónimo

TRUNCATE Elimina todas las filas de la tabla y libera los espacios de almacenamiento

COMMENT Adiciona comentarios a una tabla o vista

http://technologyandweb.blogspot.com/

2

Se debe especificar los archivos y ubicaciones que se utilizarán para la misma, además de otras indicaciones técnicas

Especificando otras características en la creación de la base de datos

CREATE DATABASE prueba;

http://technologyandweb.blogspot.com/ 3

http://technologyandweb.blogspot.com/ 4

Las sentencias DML son aquellas utilizadas para insertar, borrar, modificar y consultar los datos de una base de datos.

Las sentencias DML, son las siguientes:› Select› Insert› Update› Delete

http://technologyandweb.blogspot.com/ 5

CursoIDCursoID NombreNombre CréditosCréditos HorasHoras

C01 Matemática 4 4

C02 Física I 4 4

C03 Algebra 3 4

C04 Filosofía 2 2

C05 Simulación 4 4

SentenciaSelect nombre, horas from Curso Where creditos > 3

NombreNombre HorasHoras

MatemáticaMatemática 44

Física IFísica I 44

SimulaciónSimulación 44

TABLA: CURSO

Requerimiento

Mostrar el nombre y numero de horas de los Cursos donde su numero de créditos sea mayor a 3.

El Resultado

Como se puede observar solo se visualiza los campos nombre y horas de los cursos donde su numero de créditos es mayor a 3.

http://technologyandweb.blogspot.com/ 6

CursoICursoIDD

NombreNombre CreditoCreditoss

HoraHorass

C01 Matemática

4 4

C02 Fisica I 4 4

C03 Algebra 3 4

C04 Filosofia 2 2

CursoICursoIDD

NombreNombre CreditoCreditoss

HoraHorass

C01 Matemática

4 4

C02 Fisica I 4 4

C03 Algebra 3 4

C04 Filosofia 2 2

C05 Simulación 3 4

TABLA: CURSO

Sentencia

Insert into Curso

(CursoID, nombre, creditos, horas)

Values(“C05”,’’Simulación”,3,4)

Luego de ejecutar la sentencia se agrega al final de la tabla.

El Resultado

Requerimiento

Registrar los datos del siguiente curso: Código: C05, Nombre: Simulación, Créditos: 3 y Horas: 4.

http://technologyandweb.blogspot.com/ 7

CursoICursoIDD

NombreNombre CreditCreditosos

HoraHorass

C01 Matemática 4 4

C02 Fisica I 4 4

C03 Algebra 3 4

C04 Filosofia 2 2

C05 Simulación 3 4

Sentencia

Update Curso

Set horas = 5, creditos=3

Where CursoID = “C01”

TABLA: CURSOCursoID Nombre Creditos Horas

C01 Matemática 3 5

C02 Física I 4 4

C03 Algebra 3 4

C04 Filosofía 2 2

C05 Simulación 3 4

Como se puede observar actualiza a solo aquella fila, donde el código es igual a C01

Requerimiento

Modificar el numero de horas y créditos del curso que tiene el código C01.

El Resultado

http://technologyandweb.blogspot.com/ 8

CursoICursoIDD

NombreNombre CréditCréditosos

HoraHorass

C01 Matemática 4 4

C02 Física I 4 4

C03 Algebra 3 4

C04 Filosofía 2 2

C05 Simulación 3 4

TABLA: CURSO

CursoICursoIDD

NombreNombre CréditCréditosos

HoraHorass

C01 Matemática 4 4

C02 Física I 4 4

C04 Filosofía 2 2

Como se puede observar solo permanecen aquellas filas donde, el valor de la columna créditos es diferente a 3

El Resultado

SentenciaDelete from CursoWhere creditos=3

Requerimiento

Modificar el numero de horas y créditos del curso que tiene el código C01.

http://technologyandweb.blogspot.com/ 9

Para cambiar el nombre de una tabla, vista, secuencia o sinónimo, debemos ejecutar la sentencia RENAME.

Debe ser el propietario del objeto que se va renombrar.

RENAME old_name TO new_name;

SQL> RENAME dept TO detalle_dep;Table renamed.Table renamed.

http://technologyandweb.blogspot.com/ 10

Proceso de transformación de datos complejos a un conjunto de estructuras de datos más pequeñas, simples y más estables, son más fáciles de mantener

•Primera Forma Normal 1FN•Segunda Forma Normal 2FN•Tercera Forma Normal 3FN•Cuarta Forma Normal•Quinta Forma Normal o Forma Normal de Proyección-Unión•Forma Normal Boyce-Codd•Forma Normal de Proyección-Unión Fuerte•Forma Normal de Proyección-Unión Extra Fuerte y•Forma Normal de Clave de Dominio

http://technologyandweb.blogspot.com/ 11

FORMAS NORMALES MAS IMPORTANTES

Primera Forma NormalEsta regla establece que las columnas repetidas deben eliminarse y colocarse en tablas separadas.

Segunda Forma NormalEsta establece que todas las dependencias parciales se deben eliminar y separar dentro de sus propias tablas.

Tercera Forma Normal Esta Señala que hay que eliminar y separar cualquier dato que no sea clave.

http://technologyandweb.blogspot.com/ 12

EJEMPLO

Para explicar vamos a considerar los datos de la siguiente tabla.

Examinando los registros, podemos darnos cuenta que contienen un grupo repetido para

NUM_ITEM,DESC_ITEM, CANT y PRECIO.

http://technologyandweb.blogspot.com/ 13

- ORDENES

La 1FN Prohíbe los grupos repetidos, para convertir a forma normal

Los pasos a seguir son:

» Tenemos que eliminar los grupos repetidos.» Tenemos que crear una nueva tabla con la PK de la tabla base y el grupo repetido.

Los registros quedan ahora conformados en dos tablas que llamaremos

ORDENES y ARTICULOS_ORDENES

http://technologyandweb.blogspot.com/ 14

La 2FN eliminar cualquier columna no llave que no dependa de la llave

primaria de la tabla.

» Determinar cuáles columnas que no son llave no dependen de la llave primaria de la tabla.» Eliminar esas columnas de la tabla base.» Crear una segunda tabla con esas columnas y la(s) columna(s) de la PK de la cual dependen.

ARTICULOS

ARTICULO_ORDENES

http://technologyandweb.blogspot.com/ 15

Eliminar Cualquier columna no llave que sea dependiente de otra columna no llave

3FN

» Determinar las columnas que son dependientes de otra columna no llave.» Eliminar esas columnas de la tabla base.» Crear una segunda tabla con esas columnas y con la columna no llave de la cual son dependientes.

- ORDENES

http://technologyandweb.blogspot.com/ 16

La Cardinalidad•Cardinalidad en una relación es el número de veces que una

entidad aparece asociada a otra entidad.

Ejemplo:

http://technologyandweb.blogspot.com/ 17

Uno a uno (1:1)

Tipos de Cardinalidad

Uno a uno (1:N)

http://technologyandweb.blogspot.com/ 18

Tipos de Cardinalidad

N a Muchos (N:M)

http://technologyandweb.blogspot.com/ 19

Recommended