Download ¿Qué es el SQL
Document related concepts
Transcript
BASE DE DATOS INTRODUCCIÓN AL SQL SQL (structured query Language) ¿Qué es el SQL ? El SQL (Structured query language), lenguaje de consulta estructurado, es un lenguaje surgido de un proyecto de investigación de IBM para el acceso a bases de datos relacionales. Actualmente se ha convertido en un estándar de lenguaje de bases de datos, y la mayoría de los sistemas de bases de datos lo soportan, desde sistemas para ordenadores personales, hasta grandes ordenadores. Por supuesto, a partir del estándar cada sistema ha desarrollado su propio SQL que puede variar de un sistema a otro, pero con cambios que no suponen ninguna complicación para alguien que conozca un SQL concreto. Como su nombre indica, el SQL nos permite realizar consultas a la base de datos. Pero el nombre se queda corto ya que SQL además realiza funciones de definición, control y gestión de la base de datos. Componentes del SQL 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. Comandos Existen dos tipos de comandos SQL: los DLL que permiten crear y definir nuevas bases de datos, campos e índices. los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Comandos DLL Comando Descripción CREATE Utilizado para crear nuevas tablas, campos e índices DROP Empleado para eliminar tablas e índices ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. Comandos DML Comando Descripción 1 BASE DE DATOS INTRODUCCIÓN AL SQL SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación. 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 Características del lenguaje Una sentencia SQL es como una frase (escrita en inglés ) con la que decimos lo que queremos obtener y de donde obtenerlo. Todas las sentencias empiezan con un verbo (palabra reservada que indica la acción a realizar), seguido del resto de cláusulas, algunas obligatorias y otras opcionales que completan la frase. Todas las sentencias siguen una sintaxis para que se puedan ejecutar correctamente, para describir esa sintaxis utilizaremos un diagrama sintáctico como el que se muestra a continuación. Cómo interpretar un diagrama sintáctico Las palabras que aparecen en mayúsculas son palabras reservadas se tienen que poner tal cual y no se pueden utilizar para otro fin, por ejemplo, en el diagrama de la figura tenemos las palabras reservadas SELECT, ALL, DISTINCT, FROM, WHERE. Las palabras en minúsculas son variables que el usuario deberá sustituir por un dato concreto. En el diagrama tenemos nbcolumna, expresiontabla y condicion-debusqueda. Una sentencia válida se construye siguiendo la línea a través del diagrama hasta el punto que marca el final. Las líneas se siguen de izquierda a derecha y de arriba abajo. Cuando se quiere alterar el orden normal se indica con una flecha. 2 BASE DE DATOS INTRODUCCIÓN AL SQL ¿Cómo se interpretaría el diagrama sintáctico de la figura? Hay que empezar por la palabra SELECT, después puedes poner ALL o bien DISTINCT o nada, a continuación un nombre de columna, o varios separados por comas, a continuación la palabra FROM y una expresión-tabla, y por último de forma opcional puedes incluir la cláusula WHERE con una condición-debúsqueda. Por ejemplo: SELECT ALL col1,col2,col3 FROM mitabla SELECT col1,col2,col3 FROM mitabla SELECT DISTINCT col1 FROM mitabla SELECT col1,col2 FROM mitabla WHERE col2 = 0 Todas estas sentencias se podrían escribir y no darían lugar a errores sintácticos. Diferentes tipos campos empleados en las bases de datos Como sabemos una base de datos esta compuesta de tablas donde almacenamos registros catalogados en función de distintos campos (características). Un aspecto previo a considerar es la naturaleza de los valores que introducimos en esos campos. Dado que una base de datos trabaja con todo tipo de informaciones, es importante especificarle qué tipo de valor le estamos introduciendo de manera a, por un lado, facilitar la búsqueda posteriormente y por otro, optimizar los recursos de memoria. Cada base de datos introduce tipos de valores de campo que no necesariamente están presentes en otras. Sin embargo, existe un conjunto de tipos que están representados en la totalidad de estas bases. Estos tipos comunes son los siguientes: Alfanuméricos Contienen cifras y letras. Presentan una longitud limitada (255 caracteres) Numéricos Existen de varios tipos, principalmente, enteros (sin decimales) y reales (con decimales). Booleanos Poseen dos formas: Verdadero y falso (Sí o No) Fechas Almacenan fechas facilitando posteriormente su explotación. Almacenar fechas de esta forma posibilita ordenar los registros por fechas o calcular los días entre una fecha y otra... Memos Son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados (veremos más adelante lo que esto quiere decir). 3 BASE DE DATOS INTRODUCCIÓN AL SQL Son campos numéricos enteros que incrementan en una unidad su valor para cada registro incorporado. Su utilidad Autoincrementables resulta más que evidente: Servir de identificador ya que resultan exclusivos de un registro. LENGUAJE DE DEFINICION DE DATOS Sentencias en SQL que permiten definir los objetos de las base de Datos entre ellas tenemos: 1. CREATE TABLE Permite crear una tabla. Su sintaxis es la siguiente: CREATE TABLE nombre_tabla ( Nombre_campo_1 tipo_1 Nombre_campo_2 tipo_2 Nombre_campo_n tipo_n ) Ejemplo: crear la tabla PRODUCTO, la cual consta de los siguientes atributos y tiene a código como clave primaria. CREATE TABLE producto ( Codigo numeric NOT NULL PRIMARY KEY, DESCRIP VARCHAR(50) null, Medida char(3) null, stockActual numeric NOT NULL, codfamilia numeric NOT NULL REFERNECES FAMILIA) 2. ALTER TABLE añadir o redefinir una columna, modificar la asignación de almacenamiento, su sintaxis es la siguiente: Adición de una nueva columna a la tabla ALTER TABLE nombre_tabla ADD [COLUMN] definición_columna Eliminación de una columna de la tabla ALTER TABLE nombre_tabla nombre_columna{RESTRICT/CASCADE} DROP EJEMPLOS: Altera la tabla producto para agregar la columna precio_unitario 4 [COLUMN] BASE DE DATOS INTRODUCCIÓN AL SQL ALTER TABLE producto ADD precio_unitario decimal(10,2) NULL Altera la tabla producto para quitar la columna medida ALTER TABLE producto DROP COLUMN medida LENGUAJE DE MANIPULACION DE DATOS (DML) INSERTAR DATOS INSERT Permite añadir filas de datos a una tabla. Su sintaxis es la siguiente: INSERT INTO nombre de la tabla a la que se le va insertar el registro VALUES (conjunto de valores del registro); La inserción de datos se realiza conforme se la estructura se implantó en la tabla. Es decir en el orden en que se creó la tabla. En el caso de querer omitir un dato que no es nulo, solamente se ponen las comillas indicando el vacío de la cadena. EJEMPLOS: INSERT INTO producto VALUES(1, ‘Pintura Latex’,’GLN’,22,26210); INSERT INTO producto VALUES(2, ‘Soldadura’,’UND’,100,26210); EJERCICIOS Probar la creación de las siguientes tablas: create table clientes (numcli int not null, nomcli char(30)not null, dircli char(30), fax int, e_mail char(30), sal_0_30 decimal(10,2), sal_31_60 decimal(10,2), sal_61_90 decimal(10,2), primary key(numcli)) /******************************/ create table vendedor (codvendedor int not null, 5 BASE DE DATOS INTRODUCCIÓN AL SQL nomvendedor char(20)not null, apellvend char(20)not null, dirvendedor char(30), telvend int, e_mail char(30), cuota decimal(10,2), ventas decimal(10,2), primary key(codvendedor)) /***********************************************/ Luego crear las consultas para el ingreso de datos a las tablas cliente y vendedor. Crear una consulta para agregar el campo dni de tipo numérico en la tabla cliente. Crear una consulta para eliminar el campo ventas de la tabla vendedor. 6