Bases de Datos SQL, Structured Query Language

Slides:



Advertisements
Presentaciones similares
SQL Y BASES DE DATOS A TRAVÉS DE LA WEB
Advertisements

Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación.
SQL Sigla del nombre “Structured Query Language”.
Repaso DBD!!! (Es ahora o nunca)
LENGUAJE ESTRUCTURADO DE CONSULTA “SQL”
BASE DE DATOS OBJETO RELACIONAL
Base de Datos Orientada a Objetos (OODBMS)
SQL BAJO EL ENTORNO PHP/MYSQL MI JUAN PABLO TORRES HERRERA UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA ENSENADA Mayo de 2005.
Fernando Velasco
Por: Ronald Toscano Pretelt
SQL G r u p o
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
EL LENGUAJE ESTÁNDAR SQL
Sistema de gestión de las bases de datos (SGBD).
Unidad 3 Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
Lenguaje Estructurado de Consultas (Structured Query Language – SQL)
4.3. Privilegios de usuarios
PL/SQL Francisco Moreno Universidad Nacional.
Mayo de 2009Dos Ideas - La visión de Sistemas desde el Desarrollo Definición de Datos Conceptos básicos.
Control del Acceso de los Usuarios
SESIÓN 2. Completados por el tipo de objeto sobre el que actúan y el objeto concreto: CREATE DATABASE mibase ; Permite crear una base de datos llamada.
MySQL M.C. Pedro Bello López.
Lenguaje SQL (Structured Query Language)
SQL Lenguaje de consulta estructurado
SQL el Structured Query Language no es mas que un lenguaje estándar de comunicación con bases de datos.
MSC. RUTH VEGA BASES DE DATOS SQL SERVER
Subconsultas Avanzadas
Integrantes: Peter velazques Andres heredia Juan Mendez
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Gestión de Objetos con Vistas de Diccionario de Datos
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
COMANDOS SQL.
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
ESCUELA TECNOLÓGICA INSTITUTO TÉCNICO CENTRAL Ing. Johanna Vargas Esp. Gerencia de proyectos.
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
CONSULTAS SENCILLAS A LA BASE DE DATOS
Tema 2: Base de datos relacionales
Consultas SQL (Base de Datos)
Introducción a Bases de Datos en Microsoft Access Programación de Computadoras 2 Sección: P.
LENGUAJE SQL.
Bases de Datos Sql.
Structured Query Language (Lenguaje Estructurado de Consultas)
SQL: DDL Francisco Moreno. SQL: DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la BD Tipos de objetos: - Tablas: corresponden a las.
LENGUAJE ESTRUCTURADO DE CONSULTAS
Instrucciones para crear tablas My SQL. A nivel teórico, existen dos lenguajes para el manejo de bases de datos: DDL (Data Definition Language) Lenguaje.
SQL Sigla del nombre “Structured Query Language”.
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
Prof. De Bases de Datos: Lcdo. Luis Peña. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query.
Diseña y administra base de datos avanzadas
Unidad 4 SEGURIDAD 4.1 Tipos de usuarios
Consultas SQL. SQL SQL es un lenguaje de consulta estructurado (Structured Query Languague). Se utiliza para: Eliminar Modificar Consultar La base de.
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
Comandos DDL Los comandos DDL son las siglas de Data Definition Language, y se corresponde con el conjunto de órdenes que permiten definir las estructuras.
(Lenguaje de consulta estructurado)
Base de Datos Conjunto de tablas organizadas y posiblemente relacionados entre si. Las tablas son las que almacenan la información.
SQL es un estándar internacional para trabajar con bases de datos, que consta de dos partes: una parte para manipular datos y una parte para definir tipos.
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
ORACLE SQL - DCL.
Unidad 6. Tema 4. Lenguaje de consultas SQL
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
SQL: DDL.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
Transcripción de la presentación:

Bases de Datos SQL, Structured Query Language Fernán Alonso Villa Garzón

Brevemente: SQL es el lenguaje de consulta universal para bases de datos. SQL ANSI 92 es el estándar SQL. Existen otras variantes que lo extienden como: T-SQL (Transact-SQL) y PL/SQL (Procedure Language / SQL) SQL proporciona tres conjuntos básicos de sentencias: D.M.L (lenguaje de manipulación de datos). D.D.L (Lenguaje de definición de datos). D.C.L (Lenguaje de Control de Datos).

Lenguaje de Definición de Datos DDL Este lenguaje se utiliza para la definición de tablas, vistas e índices entre otros en la base de datos. Comandos: CREATE – para crear objetos ALTER – para modificar la estructura de objetos DROP – para eliminar objetos TRUNCATE – para eliminar todos los registros de una tabla. COMMENT – para agregar comentarios de un objeto al diccionario de datos RENAME – para cambiar el nombre de un objeto

Lenguaje de Manipulación de Datos DML Como su nombre lo indica provee comandos para la manipulación de los datos, es decir, podemos seleccionar, insertar, eliminar y actualizar datos. Comandos: SELECT – para consultar datos. INSERT – Insertar datos. UPDATE – actualizar datos. DELETE – eliminar algunos o varios registros.

Lenguaje de Control de Datos DCL Este lenguaje provee comandos para manipular la seguridad de la base de datos, respecto al control de accesos y privilegios entre los usuarios. Comandos: GRANT – Para otorgar privilegios a un usuario sobre un objeto. REVOKE – Para quitar privilegios dados a un usuario sobre un objeto.

Componentes del Lenguaje SQL Tipos de Datos: SQL posee varios tipos de datos para almacenar información, los tipos de datos pueden ser: Numéricos (con o sin decimales). Alfanuméricos. Fecha y Hora Lógico Además, la mayoría de gestores de BD actuales soportan el tipo: BLOB (Binary Large Object), para almacenar archivos.

Componentes del Lenguaje SQL Dependiendo de cada gestor de bases de datos en general se pueden tener los siguientes tipos de datos: Númericos Alfanúmericos Fecha Lógico BLOB Integer char(n) Date Bit Image Numeric(n,m) varchar(n) DateTime   Text Decimal(n)    Float

Componentes del Lenguaje SQL Operadores: Aritméticos + Suma - Resta * Producto / División **   ^ Potencia Relacionales <        Menor que <= Menor o igual que > Mayor que >= Mayor o igual que <>   !=  Distinto !< No menor que !> No mayor que Lógicos AND Los operadores lógicos permiten comparar expresiones lógicas devolviendo siempre un valor verdadero o falso. Los operadores lógicos se evalúan de izquierda a derecha. OR NOT Concatenación Se emplea para unir  datos de tipo alfanumérico.

Componentes del Lenguaje SQL Funciones Agregadas: permiten realizar cálculos sobre datos de las tablas. Estas funciones se incorporan en las consultas SELECT y retornan un único valor al operar sobre un grupo de registros. Algunas: MAX() Devuelve el valor máximo. MIN() Devuelve el valor mínimo. SUM() Devuelve el valor de la sumatoria COUNT() Devuelve el número de filas AVG() Devuelve el promedio de los valores del campo

Componentes del Lenguaje SQL Predicados: son condiciones que se indican en clausula WHERE de una consulta SQL. BETWEEN...AND Comprueba que el valor de un campo esté dentro de un intervalo LIKE Compara un campo con una cadena alfanumérica. LIKE admite el uso de caracteres comodines ALL Señala a todos los elementos de la selección de la consulta ANY Indica que la condición se cumplirá si la comparación es cierta para al menos un elemento del conjunto. EXISTS Devuelve un valor verdadero si el resultado de una subconsulta devuelve resultados. IN Comprueba si un campo se encuentra dentro de un determinado rango. El rango puede ser una sentencia SELECT.

Componentes del Lenguaje SQL Caracteres Comodines: es un carácter que representa cualquier otro carácter o cadena de caracteres. Aunque no son propios de SQL, vale la pena recordarlos: Si se desea reemplazar cero un solo carácter: ? (signo de interrogación) ó _ (guión bajo) Si se desea reemplazar cero o varios caracteres: * (Asterisco) ó % (Porcentaje) Si se desea reemplazar un dígito cualquiera (0-9) # (signo de número)

Componentes del Lenguaje SQL Nomenclatura: la mayoría de la sintaxis de SQL se basa en el estándar, Extended Backus–Naur Form. Símbolo Significado < > Encierran parámetros de una orden que el usuario debe sustituir al escribir dicha orden por los valores que queramos dar a los parámetros. [ ] Indica que su contenido es opcional. { } Indica que su contenido puede repetirse una o más veces. | Separador de expresiones. Se debe poner al menos uno de la lista.

Componentes del Lenguaje SQL Nomenclatura, por ejemplo: CREATE TABLE <nombre_tabla> ( <nombre_campo> <tipo_datos> {,<nombre_campo> <tipo_datos>} ) ; Se aplica la notación: CREATE TABLE tbEmpresa ( nit varchar(150), nombre varchar(255), ubicacion varchar(255), ) ;

Creación de tablas con SQL en Oracle CREATE TABLE <nombre_tabla> ( <nombre_campo> <tipo_datos(tamaño)> [null | not null] [default <valor_por_defecto>] {,<nombre_campo> <tipo_datos(tamaño)> [null | not null] [default <valor_por_defecto>]} [, constraint <nombre> primary key (<nombre_campo>)] } [, constraint <nombre> foreign key (<nombre_campo> {,<nombre_campo>}) references <tabla_referenciada> ( <nombre_campo> {,<nombre_campo>} ) ] ) ;

Creación de tablas, ejemplo 1. CREATE TABLE tbAutos ( matricula char(8) not null, marca varchar(255), modelo varchar(255), color varchar(255) not null, numero_kilometros numeric(14,2) default 0, constraint PK_Coches primary key (matricula) ) ;

Creación de tablas, ejemplo 2-1. CREATE TABLE tbProveedor ( id numeric(10) not null, nombre varchar2(50) not null, correo varchar2(50), CONSTRAINT pk_tbProveedor PRIMARY KEY (id, nombre) );

Creación de tablas, ejemplo 2-2. CREATE TABLE tbProducto ( id numeric(10) not null, tbProveedor_id numeric(10) not null, tbProveedor_nombre varchar2(50) not null, nombre varchar2(50) not null, cantidad numeric(10) not null, CONSTRAINT pk_tbProducto PRIMARY KEY (id, tbProveedor_id, tbProveedor_nombre), CONSTRAINT fk_tbProducto_tbProveedor FOREIGN KEY (tbProveedor_id, tbProveedor_nombre) REFERENCES tbProveedor(id, nombre) );

DROP TABLE <nombre_tabla>; Algunas Aclaraciones Después de crear las tablas del ejemplo 2, ¿cuál seria el orden de eliminación? DROP TABLE <nombre_tabla>; ¿Cuál es la diferencia entre char, varchar, varchar2? char(n): Se usa para almacenar cadenas de longitud fija. Si la longitud de la cadena es menor que n, el espacio restante NO es liberado. varchar2(n): Se usa para almacenar cadenas de longitud variable. Si la longitud de la cadena es menor que n, el espacio restante es liberado. varchar(n): funciona igual que varchar2; sin embargo, no es recomendado usarlo, dado que Oracle lo tiene reservado para usos futuros,

Modificación de tablas con SQL en Oracle ALTER TABLE <table_name> add [CONSTRAINT constraint_name   FOREIGN KEY (column1, column2, ... column_n)   REFERENCES parent_table (column1, column2, ... column_n);; Permite: Añadir campos a la estructura inicial de una tabla. Añadir restricciones y referencias. Nota: para ver los atributos de una tabla, se usa el comando DESCRIBE <nombre_tabla>;

Modificación de tablas, ejemplo 1. -- Veamos los campos de la tabla tbProducto antes de modificarla. DESCRIBE tbProducto; -- Se agregan dos campos: ALTER TABLE tbProducto ADD calidad number(10) default 4; ALTER TABLE tbProducto ADD calidad2 number(10) default 5; -- Veamos los campos de la tabla tbProducto despues de modificarla.

Modificación de tablas, ejemplo 2. -- Veamos los campos de la tabla tbProducto antes de modificarla. DESCRIBE tbProducto; -- Se elimina un campo: ALTER TABLE tbproducto DROP COLUMN calidad2; -- Veamos los campos de la tabla tbProducto despues de modificarla.

Modificación de tablas, ejemplo 3. -- Ahora se desea que el campo CALIDAD haga parte de la clave primaria de la tabla Producto. -- Consultar las columnas que pertenecen a la clave primaria de la tabla TBPRODUCTO. SELECT COLUMN_NAME FROM user_cons_columns ucc JOIN user_constraints uc ON ucc.constraint_name=uc.constraint_name WHERE ucc.TABLE_NAME = 'TBPRODUCTO' AND uc.CONSTRAINT_NAME = 'PK_TBPRODUCTO' ; -- Las tablas en rojo son del sistema.

Modificación de tablas, ejemplo 3. -- Modificar la clave primaria de TBPRODUCTO. ALTER TABLE tbproducto DROP CONSTRAINT PK_TBPRODUCTO; ALTER TABLE tbProducto ADD CONSTRAINT pk_tbProducto PRIMARY KEY (id, tbProveedor_id, tbProveedor_nombre, calidad); -- Se comprueba si efectivamente se hizo el cambio. SELECT COLUMN_NAME FROM user_cons_columns ucc JOIN user_constraints uc ON ucc.constraint_name=uc.constraint_name WHERE ucc.TABLE_NAME = 'TBPRODUCTO' AND uc.CONSTRAINT_NAME = 'PK_TBPRODUCTO' ;

Modificación de tablas, ejemplo 3. En la siguiente dirección pueden encontrarse más ejemplos sobre el uso de ALTER. http://www.techonthenet.com/sql/tables/alter_table.php Por ejemplo, cambiar el nombre de un campo: ALTER TABLE <table_name> RENAME COLUMN <old_name> to <new_name>;

Sentencias de Inserción INSERT INTO <nombre_tabla> [(<campo1>[,<campo2>,...])] VALUES (<valor1>,<valor2>,...); INSERT INTO tbProveedor(id, nombre, correo) VALUES (12, 'Lina Rosario', 'lina@msn.com'); INSERT INTO tbproducto(id, tbproveedor_id, tbproveedor_nombre, nombre, cantidad) VALUES (18, 12, 'Lina Rosario', 'Manzana', 10); commit;

Definición de Índices Es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla. Al aumentar drásticamente la velocidad de acceso, se suelen usar sobre aquellos campos sobre los cuales se hagan frecuentes búsquedas. El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos: el elemento que se desea indexar y su posición en la base de datos.

Definición de Índices Sin embargo, los índices se actualizan automáticamente cuando realizamos operaciones de escritura en la base de datos. Lo cual reduce el rendimiento. Sintaxis: CREATE [UNIQUE] INDEX <nombre_indice> ON <nombre_tabla>( <nombre_campo> [ASC | DESC]                   {,<nombre_campo> [ASC | DESC]})                   );

Definición de Índices, Ejemplo CREATE UNIQUE INDEX UIX_tbProducto ON tbProducto (nombre); Por definición todos los campos de la clave primaria pertenecen a un índice, que tiene el mismo nombre de la clave: pk_producto. DROP INDEX UIX_tbProducto;

Definición de Vistas Una vista es una consulta, que refleja el contenido de una o más tablas, desde la que se puede acceder a los datos como si fuera una tabla. Las vistas no tienen una copia física de los datos, son consultas a los datos que hay en las tablas. Si actualizamos los datos de una vista, estamos actualizando realmente la tabla, y si actualizamos la tabla estos cambios serán visibles desde la vista.

Definición de Vistas Sintaxis CREATE VIEW <nombre_vista> AS (<sentencia_select>); CREATE VIEW vProductosxProveedor AS ( SELECT Prov.ID Proveedor_ID, Prov.NOMBRE Proveedor_Nombre, Prov.Correo Proveedor_Correo, Prod.Id Producto_ID, Prod.Cantidad Producto_Cantidad FROM tbProducto Prod, tbProveedor Prov WHERE ( Prod.Tbproveedor_Id = Prov.Id and Prod.Tbproveedor_Nombre = Prov.Nombre) ) ;

Definición de Vistas Eliminarla DROP VIEW vProductosxProveedor; Actualizarla CREATE VIEW vProductosxProveedor AS ( SELECT Prov.ID Proveedor_ID, Prov.NOMBRE Proveedor_Nombre, Prov.Correo Proveedor_Correo, Prod.Id Producto_ID, Prod.Cantidad Producto_Cantidad, Prod.Canlidad Producto_Calidad FROM tbProducto Prod, tbProveedor Prov WHERE ( Prod.Tbproveedor_Id = Prov.Id and Prod.Tbproveedor_Nombre = Prov.Nombre) ) ;

Definición de Sinónimos Un sinónimo es un nombre alternativo que identifica un tabla o vista en la base de datos. CREATE SYNONYM <nombre_sinonimo> FOR <nombre_tabla>; CREATE SYNONYM sPxP FOR vProductosxProveedor; CREATE SYNONYM sProd FOR tbProducto; DROP SYNONYM sProd;

Sentencias de Selección SELECT [ALL | DISTINCT ]              <nombre_campo> [{,<nombre_campo>}] FROM <nombre_tabla>|<nombre_vista>          [{,<nombre_tabla>|<nombre_vista>}] [WHERE <condicion> [{ AND|OR <condicion>}]] [GROUP BY <nombre_campo> [{,<nombre_campo >}]] [HAVING <condicion>[{ AND|OR <condicion>}]] [ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]                 [{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]]

Sentencias de Selección SELECT [ALL | DISTINCT ]              <nombre_campo> [{,<nombre_campo>}] FROM <nombre_tabla>|<nombre_vista>          [{,<nombre_tabla>|<nombre_vista>}] [WHERE <condicion> [{ AND|OR <condicion>}]] [GROUP BY <nombre_campo> [{,<nombre_campo >}]] [HAVING <condicion>[{ AND|OR <condicion>}]] [ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]                 [{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]]

Sentencias de Selección Sean las relaciones: VINOS ( Num , Nombre, Ano, Grados) PRODUCTORES ( Num , Apellido, Nombre, Región) COSECHAS ( Nprod, Nvin , Cantidad) ¿Cuáles productores producen por lo menos tres vinos diferentes?   Para cada productor seleccionado, requerimos su nombre  y apellido. SELECT p.nombre,  p.apellido FROM productores  p, cosechas  c, vinos  v WHERE p.num = c.nprod  AND                c.nvin = v.num GROUP BY p.num, p.nombre, p.apellido HAVING  COUNT(DISTINCT  v.nombre) >= 3;

Sentencias de Selección - Taller Se recomienda repasar las consultas de datos, realizando el Taller Publicado en: http://grupo-ingenieriaysoftware.udea.edu.co/~bddatos/esquemaBdeD.html

Creación de Usuarios -- Create the user CREATE USER fernan identified by "123" default tablespace USERS temporary tablespace TEMP profile DEFAULT; -- Grant/Revoke role privileges grant resource to fernan; grant connect to fernan; -- Grant/Revoke system privileges grant unlimited tablespace to fernan;

Permisos sobre los objetos Supongamos que: El usuario fernan tiene la tabla tbProductos. Además, existe la usuaria rosario, y esta necesita consultar la tabla de productos de fernan. Rosario intentará: select * from fernan.tbproveedor; Pero no puede, necesita que fernan desde su cuenta le otorgue los permisos necesarios: grant select on tbproveedor to rosario; En un momento dado fernan puede considerar que rosario ya no necesita del privilegio: revoke select on tbproveedor from rosario;

Los privilegios que se pueden otorgar o denegar. Descripción Select Permitir realizar consultas de selección. Insert Permitir agregar registros en la tabla o vista. Update Permitir actualizar registros en la tabla o vista. Delete Permitir eliminar registros en la tabla o vista. References Permitir crear restricciones de referecia sobre alguna tabla. Alter Permitir cambiar la estructura de una tabla. Index Permitir crear índices sobre la tabla. ALL Todos los privilegios Sintaxis: grant <privilegio>{,<privilegio>} on <objeto> to <user>; revoke <privilegio>{,<privilegio>} on <objeto> from <user>;

Referencias http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Nau r_Form http://www.devjoker.com/contenidos/Tutorial-SQL http://www.exforsys.com/tutorials/oracle-10g/ http://www.orafaq.com/faq/ http://msdn.microsoft.com/en-us/library/ms941658.aspx http://www.techonthenet.com/oracle/