Lenguaje de Programacion SQL

15
Universidad Fermín Toro Departamento de Ingeniería Cabudare Estado Lara Michael Ruiz Yoselin Delgado Enmanuel Rodríguez Luis Valera Josuel Castellanos

description

Informacion referente al lenguaje de programacion SQL.

Transcript of Lenguaje de Programacion SQL

Page 1: Lenguaje de Programacion SQL

Universidad Fermín Toro

Departamento de Ingeniería Cabudare Estado Lara

Michael Ruiz Yoselin Delgado Enmanuel Rodríguez Luis Valera Josuel Castellanos

Page 2: Lenguaje de Programacion SQL

Introducción

El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinada operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalización hay excepciones para casi todo; de hecho, 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á para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI será interpretable por cualquier motor de datos. El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.

Page 3: Lenguaje de Programacion SQL

Historia del lenguaje de programación SQL

El SQL empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre por motivos legales, convirtiéndose en SQL.

Page 4: Lenguaje de Programacion SQL

El prototipo (System R), basado en este lenguaje, se adoptó y utilizó internamente en IBM y lo adoptaron

algunos de sus clientes elegidos. Gracias al éxito de este sistema, que no estaba todavía comercializado, también otras compañías empezaron a desarrollar sus productos

relacionales basados en SQL. A partir de 1981, IBM comenzó a entregar sus productos relacionales y en 1983 empezó a vender DB2. En el curso de los años ochenta,

numerosas compañías (por ejemplo Oracle y Sybase, sólo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estándar industrial de hecho

por lo que respecta a las bases de datos relacionales.

Page 5: Lenguaje de Programacion SQL

Año Nombre Nombre Comentarios

1986 SQL:86 Primera publicación hecha por ANSI. Confirmada por ISO en 1987.

1989 SQL:89 Revisión menor.

1992 SQL:92 Revisión mayor.

1999 SQL:1999 Se agregaron expresiones regulares, consultas recursivas (para relaciones jerárquicas), triggers y algunas características orientadas a objetos.

2003 SQL:2003 Introduce algunas características de XML, cambios en las funciones, estandarización del objeto sequence y de las columnas autonumericas. (Ver Eisenberg et al.:SQL:2003 Has Been Published.)

El ANSI SQL sufrió varias revisiones y agregados a lo largo del tiempo

Page 6: Lenguaje de Programacion SQL

2006 SQL:2006 ISO/IEC 9075-14:2006 Define las maneras en las cuales el SQL se puede utilizar conjuntamente con XML. Define maneras de importar y guardar datos XML en una base de datos SQL, manipulándolos dentro de la base de datos y publicando el XML y los datos SQL convencionales en forma XML. Además, proporciona facilidades que permiten a las aplicaciones integrar dentro de su código SQL el uso de XQuery, lenguaje de consulta XML publicado por el W3C (World Wide Web Consortium) para acceso concurrente a datos ordinarios SQL y documentos XML.

2008 SQL:2008 Permite el uso de la cláusula ORDER BY fuera de las definiciones de los cursores. Incluye los disparadores del tipo INSTEAD OF. Añade la sentencia TRUNCATE.

Page 7: Lenguaje de Programacion SQL

Qué es y para qué sirve el SQL Las aplicaciones en red son cada día más numerosas y versátiles. En muchos casos, el esquema básico de operación es una serie de scripts que rigen el comportamiento de una base de datos. Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia de estándares que nos permiten el realizar las operaciones básicas de una forma universal.

Page 8: Lenguaje de Programacion SQL

Es de eso de lo que trata el Structured Query Language que no es mas que un lenguaje estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) en combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL...). El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En efecto, determinadas bases de datos implementan funciones específicas que no tienen necesariamente que funcionar en otras. Aparte de esta universalidad, el SQL posee otras dos características muy apreciadas. Por una parte, presenta una potencia y versatilidad notables que contrasta, por otra, con su accesibilidad de aprendizaje

Page 9: Lenguaje de Programacion SQL

SQL está compuesto por:

• Comandos • Clausulas-Operadores • Funciones de agregado-Consultas • Estos elementos se combinan en las instrucciones para

crear, actualizar y manipular las bases de datos.

Algunos aspectos de SQL son:

• Tipos de datos • Estructura de las tablas • Tipo de Índice

Page 10: Lenguaje de Programacion SQL

Ejemplo del lenguaje de programación SQL

RUTINA DE “SQL” EN PHP DISEÑO DE PAGINA WEB <?php **Apertura de base de datos** // Asigna los datos $dbhost='localhost'; Ruta de base de datos $dbusername='root'; Usuario administrador de Base Datos $dbuserpass='infokey2009'; Clave administrador $dbname='inv_semat'; Nombre de la Base de datos session_start(); **Inicio de Sesión** // Conectar a la base de datos mysql_connect ($dbhost, $dbusername, $dbuserpass); mysql_select_db($dbname) or die('No se pudo abrir la base de datos seleccionada'); // Envía los datos desde el formulario if ($_POST['username']) { //Captura datos del envió del nombre de usuario y clave $username=$_POST['username']; $password=$_POST['password']; if ($password==NULL) { //si es nulo muestra el siguiente mensaje echo "<center>La clave o usuario son inválidos, por favor intente de nuevo<center>"; }else{ //sino quiere decir que lo consiguio y ejecuta la consulta $query = mysql_query("SELECT username,password,TipoUsuario FROM tbusers WHERE username = '$username'") or die(mysql_error());

Page 11: Lenguaje de Programacion SQL

//se posiciona en el registro $data = mysql_fetch_array($query); //compara la clave del registro con la introducida if($data['password'] != $password) { //si no coincide muestra el siguiente mensaje echo "<center>Clave incorrecta, por Favor intente de nuevo<center>"; //sino quiere decir que lo ubico y pasa a extraer en Tipo de Usuario para saber limitaciones de la página }else{ $query = mysql_query("SELECT username,password,TipoUsuario FROM tbusers WHERE username = '$username'") or die(mysql_error()); //se posiciona en el registro $row = mysql_fetch_array($query); //asigna a variable el valor del tipo de usuario $variable1 =$data['TipoUsuario']; $_SESSION["s_username"] = $row['username']; $_SESSION["s_TipoUsuario"]=$row['TipoUsuario']; //Compara el tipo de Usuario; if ($variable1=='Administrador') { //ubica la página a abrir y cierra la actual header("Location: menu1.php?"); exit; }else { //en caso contrario emite el siguiente mensaje echo "<center>no tiene permiso<center>"; } } } }

Ejemplo del lenguaje de programación SQL

Page 12: Lenguaje de Programacion SQL

Ejemplo del lenguaje de programación SQL

INSTRUCCIONES NATIVAS DE SQL //CREACIÓN DE TABLA ** TABLA tbuser Campos id, username, password, email, TipoUsuario** CREATE TABLE `tbusers` ( `id` int(11) NOT NULL auto_increment, `username` varchar(30) NOT NULL, `password` varchar(20) NOT NULL, `email` varchar(40) NOT NULL, `TipoUsuario` varchar(15) NOT NULL, PRIMARY KEY (`id`), **Clave Principal** KEY `Usuario` (`username`) **Clave para búsquedas** ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ; //INSERTAR REGISTROS EN LA TABLA tbuser INSERT INTO `tbusers` VALUES (3, 'alcides', '123', '[email protected]', 'Administrador'); INSERT INTO `tbusers` VALUES (10, 'andres', '123', '[email protected]', 'Estudiante');

Page 13: Lenguaje de Programacion SQL

Conclusión

Como ya hemos comentado en la introducción, el SQL es un lenguaje muy potente, y esto hace que existan más sentencias y opciones de las que hemos explicado en este módulo. Sin embargo, no es menos cierto que hemos visto más sentencias que las que algunos sistemas relacionales ofrecen actualmente. Hemos intentado seguir con la mayor fidelidad el estándar, incluyendo comentarios sólo cuando en la mayoría de los sistemas relacionales comerciales alguna operación se hacía de forma distinta. Conociendo el SQL92 podemos trabajar con cualquier sistema relacional comercial; sólo tendremos que dedicar unas cuantas horas a ver qué variaciones se dan con respecto al estándar.

Page 14: Lenguaje de Programacion SQL

Recordemos cómo será la creación de una base de datos con SQL: 1) En primer lugar, tendremos que dar nombre a la base de datos, con la sentencia CREATE DATABASE, si la hay, o con CREATE SCHEMA. 2) A continuación definiremos las tablas, los dominios, las aserciones y las vistas que formarán nuestra base de datos. 3) Una vez definidas las tablas, que estarán completamente vacías, se deberán llenar con la sentencia INSERT INTO

Page 15: Lenguaje de Programacion SQL

Bibliografía

Aprende SQL G. Quintana, M. Marqués, J.L. Aliaga – 2008

http://es.wikipedia.org/wiki/SQL http://ocw.uoc.edu/computer-science-technology-and-

multimedia/bases-de-datos/bases-de-datos/P06_M2109_02149.pdf