Vous êtes sur la page 1sur 40

Taller SQL

Facilitadores: Ing. Carlos Beltran


Lic. Mario Alberto

Departamento de Informtica
2016
Agenda

Motores de base de datos. Navegadores de bases de Datos


Definicin de base de Esquema de datos (E-R) de
datos. trabajo en Taller.
Estructura de las bases de Estructura de una sentencia
datos. SQL
Objetos de base de datos Comandos SQL Bsicos
Lenguaje SQL Manipulacin de datos con SQL
Conexin a las bases de datos SQL Avanzado
JDBC Taller practico evaluado
ODBC

Departamento de Informtica, 2016


Albert Einstein

Nunca consideres el
estudio como una
obligacin, sino como
una oportunidad para
penetrar en el bello y
maravilloso mundo del
saber

Departamento de Informtica, 2016


Objetivos

Definir que es una Base de Datos.


Comprender como conectarse a una Base de Datos
Conocer aspectos Generales relacionado a la forma en que se encuentran
estructuradas las Bases de Datos.
Definir que es Lenguaje Estructurado de Datos (SQL)
Interactuar con los datos a travs de la practica de sentencias SQL.

Departamento de Informtica, 2016


Motores de Bases de Datos

Un Modelos simple de base de datos


Una Hoja de calculo puede ser vista como una simple base de
datos.
Por Ejemplo, una hoja de calculo podra contener lo siguiente
informacin de sus amigos
Apellidos
Nombres
Direccin
Fecha de Nacimiento

Departamento de Informtica, 2016


Base de Datos Relacionales

Una base de datos relacional es una coleccin de elementos de


datos organizados en un conjunto de tablas formalmente descritas
desde la que se puede acceder a los datos o volver a montarlos de
muchas maneras diferentes sin tener que reorganizar las tablas de
la base

Departamento de Informtica, 2016


Ejemplos de Motores de Bases de Datos

Departamento de Informtica, 2016


Estructura de Seguridad de las Bases de Datos

ORACLE SYBASE MYSQL


SCHEMAS BASE DE DATOS BASE DE DATOS
PERFILES USUARIOS USUARIOS
ROLES GRUPOS ROLES ADMINISTRATIVO
PRIVILEGIOS ROLES PRIVILEGIOS
PRIVILEGIOS

Departamento de Informtica, 2016


Objetos de Base de Datos
Objeto Descripcin
Tablas Objeto que almacena los datos, estructurada en filas y columnas.
Vistas Consulta SQL que se presente como una tabla
Procedimientos Programa o instrucciones de SQL que realizan algn tipo de proceso en la base de datos.
Funciones Programa o instrucciones de SQL que realizan algn tipo de proceso en la base de datos,
obligados a devolver un valor.
Triggers Eventos o Instrucciones que se ejecutan en las operaciones de insercin, actualizacin y
o Disparadores borrado de datos.
ndices Estructura de datos que mejora la velocidad de las operaciones, por medio de un
identificador nico de cada fila de una tabla.
Constraints Validaciones y reglas a nivel de columnas respecto a datos permisibles y/o validos.

Departamento de Informtica, 2016


Lenguaje SQL

SQL (Structured Query Language) es un lenguaje de programacin


diseado para almacenar, manipular y recuperar datos
almacenados en bases de datos relacionales
1974 IBM Prototipo
Relation Software primer producto Comercial Hoy Oracle
Estndar ANSI-86, ANSI-89, ANSI-92, 99,2003,2005, 2008

Departamento de Informtica, 2016


Conexin a base de datos

JDBC: Conectividad de base de datos Java, es un API (interfaz de


programacin de aplicaciones) que permite la ejecucin de
operaciones sobre bases de datos desde el lenguaje Java.
ODBC: Estndar de acceso a las bases de datos, que permite la
ejecucin de operaciones sobre bases de datos a travs de la
interfaz de Cliente SQL.

Departamento de Informtica, 2016


Navegadores de Base de Datos

Departamento de Informtica, 2016


Esquema de datos (E-R) de trabajo

Departamento de Informtica, 2016


Comandos SQL Bsicos

Para qu utilizamos los comandos SQL? El uso comn es la


seleccin de datos desde tablas ubicadas en una base de datos.
Inmediatamente, para lo que tenemos dos palabras claves:
necesitamos SELECT la informacin FROM una tabla.

Departamento de Informtica, 2016


Estructura de una Sentencia SQL SELECT

Verbo Nombre de Columnas

SELECT FIRST_NAME, LAST_NAME, GENDER FROM employees


WHERE EMP_NO = 10036
Tabla

Clusula
Palabras Expresin - filtro
reservadas

Departamento de Informtica, 2016


COMANDO DISTINCT

Discrimina las filas duplicada de una consulta.

Formato:
SELECT DISTINCT "nombre_columna,columna 2
FROM "nombre_tabla";

Ejemplo:

SELECT DISTINCT first_name FROM employees

Departamento de Informtica, 2016


Palabra reservada WHERE

Permite aplicar una condicionante al conjunto de datos a consultar


(tablas o vistas).

SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "condicin";

Ejemplo
select first_name from employees
WHERE emp_no = 10049

Departamento de Informtica, 2016


Condicionantes And , Or

Las condicionantes compuestas estn formadas por multiples


condiciones simples conectadas por AND u OR. No existe limite de
condicionantes simples que puedan presentarse en una sola
instruccin SQL.
Ejemplo :
SELECT first_name, last_name FROM employees
Where emp_no=10035 or emp_no=10036

Departamento de Informtica, 2016


Comando SQL IN

El comando (in) es utilizado para la bsqueda de valores basados en


una lista de valores.

SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" IN (''valor1', ''valor2', ...);
Ejemplo:
SELECT first_name, last_name FROM employees
Where emp_no in (10035,10036)

Departamento de Informtica, 2016


Comando SQL Between

Palabra clave BETWEEN permite la seleccin de un rango


Sintaxis:
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" BETWEEN 'valor1' AND 'valor2';

Ejemplo:
SELECT first_name, last_name, hire_date FROM employees
WHERE hire_date BETWEEN '1986-12-01' AND '1989-12-01';

Departamento de Informtica, 2016


Comando SQL LIKE

Permite hacer una bsqueda basad en un patrn en lugar de un


valor especifico.
Sintaxis:
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" LIKE {patrn};

SELECT *
FROM employees
WHERE first_name LIKE '%AN%';

Departamento de Informtica, 2016


Comando SQL ORDER BY

Permite ordenar los datos de una forma en particular de forma


ascendente o descendente.
Sintaxis:
SELECT "nombre_columna"
FROM "nombre_tabla"
[WHERE "condicin"]
ORDER BY "nombre_columna" [ASC, DESC];
Ejemplo:
SELECT * FROM employees
ORDER BY hire_date desc

Departamento de Informtica, 2016


Funciones matemticas bsicas

AVG: Valor promedio


COUNT: Contador
MAX: Valor Mximo
MIN: Valor Mnimo
SUM: Suma
Sintaxis:
SELECT "tipo de funcin"("nombre_columna")
FROM "nombre_tabla";

Departamento de Informtica, 2016


SQL COUNT()
Sintaxis:
SELECT COUNT("nombre_columna")
FROM "nombre_columna";

Discriminar duplicados al contar:


SELECT COUNT( DISTINCT "nombre_columna")
FROM "nombre_columna";
Ejemplo:
SELECT COUNY(DISTINCT salary) FROM employees.salaries
ORDER BY emp_no;
Departamento de Informtica, 2016
SQL Group By

Nos permite agrupar nuestras funciones matemticas bsicas (sum,


count, etc.).
Sintaxis:
SELECT "nombre1_columna", SUM("nombre2_columna")
FROM "nombre_tabla"
GROUP BY "nombre1-columna";

Ejemplo
SELECT emp_no, COUNT(salary) FROM employees.salaries
GROUP BY emp_no;

Departamento de Informtica, 2016


SQL HAVING

Reservado para funciones de agrupamiento


Permite filtrado en los valores de agrupamiento
Sintaxis
SELECT "nombre1_columna", SUM("nombre2_columna")
FROM "nombre_tabla"
GROUP BY "nombre1_columna"
HAVING (condicin de funcin aritmtica);
Ejemplo:
SELECT
emp_no, COUNT(*)
FROM employees.salaries
GROUP BY emp_no
HAVING COUNT(*)>1

Departamento de Informtica, 2016


JOINS o Relacin de tablas

Nos permite ralaciones dos o mas tablas por los campos comunes
entre ellos.
Ejemplo
SELECT e.emp_no, e.first_name,e.last_name, d.dept_name
FROM employees.current_dept_emp s, employees.employees e ,
employees.departments d
where s.emp_no = e.emp_no
and s.dept_no= d.dept_no;

Departamento de Informtica, 2016


Concatenar Datos

MySQL: CONCAT( )
Oracle: CONCAT( ), ||
Sybase: +

Departamento de Informtica, 2016


SQL Substring

Permite para extraer una porcin de una cadena de texto


MySQL: SUBSTR( ), SUBSTRING( )
Oracle: SUBSTR( )
Sybase: SUBSTRING( )

Sintaxis:
SUBSTR (str, pos, len)
select substr(first_name, 1,3), first_name from employees

Departamento de Informtica, 2016


SQL TRIM()

Elimina los espacios en blanco al inicion y final de una cadena de texto.

MySQL: TRIM( ), RTRIM( ), LTRIM( )


Oracle: TRIM(), RTRIM( ), LTRIM( )
SQL Server: RTRIM( ), LTRIM( )

Ejemplo:
SELECT TRIM(' Sample ') FROM dual;

Departamento de Informtica, 2016


Manipulacin de Datos

Como crear una tabla


Sintaxis:
CREATE TABLE Customer
(First_Name char(50),
Last_Name char(50),
Address char(50) default 'Unknown',
City char(50) default 'Barcelona',
Country char(25),
Birth_Date datetime);
Ejemplo:
CREATE TABLE "nombre_tabla"
("columna 1" "tipo_de_datos_para_columna_1",
"columna 2" "tipo_de_datos_para_columna_2",
... );

Departamento de Informtica, 2016


Borrar una tabla.

DROP TABLE "nombre_tabla";

TRUNCATE TABLE "nombre_tabla";

Departamento de Informtica, 2016


Insercin de datos bsico

INSERT INTO "nombre_tabla" ("columna1", "columna2", ...)


VALUES ("valor1", "valor2", ...);
Ejemplo
INSERT INTO employees.employees (emp_no, birth_date,
first_name, last_name, gender, hire_date)
VALUES (0, '1977-01-27', 'MARIO', 'ALBERTO','M', '2016-01-01')

Departamento de Informtica, 2016


Actualizacin de Datos

UPDATE "nombre_tabla"
SET "columna_1" = [nuevo valor]
WHERE "condicin";

Ejemplo:
UPDATE EMPLOYEES
SET first_name = CARLOS
WHERE emp_no= 0

Departamento de Informtica, 2016


Borrado de registros

DELETE FROM "nombre_tabla"


WHERE "condicin";

DELETE FROM employees


Where emp_no=0

Departamento de Informtica, 2016


SQL Avanzado

UNION [ALL]: Permite unir el resultado de dos o mas consultas y


su resultado son filas nicas entre ambas consultas, al adicionar
ALL incluye las filas duplicadas entre ambas consultas.
[Instruccin SQL 1]
UNION
[Instruccin SQL 2];

Departamento de Informtica, 2016


SQL Avanzado

INTERSECT: Devuelve las filas idnticas entre dos consultas.


Sintaxis
[Instruccin SQL 1]
INTERSECT
[Instruccin SQL 2];
Ejemplo:
SELECT emp_no FROM dept_emp
Where depto_no = d009
INTERSECT
SELECT emp_no FROM dept_emp
Where depto_no = d007
MySQL y MariaDB no soportan INTERSECT

Departamento de Informtica, 2016


SQL Avanzado

MINUS:
Toma todos los resultados de la primera instruccin SQL, y luego sustrae
aquellos que se encuentran presentes en la segunda instruccin SQL para
obtener una respuesta final. Si la segunda instruccin SQL incluye
resultados que no estn presentes en la primera instruccin SQL, dichos
resultados se ignoran.
[Instruccin SQL 1]
MINUS
[Instruccin SQL 2];

MySQL y MariaDB no soportan MINUS

Departamento de Informtica, 2016


Dwight Eisenhower

El mundo pertenece a
los optimistas; los
pesimistas son meros
espectadores

Departamento de Informtica, 2016


Finalizacin

GRACIAS POR SU
ASISTENCIA Y
PARTICIPACIN

Departamento de Informtica, 2016

Vous aimerez peut-être aussi