Licenciatura en Sistemas Computacionales Lenguajes de Consultas Universidad Autnoma de Chiapas 1 MCE. Lus Alejandro Trujillo Santos ltsantos@unach.mx MATI. Alejandro Domnguez Lpez adguez@unach.mx Agosto 2010 Unidad1 Introduccin al Lenguaje de Consulta 2 Lenguaje de Consulta Objetivo Al trmino de la unidad el alumno conocer las caractersticas y componentes del lenguaje estructurado de consulta. 3 Contenido Introduccin. Componentes. Comandos. Clusulas. Operadores lgicos. Operadores de comparacin. Operadores SQL Funciones de registro simple Funciones de grupo 4 Introduccin El lenguaje estructurado de consulta (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para li d t i d i realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. 5 Introduccin Cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servir l t d l bl para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI ser interpretable por cualquier motor de datos. 6 2 LenguajeEstructuradodeConsulta. El Lenguaje Estructurado de Consulta o SQL, es el lenguaje de manipulacin de datos relacionales ms utilizado hasta el da de hoy. Ha sido respaldado por el American National Standards Institute (ANSI) como el lenguaje 7 Standards Institute (ANSI) como el lenguaje de manipulacin de bases de datos relacionales, es el lenguaje de acceso a datos ms utilizado por la mayora de los sistemas manejadores de bases de datos (DBMS), DB2, SQL/DS, Oracle, Ingres, Sybase, SQL Server, Dbase para Windows, Paradox, Microsoft Access entre otros. LenguajeEstructuradodeConsulta. Por la popularidad de SQL ha llegado a ser el lenguaje estndar para el intercambio de informacin entre computadoras, puede correr en cualquier computadora y sistema operativo. El desarrollo de SQL comenz en el instituto 8 El desarrollo de SQL comenz en el instituto de investigaciones de IBM a mediados de los 70s, bajo el nombre SEQUEL, varias versiones fueron liberadas, pero a mediados de 1980 el producto fue renombrado a SQL. Desde entonces, IBM se ha unido con otros vendedores en el desarrollo de productos para SQL. LenguajeEstructuradodeConsulta. El American National Standards Institute (ANSI) ha tomado el papel de dar mantenimiento al SQL, y peridicamente pblica versiones actualizadas del estndar SQL. La construccin de expresiones en una implementacin particular de SQL (por ejemplo, en 9 implementacin particular de SQL (por ejemplo, en Oracle o SQL) puede ser ligeramente diferente del estndar ANSI, esto debido en parte por que muchos de los productos DBMS fueron desarrollados antes de existiera el acuerdo sobre el estndar, y tambin por que las compaas han aadido mayor capacidad a sus productos para obtener ventajas competitivas. LenguajeEstructuradodeConsulta. Los comandos de SQL pueden ser utilizados interactivamente como un lenguaje de consulta, o pueden ser insertados en un programa de aplicacin (Inventarios, Cuentas por cobrar, Cuentas por pagar, Nomina, etc). 10 De esta manera SQL no es un lenguaje de programacin (como Cobol); es un sublenguaje de datos, o lenguaje de acceso de datos, que es insertado en otros lenguajes. Componentes delSQL El lenguaje SQL est compuesto por: Comandos Clusulas Operadores Funciones. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. 11 Comandos Existen tres tipos de comandos SQL: Los comandos DDL (Lenguaje de Definicin de de Datos) permiten crear y definir nuevas bases de datos, campos e ndices, vistas, procedimientos, usuarios. L DML it lt Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Los DCL permiten a los administradores de bases de datos (DBA) otorgar permisos y quitarlos de las cuentas de los usuarios de bases de datos. 12 3 ComandosDDL Comando Descripcin CREATE Utilizado para crear nuevas tablas, campos e ndices, vistas, usuarios, procedimientos y funciones. 13 DROP Empleado para eliminar tablas, campos e ndices, vistas, usuarios, procedimientos y funciones ALTER Utilizado para modificar las tablas agregando campos o cambiando la definicin de los campos. EjemplodelComandoCreate Create database control escolar; No. Nombre Descripcin Null? Tipo Longitud Tipo de llave Tabla Observaciones 1 Matricula Matrculadelalumno Varchar 7 PK 2 Paterno Apellidopaternoalumno Not null Varchar 50 3 Materno Apellidomaternoalumno Varchar 50 4 Nombre Nombredelalumno Not null Varchar 50 5 14 Create Table Estudiante ( matricula VARCHAR(7) PRIMARY KEY, Paterno VARCHAR(50) NOT NULL, Materno VARCHAR(50), Nombres VARCHAR(50) NOT NULL); Create database control_escolar; EjemplodelComandoDrop DropTable Estudiante; 15 EjemplodelComandoAlter No. Nombre Descripcin Null? Tipo Longitud Tipo de llave Tabla Observaciones 1 Matricula Matrculadelalumno Varchar 7 PK 2 Paterno Apellidopaternoalumno Not null Varchar 50 3 Materno Apellidomaternoalumno Varchar 50 4 Nombre Nombredelalumno Not null Varchar 50 5 Genero Generodelalumno Char 1 Check (M,F) 16 Alter Table Estudiante ADD (Genero CHAR(1) CHECK (Genero IN (M,F))); ComandosDML Comando Descripcin SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado INSERT Utilizado para cargar lotes de datos en INSERT Utilizado para cargar lotes de datos en la base de datos en una nica operacin. UPDATE Utilizado para modificar los valores de los campos y registros especificados DELETE Utilizado para eliminar registros de una tabla de una base de datos 17 EjemplodelComandoSelect Matricula Paterno Materno Nombres Genero A339994 Trujillo Santos LuisAlejandro M A339995 Hernndez Lpez JorgeAmador M A339996 Luna Jurez Martha F 18 SELECT matricula, paterno, materno, nombre FROM Estudiante WHERE Genero =F 4 EjemplodelComandoInsert Matricula Paterno Materno Nombres Genero A339994 Trujillo Santos LuisAlejandro M A339995 Hernndez Lpez JorgeAmador M A339996 Luna Jurez Martha F 19 INSERT INTO estudiante values (A339997, Gonzlez, Domnguz,Daniel, M) EjemplodelComandoUpdate Matricula Paterno Materno Nombres Genero A339994 Trujillo Santos LuisAlejandro M A339995 Hernndez Lpez JorgeAmador M A339996 Luna Jurez Martha F A339997 Gonzlez Domnguz Daniel M 20 UPDATE estudiante SET materno =Domnguez WHERE matricula =A339997; EjemplodelComandoDelete Matricula Paterno Materno Nombres Genero A339994 Trujillo Santos LuisAlejandro M A339995 Hernndez Lpez JorgeAmador M A339996 Luna Jurez Martha F A339997 Gonzlez Domnguez Daniel M 21 DELETE FROM estudiante WHERE matricula =A339997; ComandosDCL Comando Descripcin GRANT Este comando permite otorgar privilegios a las cuentas de usuario de bases de datos REVOKE Este comando permite quitar privilegios REVOKE Este comando permite quitar privilegios a las cuentas de usuario de bases de datos 22 Clusulas Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular. 23 Clusulas Clusulas Descripcin FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros. WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar GROUP BY Utilizada para separar los registros seleccionados en grupos especficos HAVING Utilizada para expresar la condicin que debe satisfacer cada grupo. ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico 24 5 Operadoreslgicos Operador Descripcin AND Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. OR Es el "o" lgico. Evala dos condiciones y devuelve un valor verdadero si alguna de las dos es cierta. NOT Negacin lgica. Devuelve el valor contrario de la expresin. 25 Operadoresde Comparacin Operador Descripcin < Menor que > Mayor que <> Distinto de <> Distinto de <= Menor igual que >= Mayor igual que = Igual que 26 OperadoresSQL Operador Descripcin BETWEEN Utilizado para especificar un intervalo de valores. LIKE Utilizado en la comparacin de un modelo IN Utilizado para especificar registros de una base de datos. 27 Funcionesconregistros Tipo de funcin Ejemplo De carcter LOWER UPPER SUBSTR Numricas ROUND TRUNC De conversin TO_CHART TO_NUMBER Con Fechas 28 FuncionesdeGrupo Funcin Descripcin AVG Utilizada para calcular el promedio de los valores de un campo determinado COUNT Utilizada para devolver el nmero de registros de la seleccin SUM Utilizada para devolver la suma de todos los valores de un campo determinado MAX Utilizada para devolver el valor ms alto de un campo especificado MIN Utilizada para devolver el valor ms bajo de un campo especificado 29 Fin 30