clase 02 - introducción a sql
DESCRIPTION
gestion basede datosTRANSCRIPT
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
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
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
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.
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
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.
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.
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.
…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)".
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
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.
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
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.
DDL: CREATE TABLE (restricciones)
CONSTRAINT cp_emp2 PRIMARY KEY CONSTRAINT cp_emp2 PRIMARY KEY (empno)
PRIMARY KEY PRIMARY KEY (empno)
…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
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)
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)
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
…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
EJERCICIOS
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
SELECT – Consultas Simples
WHERE – Consultas Simples
Tabla: EMP
ORDER BY – Consultas Simples
Obtener los datos de los departamentos ordenados por el nombre del departamento:
Tabla: DEPT
“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
…“ALIAS” – Consultas Simples
Tabla: EMP
…“ALIAS” – Consultas Simples
¿Cuál sería el resultado del SELECT?
“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])
…“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.
…“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
…“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
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