clase 02 - introducción a sql

32
Data Definition Language (DDL) y Data Manipulation Language (DML) SESIÓN 02 DOCENTE: Mg. Orleans Moisés Gálvez Tapia CURSO: GESTIÓN DE DATOS II – UCV 2015-II

Upload: manitogr

Post on 24-Jan-2016

20 views

Category:

Documents


0 download

DESCRIPTION

gestion basede datos

TRANSCRIPT

Page 1: Clase 02 - Introducción a SQL

Data Definition Language (DDL) y

Data Manipulation Language (DML)

SESIÓN 02

DOCENTE: Mg. Orleans Moisés Gálvez Tapia

CURSO: GESTIÓN DE DATOS II – UCV 2015-II

Page 2: Clase 02 - Introducción a SQL

Es el lenguaje de consulta

estructurado, SQL (Structured

Query Language) es actualmente

el lenguaje estándar para bases

de datos relacionales

comerciales.

Posee sentencias para:

• la definición,

• consulta y

• actualización de datos.

Permite especificar restricciones

de seguridad y definir el acceso a

datos, definir restricciones de

integridad, y para especificar el

control de transacciones.

LENGUAJE SQL

Page 3: Clase 02 - Introducción a SQL

Es el lenguaje de consulta

estructurado, SQL (Structured

Query Language) es actualmente

el lenguaje estándar para bases

de datos relacionales

comerciales.

Posee sentencias para:

• la definición,

• consulta y

• actualización de datos.

Permite especificar restricciones

de seguridad y definir el acceso a

datos, definir restricciones de

integridad, y para especificar el

control de transacciones.

LENGUAJE SQL

Page 4: Clase 02 - Introducción a SQL

SQL se compone de varios elementos:

o Sentencias - Seleccionan o modifican datos u objetos del esquema, controlan el flujo de los programas, etc.

o Consultas - Recuperan datos en función de unos criterios.

o Expresiones - Generan valores escalares.

o Predicados - Especifican las condiciones que serán evaluadas.

o Cláusulas - Componen las sentencias. Opcionales en algunos casos.

o Punto y coma: No es requerido en todos los RDBMS pero es el estándar para indicar fin de la sentencia.

Page 5: Clase 02 - Introducción a SQL

o SELECT - Recupera información de la base de datos. DML (Lenguaje de manipulación de datos) INSERT - Inserta nuevos registros en la base de datos. UPDATE - Actualiza registros ya existentes. DELETE - Borra registros. MERGE - Realiza una combinación de datos según unas condiciones DDL (Lenguaje de definición de datos) CREATE - Crea estructuras de datos (tablas, vistas, etc). ALTER - Modifica estructuras de datos DROP - Borra estructuras de datos. RENAME - Renombra estructuras de datos. TRUNCATE - Sirve para vaciar tablas. Control de Transacciones COMMIT - Confirma las operaciones DML. ROLLBACK - Invalida las operaciones DML SAVEPOINT - Introduce un punto de guardado para realizar COMMIT y ROLLBACK localizados. DCL (Lenguaje de control de datos) GRANT - Otorga permisos a usuarios. REVOKE - Quita permisos de los usuarios.

…PRINCIPALES SENTENCIAS SQL

Page 6: Clase 02 - Introducción a SQL

Operadores de Comparación

= Igual

<> Distinto

< Menor

> Mayor

<= Menor Igual

<= Mayor Igual

between Utilizado para especificar un intervalo de valores.

like Utilizado en la comparación de un campo contra un patrón

in Utilizado para verificar la existencia de un valor dentro de un conjunto

de valores

Operadores Lógicos

AND Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad

sólo si ambas son ciertas.

OR Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdar

si alguna de las dos es cierta.

NOT Negación lógica. Devuelve el valor contrario de la expresión.

Page 7: Clase 02 - Introducción a SQL

varchar2(tamaño)

o Se emplea para almacenar cadenas de caracteres. Una cadena es una secuencia de caracteres. Se coloca entre comillas simples; ejemplo: 'Hola', 'Juan Pérez', 'Colon 123'.

o Este tipo de dato definen una cadena de longitud variable en la cual indicamos el máximo número de caracteres entre paréntesis.

TIPOS de DATOS en ORACLE

Por ejemplo: para almacenar cadenas de hasta 30 caracteres, definimos un campo

de tipo varchar2 (30), es decir, entre paréntesis, junto al nombre del campo

colocamos la longitud.

Si intentamos almacenar una cadena de caracteres de mayor longitud que la definida,

la cadena no se carga, aparece un mensaje indicando tal situación y la sentencia no

se ejecuta.

Por ejemplo, si definimos un campo de tipo varchar(10) e intentamos almacenar en él

la cadena 'Buenas tardes', aparece un mensaje indicando que el valor es demasiado

grande para la columna.

El tipo de dato especifica el tipo de información que puede guardar un

campo: caracteres, números, fechas, etc.

Page 8: Clase 02 - Introducción a SQL

number(p,s):

o Se usa para guardar valores numéricos con decimales. Definimos campos de este tipo cuando queremos almacenar valores numéricos con los cuales luego realizaremos operaciones matemáticas, por ejemplo, cantidades, precios, etc.

o Puede contener números enteros o decimales, positivos o negativos. El parámetro "p" indica la precisión, es decir, el número de dígitos en total (contando los decimales) que contendrá el número como máximo. El parámetro "s" especifica la escala, es decir, el máximo de dígitos decimales. Por ejemplo, un campo definido "number(5,2)" puede contener cualquier número entre 0.00 y 999.99 (positivo o negativo).

o Para especificar número enteros, podemos omitir el parámetro "s" o colocar el valor 0 como parámetro "s". Se utiliza como separador el punto (.).

…TIPOS de DATOS en ORACLE

El tipo de dato especifica el tipo de información que puede guardar un

campo: caracteres, números, fechas, etc.

Page 9: Clase 02 - Introducción a SQL

…TIPOS de DATOS en ORACLE

Por ejemplo:

Si definimos un campo de tipo number(4,2) e intentamos guardar el valor 123.45, aparece un mensaje indicando que el valor es demasiado grande para la columna.

Si ingresamos un valor con más decimales que los definidos, el valor se carga pero con la cantidad de decimales permitidos, los dígitos sobrantes se omiten.

Antes de crear una tabla debemos pensar en sus campos y optar por el tipo de dato adecuado para cada uno de ellos.

Por ejemplo: Si en un campo almacenaremos números telefónicos o un números de documento, usamos "varchar2", no "number" porque si bien son dígitos, con ellos no realizamos operaciones matemáticas. Si en un campo guardaremos apellidos, y suponemos que ningún apellido superará los 20 caracteres, definimos el campo "varchar2(20)". Si en un campo almacenaremos precios con dos decimales que no superarán los 999.99 pesos definimos un campo de tipo "number(5,2)", es decir, 5 dígitos en total, con 2 decimales. Si en un campo almacenaremos valores enteros de no más de 3 dígitos, definimos un campo de tipo "number(3,0)".

Page 10: Clase 02 - Introducción a SQL

DML: INSERT

Añade una fila a tabla emp con datos en todas sus columnas, incluido un valor nulo.

Añade una fila a tabla emp con datos en las columnas referenciadas en la lista.

Añade filas con la sentencia SELECT

Page 11: Clase 02 - Introducción a SQL

DML: UPDATE

Modifica el valor de la columna sal en todas las filas de la tabla.

Modifica el valor de varias columnas para las filas que cumplen la condición.

Page 12: Clase 02 - Introducción a SQL

DML: DELETE

Si no se pone ninguna condición, o sea, si no existe subclausula WHERE, el borrado afecta a todas las filas de la tabla.

Borra las filas que cumplen la condición indicada

Page 13: Clase 02 - Introducción a SQL

DDL: CREATE TABLE

Pueden ser de diverso tipo:

valor defectivo,

valor nulo,

clave primaria,

clave foránea o ajena,

de unicidad,

de comprobación de una condición, etc.

Page 14: Clase 02 - Introducción a SQL

DDL: CREATE TABLE (restricciones)

CONSTRAINT cp_emp2 PRIMARY KEY CONSTRAINT cp_emp2 PRIMARY KEY (empno)

PRIMARY KEY PRIMARY KEY (empno)

Page 15: Clase 02 - Introducción a SQL

…DDL: CREATE TABLE (restricciones)

UNIQUE UNIQUE (dname)

CHECK (condición)

Puede utilizar restricciones UNIQUE para garantizar que no se escriben valores duplicados en columnas específicas que no forman parte de una clave principal.

Permiten declarar una condición que debe cumplir uno o mas atributos

Page 16: Clase 02 - Introducción a SQL

EMP2 EMPNO (PK) ENAME MGR DEPTNO (FK)

DEPT2 DEPTNO (PK) DNAME LOC

M 1

DDL: CREATE TABLE (restricción de clave foránea)

REFERENCES dept2 (deptno)

Page 17: Clase 02 - Introducción a SQL

EMP2 EMPNO (PK) ENAME MGR DEPTNO (FK)

DEPT2 DEPTNO (PK) DNAME LOC

M 1

DDL: CREATE TABLE (restricción de clave foránea)

REFERENCES dept2 (deptno) FOREIGN (deptno) REFERENCES dept2 (deptno)

Page 18: Clase 02 - Introducción a SQL

OTRAS SENTENCIAS DDL

Eliminación de tablas:

Modificación de tablas: al añadir una columna a la tabla

Modificación de tablas: al modificar la definición de una columna existente

Page 19: Clase 02 - Introducción a SQL

…OTRAS SENTENCIAS DDL

Modificación de tablas - al modificar una columna existente

Modificación de tablas - al eliminar una columna existente

Modificación de tablas - al añadir una restricción a una tabla existente

Modificación de tablas - al eliminar una restricción de una tabla

Page 20: Clase 02 - Introducción a SQL

EJERCICIOS

SQL

Page 21: Clase 02 - Introducción a SQL

Tablas de Ejemplo: Tenemos una tabla de empleados (EMP) y otra de departamentos

(DEPT).

EMP EMPNO (PK) ENAME JOB MGR HIREDATE SAL COMM DEPTNO (FK)

DEPT DEPTNO (PK) DNAME LOC

M

1

Tabla: EMP

Tabla: DEPT

Page 22: Clase 02 - Introducción a SQL

SELECT – Consultas Simples

Page 23: Clase 02 - Introducción a SQL

WHERE – Consultas Simples

Tabla: EMP

Page 24: Clase 02 - Introducción a SQL

ORDER BY – Consultas Simples

Obtener los datos de los departamentos ordenados por el nombre del departamento:

Tabla: DEPT

Page 25: Clase 02 - Introducción a SQL

“ALIAS” – Consultas Simples

Tabla: EMP

Obtener la comisión, departamento y nombre de los empleados cuyo salario sea inferior a 1.900,

ordenándolos por departamento en orden creciente, y por comisión en orden decreciente dentro de

cada departamento

Page 26: Clase 02 - Introducción a SQL

…“ALIAS” – Consultas Simples

Tabla: EMP

Page 27: Clase 02 - Introducción a SQL

…“ALIAS” – Consultas Simples

¿Cuál sería el resultado del SELECT?

Page 28: Clase 02 - Introducción a SQL

“TO_CHAR” y “DISTINC”

To_char(fec_ingreso,’dd/mm/yyyy’), To_char(fec_ingreso,’yyyy-mm-dd’), To_char(fec_ingreso,’month’),

El resultado de esta query es el siguiente: 01/04/2011 2011-04-01 Abril Los caracteres corresponden a: • dd= número del día, • mm= número del mes, • yyyy= número del año, • month= nombre del mes.

01/04/11

La función TO_CHAR() realiza la conversión de un número o fecha a una cadena, el valor retornado será siempre un VARCHAR2 y opcionalmente permite también una mascara para formatear la salida

La sintaxis para la función TO_CHAR() es:

TO_CHAR(Valor, [mascara])

Page 29: Clase 02 - Introducción a SQL

…“TO_CHAR” y “DISTINC”

Tabla: EMP

Obtener el puesto de trabajo (JOB) y el año de contratación de los empleados que trabajan en el

departamento 30. Devolver solamente registros diferentes.

Page 30: Clase 02 - Introducción a SQL

…“TO_CHAR” y “DISTINC”

Obtener el puesto de trabajo (JOB) y el año de contratación de los empleados que trabajan en el

departamento 30. Devolver solamente registros diferentes.

CONTRATADO

Page 31: Clase 02 - Introducción a SQL

…“TO_CHAR” y “DISTINC”

Obtener el puesto de trabajo (JOB) y el año de contratación de los empleados que trabajan en el

departamento 30. Devolver solamente registros diferentes.

El DISTINC afecta a toda la fila

CONTRATADO

Page 32: Clase 02 - Introducción a SQL

1. FROM (obligatoria): Determina la tabla o tablas de la que se seleccionarán los datos.

2. WHERE (optativa): Indica un predicado que expresa la condición que debe cumplir cada fila que interviene en la consulta. Así la consulta se restringe a las filas que cumplen la condición.

3. GROUP BY (optativa): Incluye las columnas que determinan la formación de conjuntos según la igualdad de valores en dichas columnas.

4. HAVING (optativa): Indica un predicado que expresa la condición que debe cumplir cada conjunto que interviene en la consulta.

5. SELECT (obligatoria): Incluye los datos que se solicitan en la consulta, normalmente una o varias expresiones.

Alternativamente un * indica todas las columnas de las tablas involucradas. Si hubiese filas repetidas, por defecto aparecen, pero no lo hacen si se incluye DISTINCT.

6. ORDER BY (optativa): Permite determinar el criterio de ordenación de las filas de la tabla resultado. Sin ella obtendremos las mismas filas, pero puede que en órdenes distintos, según la estrategia seguida por el SGBD para extraer los datos.

ORDEN DE EJECUCIÓN DE LAS CLAUSULAS