Professional Documents
Culture Documents
INTRODUCCIN
El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos estandarizado por la ANSI, y ampliamente utilizado por una gran cantidad de Sistemas Administradores de Bases de Datos (SMDB) para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos, cumpliendo funciones de DDL y DML. Sin embargo como sucede con cualquier sistema de normalizacin hay excepciones para casi todo; de hecho, cada motozr de bases de datos o SMDB 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 el estndar ANSI ser interpretable por cualquier motor de datos. Para el caso particular del curso de Base de Datos se utilizara el Sistemas Administrador de Bases de Datos (SMDB) de la empresa Microsoft TM llamado SQL SERVER Express 2005. BREVE HISTORIA La historia de SQL inicia en 1974 con la definicin, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigacin de IBM, de un lenguaje para la especificacin de las caractersticas 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 revisin del lenguaje (SEQUEL/2), que a partir de ese momento cambi de nombre por motivos legales, convirtindose en SQL. En 1986, el ANSI adopt SQL (sustancialmente adopt el dialecto SQL de IBM) como estndar para los lenguajes relacionales y en 1987 se transform en estndar ISO. Esta versin del estndar va con el nombre de SQL/86. En los aos siguientes, ste ha
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 DDL
Comando Descripcin
CREATE Utilizado para la creacin de bases de datos, tablas, campos e ndices. DROP ALTER Empleado para eliminar bases de datos, tablas e ndices Utilizado para modificar las tablas agregando campos o cambiando la definicin de los campos.
SINTAXIS: Creacin de tablas CREATE TABLE nombre_tabla (<definicin_atributo_1> [UNIQUE] [NOT NULL], (<definicin_atributo_2> [UNIQUE] [NOT NULL], ..................... (<definicin_atributo_n> [UNIQUE] [NOT NULL]); Donde: definicin_atributo = nombre_atributo tipo_dato tamao) UNIQUE: no se permiten valores duplicados en la columna NOT NULL: no se permiten valores nulos en la columna Modificacin de tablas Aadir un nuevo atributo Borrar un atributo ALTER TABLE <nombre_tabla> ADD <definicin_atributo>; ALTER TABLE <nombre_tabla> DROP COLUMN <definicin_atributo>; En el caso que la tabla contenga una serie de filas, no se podr definir el atributo nuevo ni como UNIQUE ni como NOT NULL (ya que en las filas existentes no tendr
Y donde detalle solo es aplicable para la creacin de tablas, indicando el nombre del campo y el tipo de dato respectivo. Ejemplos: Creacin de una base de datos llamada biblioteca CREATE DATABASE biblioteca; Creacin de una tabla con atributos de cdigo de facultad, nombre de facultad y descripcin de facultad donde el campo cdigo de facultad tiene la caracterstica de ser una llave primaria o clave principal. CREATE TABLE facultad ( cod_fac nomb_fac desc_fac ); int NOT NULL, varchar(50) NULL, varchar(250) NULL,
PRIMARY KEY (cod_car), FOREIGN KEY (cod_fac) REFERENCES facultad ); Elimina la tabla carrera de una determinada base de datos. DROP TABLE carrera; Elimina la base de datos biblioteca creada anteriormente DROP DATABASE biblioteca; Ejemplos de Modificacin de campos: La siguiente secuencia de comandos modifica la tabla facultad para agregarle un campo llamado hist_fac cuyo campo almacenara un tipo de dato varchar(200). ALTER TABLE facultad ADD hist_fac VARCHAR(200); La siguiente secuencia elimina la columna hist_fac creada anteriormente. ALTER TABLE facultad DROP COLUMN hist_fac;
COMANDOS DML
Comando INSERT
Descripcin Utilizado para cargar lotes de datos en la base de datos en una nica operacin. Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado Utilizado para modificar los valores de los campos y registros especificados Utilizado para eliminar registros de una tabla de una base de datos
SELECT
Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular. Clusula FROM Descripcin Utilizada para especificar la tabla de la cual se van a seleccionar los registros Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar Utilizada para separar los registros seleccionados en grupos especficos Utilizada para expresar la condicin que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico
WHERE
OPERACIONES DE ACTUALIZACION SINTAXIS: INSERCIN DE FILAS INSERT INSERT INTO <nombre_tabla> [(<lista_de _atributos>)] VALUES (<valor_1>, <valor_2>,...,<valor_n>); MODIFICACIN DE FILAS UPDATE UPDATE <nombre_tabla> SET <atributo_1> = <valor_1>, <atributo_2> = <valor_2>, ........... <atributo_n> = <valor_n> [WHERE <condicin>]; La modificacin afectar a todas las filas que cumplan la condicin, si se especifica sta (la clusula WHERE expresa la condicin de bsqueda en una consulta y se ver posteriormente). Si no se especifica condicin, la modificacin afectar a todas las filas de la tabla. El valor que se asigne a un atributo puede ser una constante, o el resultado de una sub consulta (que deber ir entre parntesis). ELIMINACIN DE FILAS DELETE DELETE FROM <nombre_tabla> [WHERE <condicin>]; No se pueden eliminar partes de una fila. Si no aparece la clusula "WHERE" se eliminarn todas las filas de la tabla, no eliminndose la definicin de sta en el esquema.
10
El siguiente cdigo genera una lista de la tabla facultad a la que anteriormente se le ingreso 2 registros. SELECT cod_fac,nomb_fac,desc_fac FROM facultad Resultado:
11
El siguiente cdigo genera una lista de la tabla facultad a la que anteriormente se le ingreso 2 registros. SELECT * FROM facultad Resultado:
Como puede ver ambas sentencias generan el mismo resultado esto se debe a que * equivale a todos los atributos de una tabla.
o
El siguiente cdigo genera una lista de la tabla facultad a la que anteriormente se le ingreso 2 registros. SELECT DISTINCT desc_fac FROM facultad DISTINCT significa que genrela una lista sin valores repetidos. En este caso ambos registros tienen el mismo dato en el campo desc_fac.
El siguiente cdigo utiliza la clausula WHERE para generar un lista con un valor condicional. SELECT * FROM facultad WHERE cod_fac = 2
El siguiente cdigo utiliza la clausula WHERE para generar un lista con un valor condicional. SELECT * FROM facultad WHERE nomb_fac = Facultad de Ingeniera Resultado para las 2 sentencias anteriores:
12
Ejemplo de UPDATE:
o
El siguiente cdigo modificara el campo desc_fac de cada uno de los 2 registros de la tabla facultad. UPDATE facultad SET desc_fac = Esta facultad est abocada a la educacin y el ecoturismo para el desarrollo y la conservacin de de nuestra regin Madre de Dios ;
Sin embargo el dato ingresado anteriormente al campo desc_fac es solo para la facultad de educacin por ello se usa una condicional para especificar el registro que se desea modificar. UPDATE facultad SET desc_fac = Esta facultad se centra en el desarrollo del agro y la forestacin para una mejor explotacin de los recursos naturales de nuestra regin WHERE cod_fac = 2 ;
OPERADORES LGICOS Operador AND Uso Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdar si alguna de las dos es cierta. Negacin lgica. Devuelve el valor contrario de la expresin.
OR NOT
13
OPERADORES DE COMPARACIN Operador < > <> <= >= = Menor que Mayor que Distinto de Menor Igual que Mayor Igual que Igual que Uso
BETWEEN Utilizado para especificar un intervalo de valores. LIKE IN Utilizado en la comparacin de un modelo Utilizado para especificar registros de una base de datos
El siguiente cdigo genera una lista de la tabla facultad utilizando una condicional AND, es decir ambas condiciones deben de cumplirse. SELECT * FROM facultad WHERE cod_fac>=1 AND nomb_fac= 'Facultad de Ingeniera' Resultado:
El siguiente cdigo es similar a la anterior con la diferencia que no necesariamente ambas condiciones debe cumplirse para estar en el resultado. SELECT * FROM facultad WHERE cod_fac>=1 OR nomb_fac= 'Facultad de Ingeniera'
14
Resultado:
El siguiente cdigo negara la comparacin que se esta evaluando. SELECT * FROM facultad WHERE NOT cod_fac=1 Resultado:
EL OPERADOR LIKE Se utiliza para comparar una expresin de cadena con un modelo en una expresin SQL. Su sintaxis es: EXPRESIN LIKE MODELO En donde expresin es una cadena modelo o campo contra el que se compara expresin. Se puede utilizar el operador Like para encontrar valores en los campos que coincidan con el modelo especificado. Por modelo puede especificar un valor completo (Ana Mara), o se pueden utilizar caracteres comodn como los reconocidos por el sistema operativo para encontrar un rango de valores (Like An*). El operador Like se puede utilizar en una expresin para comparar un valor de un campo con una expresin de cadena. Por ejemplo, si introduce Like C* en una consulta SQL, la consulta devuelve todos los valores de campo que comiencen por la letra C. En una consulta con parmetros, puede hacer que el usuario escriba el modelo que se va a utilizar. El ejemplo siguiente devuelve los datos que comienzan con la letra P seguido de cualquier letra entre A y F y de tres dgitos:
15
'aa', 'aBa', 'aBBBa' 'aBC' 'a*a' 'abcdefg', 'abc' 'aaa', 'a3a', 'aBa' 'a0a', 'a1a', 'a2a' 'f', 'p', 'j' '9', '&', '%' 'A', 'a', '&', '~' 'An9', 'az0', 'a99' 'aaa' 'cab', 'aab' 'aBBBa' 'aaa', 'a10a' '2', '&' 'b', 'a' '0', '1', '9' 'abc', 'aj0'
Rango de caracteres '[a-z]' Fuera de un rango Distinto de un dgito Combinada '[!a-z]' '[!0-9]' 'a[!b-m]#'
En determinado motores de bases de datos, esta clusula, no reconoce el asterisco como carcter comodn y hay que sustituirlo por el carcter tanto por ciento (%). Por ejemplo, en SQLSERVER: Ejemplo LIKE 'A%' LIKE '_NG' Todo lo que comience por A Todo lo que comience por cualquier carcter y luego siga NG Descripcin
16
El siguiente cdigo genera una lista de la tabla facultad utilizando una condicional AND, es decir ambas condiciones deben de cumplirse. SELECT * FROM facultad WHERE LIKE nomb_fac '%Ingeniera' Resultado:
OPERADOR 'BETWEEN ... AND ...' Establece una comparacin dentro de un determinado intervalo. Ejemplo del operador BETWEEN ... AND:
o
Obtener el nombre de mquina para aquellas cuyo precio por hora est comprendido entre 5000 y 15000. SELECT nombre FROM maquinas WHERE precio_hora BETWEEN 5000 AND 10000; Tambin se puede utilizar NOT BETWEEN.
OPERADOR "IN". Indica pertenencia. Comprueba la pertenencia de una valor a un conjunto dado (que debe ir entre parntesis). Este conjunto puede especificarse por enumeracin de sus elementos o por el resultado de la ejecucin de una sentencia SELECT. Ejemplo del operador IN:
17
Obtener los nombres de aquellos conductores que residen en 'TAMBOPATA' o en 'TAHUAMANU'. SELECT nombre FROM conductores WHERE localidad IN ('TAMBOPATA','TAHUAMANU');
Obtener nombres de los trabajadores que han utilizado la mquina 'M2'.. SELECT nombre FROM conductores WHERE cod_con IN (SELECT cod_con FROM trabajos WHERE cod_tra = 'M2');
o SELECT nombre FROM conductores WHERE cod_con IN (SELECT cod_con FROM trabajos WHERE codd_tra = 'M2');
o SELECT nombre FROM conductores, trabajos WHERE conductores. cod_con = trabajos. cod_con AND cod_tra = 'M2';
o SELECT nombre FROM conductores WHERE 'M2' IN (SELECT cod_tra FROM trabajos WHERE conductores. cod_con = trabajos. cod_con); Tambin se puede utilizar NOT IN.
18
FUNCIONES DE AGREGADO Las funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros.
Descripcin Utilizada para calcular el promedio de los valores de un campo determinado Utilizada para devolver el nmero de registros de la seleccin Utilizada para devolver la suma de todos los valores de un campo determinado Utilizada para devolver el valor ms alto de un campo especificado Utilizada para devolver el valor ms bajo de un campo especificado
Obtiene el promedio de un campo especifico, en este caso calcula el sueldo promedio de la tabla empleado. SELECT AVG(sueldo) FROM empleado;
Calcula la suma total del campo sueldo para saber el total de planilla de pago en una empresa.
19
Obtiene el mximo sueldo o el sueldo mayor de la tabla empleado. SELECT Max(sueldo) FROM empleado;
Obtiene la cantidad de carreras agrupadas de acuerdo a cada facultad. SELECT count(cod_fac) FROM carrera GROUP BY cod_fac;
Obtiene la cantidad de carreras agrupadas de acuerdo a cada facultad pero solo si se cumple con la igualdad. SELECT count(cod_fac) FROM carrera GROUP BY cod_fac Having cod_fac=2;
20
Lista a los usuarios registrados ordenados alfabticamente de acuerdo al nombre de usuario. SELECT * FROM usuario Order By nomb_usu ASC;
21
BIBLIOGRAFA
22