introduccion a sql

30

Upload: renatta-rodriguez

Post on 06-Jul-2015

167 views

Category:

Technology


0 download

DESCRIPTION

Introducción a SQL Server

TRANSCRIPT

Page 1: Introduccion a SQL
Page 2: Introduccion a SQL

Introducción al curso

• El presente es un curso de nivel básico para el aprendizaje deSQL como lenguaje de consulta y modificación de datos yobjetos de la Base de Datos.

• Método: Se empleará la tutoría en modalidad de disertación(o exposición) , con ejemplos de lo expresado aplicado a lacreación de objetos de Base de Datos para su posteriormanipulación. Empleando así mismo casos para ser resueltosy una evaluación final para determinar el nivel de fijación delcontenido expuesto y practicado.

• Objetivo: Instruir a los participantes de manera tal que seancapaces de comprender y emplear el lenguaje SQL para lainteracción con el RDBMS (Relational Data Base ManagementSystem).

Page 3: Introduccion a SQL

Oracle SQL

El Lenguaje de Consulta Estructurado (SQL) es el conjunto de sentencias[f. Inform. Secuencia de expresiones que especifica una o varias operaciones.] (declaraciones) conlas que todos los programas y usuarios acederán a la información en una Base deDatos de Oracle. Las Aplicaciones y las herramientas de Oracle generalmentepermiten a los usuarios acceder a la base de datos sin utilizar SQL directamente,pero esas aplicaciones en cambio utilizan SQL cuando ejecután las peticiones delcliente.

Page 4: Introduccion a SQL

¿Qué se puede hacer con el SQL?

El SQL provee sentencias (comandos) para realizar una variedad de tareas queincluyen:

• Consultar la información (data).• Insertar, actualizar y borrar registros en una tabla.• Crear, reemplazar, alterar y borrar objetos.• Controlar el acceso a la Base de Datos y sus objetos.• Garantizar la consistencia e integridad de los datos.

Page 5: Introduccion a SQL

Oracle provee un número de herramientas para facilidar el proceso de desarrolloSQL:

• Oracle SQL Developer: Es una herramienta gráfica que le permite buscar, crear,editar y borrar objetos de la base de datos. Editar y deputar código PL/SQL,ejecutar sentencias SQL y scripts, etc.

• SQL*Plus: es una herramienta interactiva y por lote que es incluida con cadainstalación de la base de datos Oracle, tanto en cliente como en servidor. Es unainterface de línea de comando y también cuenta con una interface basada enWeb, llamada iSQL*Plus.

• Oracle Jdeveloper: es un entorno de desarrollo multiplataforma integrado deapoyo al ciclo de vida de desarrollo de Java, servicios Web y SQL.

• Oracle Application Express: es un entorno organizado para desarrollar y desplegaraplicaciones Web con bases de datos relacionadas.

Herramientas de Soporte

Page 6: Introduccion a SQL

Consideraciones de redacción

Las siguientes definiciones para los temas de las sentencias SQL aplican específicamente paraimplementaciones de la base de Datos de Oracle pero son generalemente aceptadas en otrasimplementaciones de SQL.

• Cuando usted emite una sentencia SQL, puede incluir uno o más caracteres TAB, retorno decarro (ENTER), espacios o comentarios donde quiera.

• El uso de mayúsculas o minúsculas no tiene significado [para el RDBMS] en las palabrasreservadas, identificadores y parámetros; así mismo no tienen significado en la declaraciónde cadenas de texto o valores constantes.

• Las sentencias SQL son finalizadas de forma diferente en los distintos ambinentes deprogramación. En este documento se define por defecto el uso del caracter SQL*Pluspunto y coma (;).

• La realización de comentarios tanto en PL/SQL así como SQL, anónimo o almacenado en labase de datos puede hacerse utilizando los caracteres ´--´ o entre los caracteres ´/* */´.

Page 7: Introduccion a SQL

--Query 1SELECT last_name,salary*12,MONTHS_BETWEEN(SYSDATE,hire_date)FROM employees

WHERE department_id = 30ORDER BY last_name;

Por ejemplo:

/* Query 2*/SELECT last_name,

salary * 12,MONTHS_BETWEEN( SYSDATE, hire_date )

FROM employeesWHERE department_id=30ORDER BY last_name;

Page 8: Introduccion a SQL

Buenas prácticas al redactar/*----------------------------------------------*//* Script de ejemplo versión 1.0 *//* Creado el: 03/10/2013 *//* Creado por: Byron Quisquinay *//*----------------------------------------------*/

declare

v_fecha varchar2(50) := to_char(sysdate,'dd/mm/yyyy');v_hora varchar2(50) := to_char(sysdate,'hh:mm:ss');v_fecha_y_hora varchar2(50) := to_char(sysdate,'dd/mon/yyyy hh:mm:ss');v_fecha_texto varchar2(50) := null;

begin--Conversión de fecha empleando textos completos en el día y el mesbegin

select to_char(sysdate,'Day dd Month, yyyy','nls_date_language=spanish')into v_fecha_textofrom dual;

exceptionwhen others thenbegin

dbms_output.put_line(sqlerrm);v_fecha_texto := null;

end;end;

--Impresión de resultados en pantalladbms_output.put_line(v_fecha);dbms_output.put_line(v_hora);dbms_output.put_line(v_fecha_y_hora);dbms_output.put_line(v_fecha_texto);

end;

Page 9: Introduccion a SQL

• Identificar claramente el programa: ayudará tanto a su autor como a quienes deban interpretarlo y/o modificarlo, algunas sugerencias de datos para la identificación:

• Fecha de Creación.

• Autor.

• Versión actual.

• Versión anterior.

• Fecha Modificación.

• Nombre de Quién Modificó.

• Propósito u objetivo.

• Una escritura clara e inteligible: esto permitirá una comprensión rápida del programa, además de permitir un manejo de errores que resulte en una mejor administración del mismo.

• Definición de bloques para el manejo de errores: El encapsular entre begin y end las sentencias y definir manejo de errores permitirá una mejor administración de los programas.

• Documentar el programa: junto con las buenas prácticas anteriores, permitirá una mejor administración del programa.

Page 10: Introduccion a SQL

Tipos de Sentencias SQL

Definición de datos (DDL)

Manipulación de Datos (DML)

Page 11: Introduccion a SQL

Tareas que se pueden realizar con sentencias DDL

• Crear, alterar o eliminar (drop) objetos del esquema.

• Conceder y revocar privilegios y roles.

• Analizar la información de una tabla, índice o cluster.

• Establecer condiciones de auditoría.

• Agregar comentarios al diccionario de datos.

• El crear, alterar o eliminar un objeto requiere acceso exclusivo al objeto que es objeto de la sentencia DDL. Por ejemplo si usted desea alterar una tabla y otro usuario tiene una transacción abierta, la sentencia fallará.

• El Conceder y revocar privilegios, analizar, auditar o comentar un objeto no requiere de acceso exclusivo. Es decir, usted puede analizar una tabla aún cuando un usuario la esté actualizando.

• La base de datos Oracle realiza el commit de forma implícita antes y después de cada sentencia DDL.

• Las sentencias DDL son soportadas en PL/SQL a través del paquete dbms_sql.

Page 12: Introduccion a SQL

Estas son las sentencias DDL

• ALTER • ANALYZE• ASSOCIATE STATISTICS• AUDIT• COMMENT• CREATE • DISASSOCIATE STATISTICS• DROP • FLASHBACK• GRANT• NOAUDIT• PURGE• RENAME• REVOKE• TRUNCATE

Page 13: Introduccion a SQL

Sentencias DML

Data Manipulation Language, Lenguaje de Manipulación de Datos, las sentencias de este tipo acceden y manipulan la información objetos existentes en la base de datos. Estas sentencias requieren ser confirmadas a través de la sentencia COMMIT para hacerlas permanentes. Las sentencias tipo DML son:

• CALL

• DELETE

• EXPLAIN PLAN

• INSERT

• LOCK TABLE

• MERGE

• SELECT

• UPDATE

Page 14: Introduccion a SQL

CREATE TABLE

• Sentencia que permite crear una de los siguientes tipos de tablas:• Tabla relacional: Que es la estructura básica para contener información.• Tabla objeto: Que es una tabla que utiliza un Tipo Objeto para la definición

del tipo de columna. La Tabla Objeto está explícitamente definida paracontener instancias de un tipo en particular.

• Las tablas son creadas sin datos a menos que se especifique un subquery.

Prerrequisitos:• Para crear una tabla en su propio esquema, deberá tener los privilegios para

la sentencia CREATE TABLE. Para crear tablas en otros esquemas usteddeberá tener el privilegio CREATE ANY TABLE. Así mismo el dueño delesquema en el que se creará la tabla deberá tener cuota de espacio en elTable Space que contendrá la tabla o el privilegio UNLIMITED TABLESPACE.

• En adición a esos privilegios, para crear una Tabla Objeto o una tablarelacional con una columna de tipo objeto, el propietario deberá contar conel privilegio de EXECUTE para poder así acceder a todos los tiposreferenciados por la tabla o bien contar con el privilegio del sistema EXECUTEANY TYPE, estos privilegios deben ser concedidos explícitamente.

Page 15: Introduccion a SQL

Sentencia CREATE TABLE

Esta sentencia permite la creación de tablas.

Create table

(…)

As

Select

Esquema.Nombre

Campo Tipo (ancho) [default] [constraint]

Cláusula que permite crear una tabla en base a la sentencia select.

Sentencia select que dará la estructura y datos a la tabla a crear.

Page 16: Introduccion a SQL

-- Tabla que tendrá los tipos de clientes

create

table t_tipo_cliente

(

id_tipo_cliente number(10),

tipo_cliente varchar2(50),

descripcion_tipo varchar2(400)

);

Creando tablas

--Creación de tabla para almacenar datos de clientes

create

table t_clientes ( Id_Cliente number(10),

Nombres varchar2(200),

Apellidos varchar2(200),

id_tipo_cliente number(10),

Fecha_creacion date,

Usuario_creo varchar2(60),

Fecha_modificacion date,

Usuario_modifico varchar2(60)

);

Page 17: Introduccion a SQL

SENTENCIA INSERT

Permite poblar con datos a una tabla, es decir, para agregarregistros a una tabla.

Prerrequisitos:• Para poder insertar datos en una tabla el usuario que usted

emplea en la Base de Datos deberá tener permisos para ellosobre la tabla en la que desea realizar la operación.

Page 18: Introduccion a SQL

Insert into

[Tabla]

[Campos]

VALUES [SELECT]

Sentencia que indica que se insertarán datos.

Tabla a la que se agregarán datos.

Listado de campos que se poblarán o bien sin indicarlos Oracle asumirá que son todos.

Valores a insertar o sentencia select que proveerá los datos.

Page 19: Introduccion a SQL

--Insertando tipo de clientes

insert

into t_tipo_cliente

values (

1,

'Particular',

'Cliente particular que adquiere el servicio por su cuenta de forma personal.'

);

Insertando datos

Page 20: Introduccion a SQL

insert

into T_CLIENTES (Id_Cliente,

Nombres,

Apellidos)

values (1,

'Byron Fermin',

'Quisquinay Urizar'

);

insert

into T_CLIENTES (Id_Cliente,

Nombres,

Apellidos)

values (2,

'Juan',

'Ejemplo'

);

Insertando datos

insert

into t_clientes

values (3,

'Pedro',

'Ejercicio',

1,

sysdate,

user,

null,

null);

Page 21: Introduccion a SQL

Sentencia Select

Que es empleada para seleccionar información de tablas en una base de datos. También es empleada para realizar una operación matemática o la ejecución de alguna función.

Select

From

Where

Order By, Group by

Having

Columna, operación, función, Select (in line view).

Tabla, vista, vista materializada, select.

Condiciones, select (nested query).

Columna, función o alias.

Condición.

Page 22: Introduccion a SQL

Consultado (seleccionando) datos--Seleccionando todos los datos

select *

from t_tipo_cliente;

select *

from t_clientes;

select *

from t_clientes_tmp;

Page 23: Introduccion a SQL

Creando tablas

--Creación de tabla temporal de clientescreatetable t_clientes_tmp

asselect *

from t_clientes;

Page 24: Introduccion a SQL

Consultado …

--Seleccionando con funciones y filtros (where)

select count(*) cantidad_registros

from t_tipo_cliente;

select count(*) cantidad_registros

from t_tipo_cliente

where tipo_cliente = 'Residencial';

Page 25: Introduccion a SQL

Insertando datos…

--Inserción de los datos de tabla de clientes a temporal de clientes.insert

into t_clientes_tmpselect *

from t_clientes

Page 26: Introduccion a SQL

Consultado …

--Seleccionando con funciones y filtros (where)

select count(*) cantidad_registros

from t_tipo_cliente;

select count(*) cantidad_registros

from t_tipo_cliente

where tipo_cliente = 'Residencial';

Page 27: Introduccion a SQL

Create Sequence

Una secuencia es un objeto de la Base de Datos que se emplea para crear enteros únicos. Usted puede utilizarlas para crear los valores para llaves primarias.

Create Sequence

Increment by[Entero]

Start with [Entero]

Maxvalue

Minvalue

Sentencia que solicita la creación de una secuencia.

Deberá especificar el intervalo en enteros que será el valor a incrementar en cada solicitud de nuevo valor para la

secuencia.

Valor con el que se iniciará la secuencia

Último valor con el que podrá obtener la secuencia.

Valor más pequeño que tendrá la secuencia.

Page 28: Introduccion a SQL

Creando secuencias…

--Secuencia para el Id del clientecreate

sequence s_clientesincrement by 1

start with 1maxvalue 999999999;

Page 29: Introduccion a SQL

insert

into T_CLIENTES (Id_Cliente,

Nombres,

Apellidos)

values (s_clientes.nextval,

'Jorge',

'Ejemplo'

);

Insertando datos

Page 30: Introduccion a SQL

Consultado …

--Seleccionando datos empleando filtros

select *

from t_clientes

where id_cliente = 1;

select *

from t_clientes_tmp

where id_cliente = 1;