1 / 28

SQL

SQL. Lcdo. Luis Peña.

uzuri
Download Presentation

SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL Lcdo. Luis Peña.

  2. El SQL: El Lenguaje de Consulta Estructurado (StructuredQueryLanguage) es un lenguaje declarativo de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales que permite especificar diversos tipos de operaciones en éstos últimos.El SQL es una herramienta para organizar, gestionar y recuperar datos almacenados en una base de datos informática de tipo relacional. Cuando se necesita recuperar datos de una base de datos, se utiliza al lenguaje SQL para efectuar la petición, ya sea en modo consola o desde el código programado inmerso en una aplicación tipo HMI que ha sido desarrollado desde un lenguaje anfitrión (GAMBAS BASIC, VISUAL BASIC, etc). El DBMS, sea MySQL, Oracle, SQL Server, etc, procesa la petición SQL, recupera los datos solicitados y los devuelve. Este proceso de solicitar datos de la Base de datos y de recibir los resultados se denomina consulta (Query) a la base de datos, de aquí su nombre StructuredQueryLanguage.

  3. El SQL se utiliza para controlar todas las funciones que un DBMS proporciona a sus usuarios, incluyendo: • Definición de Datos. El SQL permite a un usuario definir la estructura y organización de los datos almacenados y de las relaciones entre ellos. • Recuperación de Datos. El SQL permite al usuario o a un programa de aplicación recuperar los datos almacenados en la base de datos y utilizarlos. • Manipulación de Datos. El SQL permite a un usuario o a un programa de aplicación actualizar la base de datos añadiendo nuevos datos, suprimiendo datos antiguos y modificando datos previamente almacenados. • Control de Acceso. El SQL puede ser utilizado para restringir la capacidad de un usuario para recuperar, añadir, eliminar y modificar datos, protegiendo así los datos almacenados frente a accesos no autorizados. • Compartición de Datos. El SQL se utiliza para coordinar la compartición de datos por parte de usuarios concurrentes, asegurando que no interfieran unos con otro. • Integridad de Datos. El SQL define restricciones de integridad en la base de datos, protegiéndola contra corrupciones debidas a actualizaciones inconsistentes o a fallos del sistema. Por lo tanto el SQL es un lenguaje completo de control e interactuación con un sistema de gestión de bases de datos.

  4. EL PAPEL DEL SQL • El SQL no es en si mismo un DBMS, ni un producto autónomo, no se puede ir a una tienda de informática y comprar al SQL solo. El SQL es parte integral de un DBMS (ORACLE; MySQL, etc), Es un lenguaje que funciona como un a herramienta que permite comunicar al DBMS con la base de datos. El lenguaje SQL está compuesto por comandos, cláusulas, operadores lógicos, operadores de comparación y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. • El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional.

  5. Lenguaje de definición de datos (DDL) El lenguaje de definición de datos (en inglés Data DefinitionLanguage oDDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Existen tres operaciones básicas: CREATE, ALTER y DROP. • Los DDL que permiten crear y definir nuevas bases de datos, campos e índices.

  6. CREATEEste comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, índice, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Ejemplo (crear una tabla) CREATE TABLE 'TABLA_NOMBRE‘ ( 'CAMPO_1' INT, 'CAMPO_2' STRING Key(campo_x,...) ) Create Table artículos(id_articulo INT(4) NOT NULL AUTO_INCREMENT,titulo VARCHAR(50),autor VARCHAR(25),editorial VARCHAR(25),precio REAL,KEY(id_articulo))

  7. ALTEREste comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla. Ejemplo (agregar columna a una tabla) ALTER TABLE 'TABLA_NOMBRE' ( ADD NUEVO_CAMPO INT UNSIGNED meel ) ALTER TABLE ejemplo ENGINE = InnoDBCambiar el tipo de motor (engine) de la tabla 'ejemplo‘ ALTER TABLE ejemplo DROP COLUMN nombreElimina la columna 'nombre' de la tabla 'ejemplo'. ALTER TABLE ejemplo CHANGE monto cantidad FLOAT(8,2)Cambia el nombre de la columna 'monto' al nuevo nombre 'cantidad' con la definición del tipo de datos. ALTER TABLE ejemplo MODIFY cantidad FLOAT(6,2) NOT NULLCambia el tipo de datos de la columna 'cantidad' y especifica que no admite nulos.

  8. DROPEste comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.Ejemplo ALTER TABLE ''TABLA_NOMBRE'' ( DROP COLUMN ''CAMPO_NOMBRE1'' ) EJEMPLOS: ALTER TABLE ejemplo DROP PRIMARY KEYElimina la llave primaria de la tabla 'ejemplo‘ ALTER TABLE ejemplo DROP FOREIGN KEY id_usuarioElimina de la tabla 'ejemplo' la llave foránea 'id_usuario'.

  9. TRUNCATEEste comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.Ejemplo TRUNCATE TABLE ''TABLA_NOMBRE1‘’

  10. Lenguaje de manipulación de datos (DML) El lenguaje de manipulación de datos (en inglés Data ManipulationLanguage o DML), es el que se encarga de la modificación de los datos contenidos en las tablas de la base de datos. Existen tres operaciones básicas: INSERT, UPDATE, DELETE y SELECT. Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

  11. INSERTUna sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.Forma básica INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...'']) Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le será asignado el valor por omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error.

  12. Ejemplo INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Roberto Jeldrez', 4886850); Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada: INSERT INTO ''tabla'' VALUES (''valor1'', [''valor2,...'']) Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas de la tabla 'agenda_telefonica'): INSERT INTO agenda_telefonica VALUES ('Roberto Jeldrez', 4886850);

  13. Inserciones en múltiples filasUna característica de SQL (desde SQL-92) es el uso de constructores de filas para insertar múltiples filas a la vez, con una sola sentencia SQL:INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1a'', [''valor1b,...'']), (''value2a'', [''value2b,...'']),... Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas en la tabla 'agenda_telefonica'): INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850'), ('Alejandro Sosa', '4556550'); Que podía haber sido realizado por las sentencias. INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850'); INSERT INTO agenda_telefonica VALUES ('Alejandro Sosa', '4556550');

  14. La sentencia SELECTLa sentencia SELECT nos permite consultar los datos almacenados en una tabla de la base de datos.El formato de la sentencia select es: 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 ]}]] SELECTPalabra clave que indica que la sentencia de SQL que queremos ejecutar es de selección. 

  15. ALLIndica que queremos seleccionar todos los valores. Es el valor por defecto y no suele especificarse casi nunca.DISTINCTIndica que queremos seleccionar sólo los valores distintos.FROMIndica la tabla (o tablas) desde la que queremos recuperar los datos. En el caso de que exista más de una tabla se denomina a la consulta "consulta combinada" o "join". En las consultas combinadas es necesario aplicar una condición de combinación a través de una cláusula WHERE. WHEREEspecifica una condición que debe cumplirse para que los datos sean devueltos por la consulta. Admite los operadores lógicos AND y OR.

  16. GROUP BY Especifica la agrupación que se da a los datos. Se usa siempre en combinación con funciones agregadas.HAVING Especifica una condición que debe cumplirse para los datos. Especifica una condición que debe cumplirse para que los datos sean devueltos por la consulta. Su funcionamiento es similar al de WHERE pero aplicado al conjunto de resultados devueltos por la consulta. Debe aplicarse siempre junto a GROUP BY y la condición debe estar referida a los campos contenidos en ella.ORDER BY Presenta el resultado ordenado por las columnas indicadas. El orden puede expresarse con ASC (orden ascendente) y DESC (orden descendente). El valor predeterminado es ASC.

  17. EJEMPLOS:SELECT matricula,                 marca,                 modelo,                 color, numero_kilometros, num_plazasFROM tCochesORDER BY marca,modelo; También podríamos haber simplicado la consulta a través del uso del comodin de campos, el asterisco "*". SELECT *FROMtCochesORDER BYmarca,modelo;  El uso del asterisco indica que queremos que la consulta devuelva todos los campos que existen en la tabla.

  18. SELECT matricula,                 marca,                 modelo,                 color,                 numero_kilometros,                 num_plazas FROM tCochesWHERE matricula = 'M-1525-ZA‘; Cuando en una cláusula where queremos incluir un tipo texto, debemos incluir el valor entre comillas simples. SELECT matricula,              marca,              modelo,              color, numero_kilometros, num_plazasFROMtCochesWHERE matricula = 'M-1525-ZA'    OR matricula = 'M-2566-AA' ;

  19. La sentencia UPDATE. Para la actualización de datos SQL dispone de la sentencia UPDATE. La sentencia UPDATE permite la actualización de uno o varios registros de una única tabla. La sintaxis de la sentencia UPDATE es la siguiente:  UPDATE <nombre_tabla> SET  <campo1> = <valor1>        {[,<campo2> = <valor2>,...,<campoN> = <valorN>]}[ WHERE <condicion>]; EJEMPLOS: UPDATEtCochesSETmarca = '1'WHEREmarca = 'FORD'; UPDATEtCochesSETmarca = '2'WHEREmarca = 'RENAULT';

  20. La sentencia DELETE.Para borrar datos de una tabla, debemos utilizar la sentencia DELETE.  La sintaxis de la sentencia DELETE es la siguiente:DELETE FROM <nombre_tabla> [ WHERE <condicion>]; EJEMPLO: Es buena idea especificar en la sentencia WHERE los campos que forman la clave primaria de la tabla para evitar borrar datos que no queramos eliminar. DELETE FROM tCochesWHEREmarca = 'SEAT';

  21. Cuando trabajemos con la sentencia DELETE debemos tener en cuenta las siguientes consideraciones:Solo podemos borrar datos de una única tabla. Cuando borramos datos de una vista, los estamos borrando también de la tabla. Las vistas son solo una forma de ver los datos, no una copia. Si intentamos borrar un registro de una tabla referenciada por una FOREING KEY como tabla maestra, si la tabla dependiente tiene registros relacionados la sentencia DELETE fallará.

  22. Sistemas de gestión de base de datos Los sistemas de gestión de base de datos con soporte SQL más utilizados son, por orden alfabético: • DB2 • Firebird • Informix • Interbase • MySQL • Oracle • PostgreSQL • SQL Server • Sybase ASE • Y entre los de menos envergadura el ACCESS y el BASE.

  23. Lenguaje de control de datos (DCL) • Un Lenguaje de Control de Datos (DCL por sus siglas en inglés: Data Control Language) es un lenguaje proporcionado por el sistema de gestión de base de datos que incluye una serie de comandos SQL que permiten al administrador controlar el acceso a los datos contenidos en la base de datos. Algunos ejemplos de comandos incluidos en el DCL son los siguientes: GRANT, REVOKE. CREACIÓN DE USUARIOSCREATE USER nombre usuario INDENTIFIED BY “contraseña”;DROP USER nombre-usuario;Privilegios de usuario.Dar PrivilegiosGRANT privilegios [(columnas)]ON {*.* | bd.* | bd.tabla} TO nombre-usuario;Lista de privilegiosALL, SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, CREATE VIEW, DROP VIEW, CREATE USER, DROP USER, TRIGGERSQuitar PrivilegiosREVOKE privilegios [(columnas)] ON igualqueantes FROM nombre-usuario; SHOW GRANTS FOR nombreusuario;

  24. Comandos Existen dos tipos de comandos SQL: • DLL que permiten crear y definir nuevas bases de datos, campos e índices. • DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

  25. Cláusulas Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.

  26. Operadores Lógicos

  27. Operadores de Comparación

  28. Funciones de Agregado Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros.

More Related