Manual de Practicas SQL

download Manual de Practicas SQL

of 26

Transcript of Manual de Practicas SQL

  • 7/25/2019 Manual de Practicas SQL

    1/26

    FACULTAD DE INGENIERIA MECNICA Y ELECTRICALICENCIATURA EN INGENIERIA EN SISTEMAS

    COMPUTACIONALES

    Manual de Practicas

    SQL

    Materia:

    Base de Datos

    Semestre:04

    Maestra:

    M. en C. Martha Elizabeth Evangelista Salazar

    Agosto 20132da. Edicin

  • 7/25/2019 Manual de Practicas SQL

    2/26

    UNIVERSIDAD DE COLIMA

    RectorM. en C. Jos Eduardo Hernndez Nava

    Secretario GeneralMtro. Christian Jorge Torres Ortiz Zermeo

    Coordinador General de DocenciaDra. Martha Alicia Ochoa Echeverra

    Director General de Educacin SuperiorDr. Carlos Eduardo Monroy Galindo

    FACULTAD DE INGENIERA MECNICA Y ELCTRICA

    Director del PlantelM. en C. Jos Luis lvarez Flores

    Coordinador AcadmicoM. en I. Salvador Barragn Gonzlez

    Titular de la materiaM. en C. Martha Elizabeth Evangelista Salazar

    Ing. Brenda Cerrato Abdal / Encargado del Centro de Cmputo

  • 7/25/2019 Manual de Practicas SQL

    3/26

    Presentacin

    La gestin de las bases de datos ha evolucionado desde una aplicacininformtica especializada hasta convertirse en parte esencial de los entornosinformticos modernos. Por lo tanto, los conocimientos acerca de los sistemas debases de datos se han convertido en una parte imprescindible de la informacin eninformtica.

    Propsito del manual.

    El alumno conocer los fundamentos de la teora de base de datos para aplicarlosen el diseo, desarrollo, implementacin y administracin en el uso de losmanejadores de bases de datos.

    Requerimientos:

    Computadora porttil o de escritorio Windows 97 o superior ACCESS 2007 o superior

  • 7/25/2019 Manual de Practicas SQL

    4/26

    CONTENIDO TEMTICO

    Directorio .................................................................................................. 1Presentacin ............................................................................................. 2

    Propsito del manual............................................................................... 3Requerimientos ....................................................................................... 3

    1.- LENGUAJE DE CONSULTA COMERCIAL (SQL)................................... 51.1.- Tipos bsicos de dominios ............................................................. 61.2.- Estructura bsica .......................................................................... 6

    2.- FUNCIONAMIENTO DEL SQL.............................................................. 72.1.- La clusula SELECT ....................................................................... 72.2.- La clusula WHERE ....................................................................... 82.3.- La clusula FROM ......................................................................... 92.4.- Operacin renombramiento .......................................................... 112.5- Operaciones con cadena de caracteres .......................................... 122.6.- Orden en la presentacin de las tuplas. ......................................... 12

    3.- OPERACIONES SOBRE CONJUNTOS................................................. 133.1.- La operacin unin ...................................................................... 133.2.- La operacin interseccin ............................................................. 143.3.- La operacin excepto ................................................................... 14

    4.- SUBCONSULTAS ANIDADAS .............................................................. 15

    5.- FUNCIONES DE AGREGACIN .......................................................... 18

    6.- MODIFICACIN DE LA BASE DE DATOS......................................... 196.1.- Estructura de la sentencia CREATE TABLE. .................................... 196.2.- Estructura de la sentencia INSERT ................................................ 206.3.- Estructura de la Sentencia CREATE INDEX .................................... 206.4.- Estructura de la sentencia UPDATE ............................................... 216.5.- Estructura de la sentencia DROP TABLE ........................................ 216.6.- Estructura de la sentencia DROP INDEX ........................................ 226.7.- Estructura de la sentencia DELETE ............................................... 22

    7.- VISTAS. .............................................................................................. 227.1 Estructura de la sentencia CREATE VIEW. ....................................... 247.2 Estructura de la sentencia DROP VIEW............................................ 25

    BIBLIOGRAFA ......................................................................................... 26

  • 7/25/2019 Manual de Practicas SQL

    5/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 5

    1.- LENGUAJES DE CONSULTA COMERCIALES (SQL)

    Un lenguaje de consulta comercial proporciona una interfaz ms amigable alusuario. Un ejemplo de este tipo de lenguaje es el SQL, (Structured QueryLanguaje, Lenguaje de Consulta Estructurado).

    Las partes ms importantes del SQL son:

    LDD: Lenguaje de definicin de datos (que nos permite crear lasestructuras)

    LMD: Lenguaje de manipulacin de datos (que nos permite tener acceso alas estructuras para suprimir, modificar e insertar)

    1.1- TIPOS BSICOS DE DOMINIOS:

    char(n).- Una cadena de caracteres de longitud fija, con una longitud nespecificada por el usuario. Tambin se puede utilizar la palabra completacharacter.

    varchar(n).- Una cadena de caracteres de longitud variable con unalongitud mxima n especificada por el usuario. La forma completa,character varyinges equivalente.

    int.- Para especificar nmeros enteros. La palabra integeres equivalente. numeric(p,d).- Un nmero de coma fijo, cuya precisin la especifca el

    usuario. El nmero est formado porp

    dgitos,d

    pertenece a la partedecimal. Ejemplo: numeric(3,1) permite el nmero 33.9, ms no 0.96,3.98, 444.5, etc.

    Smallint.- Enteros cortos .

    1.2.- ESTRUCTURA BSICA:

    La estructura bsica de una expresin en SQL contiene 3 partes: Select, From yWhere.

    La clusula Select se usa para listar los atributos que se desean en el

    resultado de una consulta. From, Lista las relaciones que se van a examinar en la evaluacin de laexpresin.

    Where, es la definicin de las condiciones a las que puede estar sujeta unaconsulta.

  • 7/25/2019 Manual de Practicas SQL

    6/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 6

    La consulta tpica de SQL tiene la siguiente forma:

    SelectA1,A2,A3...AnFrom r1,r2,r3...rmWhere Condicin(es)

    Donde:A1,A2,A3...An: Representan a cada atributo(s) o campos de las

    tablas de la base de datos relacional.R1,r2,r3....rm: Representan a la(s) tabla(s) involucradas en la consulta.Condicin: Es el enunciado que rige el resultado de la consulta.

    Si se omite la clusula Where,la condicin es considerada como verdadera, lalista de atributos (A1,A2..An) puede sustituirse por un asterisco (*), paraseleccionar todos los atributos de todas las tablas que aparecen en la clusulaFrom.

    2.- FUNCIONAMIENTO DEL SQL.

    El SQL forma el producto cartesiano de las tablas involucradas en la clusulaFrom, cumpliendo con la condicin establecida en la orden Where y despusproyecta el resultado con la orden Select.

    Para la realizacin de los siguientes ejercicios es necesario contar con lassiguientes tablas de la entidad bancaria:

    Tabla cl ienteNombre_cliente Calle_cliente Ciudad_cliente

    Abril Preciado ValsanAmo Embajadores ArganzuelaBadorrey Delicias ValsanFernndez Jazmn LenGmez Carretas CercedasGonzlez Arenal La granjaLpez Mayor PeguerinosPrez Carretas Cerceda

    Rodrguez Yeseras CdizRuprez Ramblas LenSantos Mayor PeguerinosValdivieso Goya Vigo

    Tabla cuenta

  • 7/25/2019 Manual de Practicas SQL

    7/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 7

    Numero_cuenta Nombre_sucursal saldoC-101 Centro 500C-102 Navacerrada 400C-201 Galapagar 900C-215 Becerril 700

    C-217 Galapagar 750C-222 Moralzarzal 700C-305 Collado Mediano 350

    Tabla impo si torNombre_cliente Nmero_ cuenta

    Abril C-305Gmez C-215Gonzlez C-101Gonzlez C-201

    Lpez C-102Ruprez C-222Santos C-217

    Tabla su cursalNombre_sucursal Ciudad_sucursal activosBecerril Aluche 400Centro Arganzuela 9000Collado Mediano Aluche 8000Galapagar Arganzuela 7100Moralzarzal La granja 2100Navacerrada Aluche 1700Navas de la Asuncin Alcal de Henares 300Segovia Cerceda 3700

    Tab la p rstamo

    Nmero_ prstamo Nombre_sucursal importeP-11 Collado mediano 900P-14 Centro 1,500P-15 Navacerrada 1,500P-16 Navacerrada 1,300

    P-17 Centro 1,000P-23 Moralzarzal 2,000P-93 Becerril 500

  • 7/25/2019 Manual de Practicas SQL

    8/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 8

    Tabla prestatar ioNombre_cliente Nmero_ prstamoGmez P-11Sotoca P-14Lpez P-15

    Fernndez P-16Santos P-17Gmez P-23Prez P-93

    2.1.- La clusula SELECT- El resultado de la clusula select es, por supuesto,una relacin (se mostrar todos los atributos que se encuentren en esa clusula).

    Ejemplo: Obtener el nombre de todas las sucursales de la relacin prstamo.

    select nombre_sucursalfrom prstamo

    El resultado es una relacin consistente en un nico atributo con el encabezadonombre_sucursal.

    nombre_sucursalCollado_medianoCentroNavacerradaNavacerrada

    CentroMoralzarzalBecerril

    En el caso en los que se desea forzar la eliminacin de los valores duplicados, seinserta la palabra clave distinct despus de select.

    select distinct nombre_sucursalfrom prstamo

    nombre_sucursalCollado_medianoCentroNavacerradaMoralzarzalBecerril

  • 7/25/2019 Manual de Practicas SQL

    9/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 9

    Se permite utilizar la clusula allpara especificar de manera explcita que no seeliminen los duplicados.

    select all nombre_sucursalfrom prstamo

    El smbolo asterisco (*) se puede utilizar para denotar todos los atributos.Ejemplo: Mostrar el contenido de la tabla prstamo.

    select numero_prestamo,nombre_sucursal, importefrom prstamo

    select *from prstamo

    La clusula select puede contener tambin expresiones aritmticas quecontengan los operadores +,-,*,/ y operen sobre constantes o atributos de lastuplas. Por ejemplo, la consulta.

    select numero_prestamo,nombre_sucursal, importe*10from prstamo

    devolver una relacin que es igual a la de prstamo, salvo que el atributoimporte estar multiplicado por 10.

    SQL tambin proporciona tipos de datos especiales, tales como varias formas deltipo date (fecha) y permite que varias funciones aritmticas operen sobre esostipos.

    2.2.- La clusula WHERE- A continuacin se muestra el uso de la clausulawhere: Ejemplo.

    Obtener todos los prstamos de la sucursal Navacerrada con importe superior a1200.00

    select numero_prestamofrom prstamowherenombre_sucursal=Navacerrda andimporte>1200.00

  • 7/25/2019 Manual de Practicas SQL

    10/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 10

    SQL utiliza las conectivas lgicas and, or y not (en lugar de los smbolosmatemticos ,,) en la clausula where. Tambin se pueden utilizar losoperadores de comparacin =, y = . Tambin incluye el operador de

    comparacin between (se encuentra entre un rango de comparacin). De formaanloga, se puede utilizar el operador de comparacin not between.

    Ejerc ic ios:

    1.- Obtener el nmero de prstamo de los prstamos con importe entre 900.00 y1,500.00.

    select numero_prstamofrom prstamowhereimporte >=900.00 and importe

  • 7/25/2019 Manual de Practicas SQL

    11/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 11

    from prestatario,prstamowhere prestatario.numero_prestamo = prstamo.numero_prestamo and

    nombre_sucursal=Navacerrada.

    2.4.- Operacin renombramientoSQL proporciona un mecanismo para renombrar tanto relaciones como atributos.Utiliza la clusula ASde la siguiente forma:

    nombre-antiguo ASnombre_nuevo

    para el caso de atributos

    select nombre_cliente, prestatario.numero_prstamo ASid_prestamo, importefrom prestatario,prstamo

    where prestatario.numero_prestamo = prstamo.numero_prestamopara el caso de relaciones

    select nombre_cliente, T.numero_prstamo, S.importefrom prestatario AS T,prstamo AS Swhere T.numero_prestamo = S.numero_prestamo

    2.5- Operaciones con cadena de caracteres

    SQL especifica la cadena de caracteres encerrndolas entre comillas simples,Navacerrada.

    La operacin ms utilizada sobre la comparacin de cadenas de caracteres es eloperador like. Para la descripcin de los patrones se utilizan dos caracteresespeciales:

    Tanto por ciento (%).- El carcter % coincide con cualquier subcadena decaracteres.

    El subrayado (_).- El _ coincide con cualquier carcter

    Los caracteres en minsculas difieren de los caracteres en maysculas yviceversa

    Nava% coincide con cualquier cadena de caracteres que empiece conNava.

  • 7/25/2019 Manual de Practicas SQL

    12/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 12

    %cer% conincide con cualquier cadena que contenga cer comosubcadena. Ejemplo Navacerrada, Becerril, Cceres, etc.

    _ _ _ coincide con cualquier cadena que contenga tres caracteres. _ _ _% coincide con cualquier cadena que contenga al menos tres

    caracteres.

    Ejemplo: Determinar el nombre de todos los clientes cuya direccin contenga lasubcadena de caracteres Mayor

    select nombre_clientefrom clientewherecalle_cliente like%Mayor%

    SQL permite buscar discordancias en lugar de concordancias utilizando eloperador de comparacin not like.

    2.6.- Orden en la presentacin de las tuplas.

    SQL permite cierto control sobre el orden en el cual se presentan las tuplas de unarelacin. La clusula order by hace que las tuplas se presenten en un ordenespecificado. (De manera predeterminada la orden order by coloca los elementosen orden ascendente).

    Ejemplo: Obtener una relacin en orden alfabtico de todos los clientes que tienenun prstamo en la sucursal Navacerrada

    select distinct nombre_clientefrom prestatario,prstamowhere prestatario.numero_prestamo = prstamo.numero_prestamo and

    nombre_sucursal=Navacerrada. order by nombre_cliente

    Para especificar el tipo de ordenacin se puede especificar descpara ordenar demanera descendente ascpara ordenar ascendentemente.

    Colocar toda la relacin prstamo en orden descendente segn su importe, seordena de manera ascendente segn su prstamo.

    select *from prstamoorder by importe desc, numero_prestamo asc

    Lo orden order by solo se utilizar cuando sea estrictamente necesario (porqueordenar un gran nmero de tuplas puede resultar costoso).

  • 7/25/2019 Manual de Practicas SQL

    13/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 13

    3.- OPERACIONES SOBRE CONJUNTOS.

    Las operaciones de SQL union, intersect y except corresponden con las

    operaciones del algebra relacional

    ,

    y -. Las relaciones que participen en lasoperaciones han de ser compatibles, esto es, deben tener el mismo conjunto deatributos.

    3.1.- La operacin unin.- La operacin unin elimina los valores duplicadosautomticamente

    Ejercicio:Encontrar los clientes del banco que t ienen u nprstamo, unacuenta olas doscosas en el banco.

    (select nombre_cliente

    from impositor)union(select nombre_clientefrom prestatario)

    Si desea conserver todos los duplicados hay que escribir unin all en lugar deunin.

    (select nombre_clientefrom impositor)unin all(select nombre_clientefrom prestatario)

    3.2.- La operacin interseccin.- La operacin interseccin (intersect) eliminalos valores duplicados automticamente

    Ejerc ic io: Encontrar los clientes del banco que tienen tanto u nprstamo comounacuenta en el banco

    (select nombre_clientefrom impositor)intersect(select nombre_clientefrom prestatario)

    Si desea conserver todos los duplicados hay que escribir intersect allen lugar deintersect.

    (select nombre_clientefrom impositor)intersect all

  • 7/25/2019 Manual de Practicas SQL

    14/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 14

    (select nombre_clientefrom prestatario)

    3.3.- La operacin excepto.- La operacin excepto (except) elimina los valoresduplicados automticamente

    Ejerc ic io: Encontrar los clientes del banco que tienen una cuenta pero no unprestamo en el banco

    (select nombre_clientefrom impositor)except(select nombre_clientefrom prestatario)

    Si desea conserver todos los duplicados hay que escribir except allen lugar de

    except.(select nombre_clientefrom impositor)except all(select nombre_clientefrom prestatario)

  • 7/25/2019 Manual de Practicas SQL

    15/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 15

    4.- SUBCONSULTAS ANIDADAS

    Existen dos formas para realizar consultas: Join de Querys y Subquerys. Cuandoen la sentencia From colocamos los nombres de las tablas separados por comasse dice que efectuamos una consulta de la forma Join de Querys, en este caso

    se requiere anteponer el nombre de la tabla y un punto al nombre del atributo. Enel Join de Querys el resultado que se produce con las tablas que intervienen en laconsulta es la concatenacin de las tablas, en donde los valores de una columnade la primera tabla coinciden con los valores de una segunda tabla, la tabla deresultado tiene una fila por cada valor coincidente que resulte de las dos tablasoriginales.

    Para ejemplificar esto, consideremos 2 tablas: Tabla1 y Tabla2, entonces:

    C1 C2 C3 CA CB

    A AAA 10 35 R

    B BBB 45 10 SC CCC 55 65 T

    D DDD 20 20 U

    E EEE 20 90 V

    F FFF 90 90 W

    G GGG 15 75 X

    H HHH 90 90 Y

    35 Z

    Resultado de la operacin Join:

    C1 C2 C3 CA CB

    A AAA 10 10 S

    D DDD 20 20 U

    E EEE 20 20 U

    F FFF 90 90 V

    F FFF 90 90 W

    F FFF 90 90 YH HHH 90 90 V

    H HHH 90 90 W

    H HHH 90 90 Y

  • 7/25/2019 Manual de Practicas SQL

    16/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 16

    Como podemos observar, la comparacin se efectu por las columnas C3 y CA,que son donde se encontraron valores iguales, el resultado muestra una tupla porcada coincidencia encontrada.

    Cuando las consultas se anidan se conoce como Subquerys o subconsultas.

    Este tipo de consulta obtiene resultados parciales reduciendo el espacio requeridopara realizar una consulta.

    Nota:Todas las consultas que se resuelven con subquerys pueden resolverse conJoin de Querys, pero no todas las consultas hechas con Join de Querys puedenresolverse utilizando Subquerys.

    Para ejemplificar lo anterior consideremos siguiente

    Ejerc ic io: Tenemos la siguientes tablas de un a escuela

    ALUMNO - cursa - MATERIA, que tienen los siguientes atributos:

    NControl NControl ClaveNombreA Clave NombreMEspecialidad Calif CreditosDireccin

    Representando en tablas a los atributos quedaran de la siguiente forma:

    Tabla alumno:

    NControlNombreAEspecialidadDireccin

    Tabla cursa:

    NControlClave Calif

    Tabla materia:

    ClaveNombreMCreditos

  • 7/25/2019 Manual de Practicas SQL

    17/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 17

    Ejerc ic ios:

    Obtener los nombres de los alumnos cuyas materias que cursan tienencrditos igual a ocho.

    SELECT NombreAFROM AlumnoWHERE NControl IN(SELECT Ncontrol

    FROM CursaWHERE Clave IN (SELECT Clave

    FROM MateriaWHERE Creditos=8));

    Obtener el nombre de la materia que cursa el alumno con nmero decontrol 97310211 con crditos igual a ocho.

    SELECT NombreMFROM MateriaWHERE creditos=8 and clave IN(SELECT clave

    FROM cursaWHERE NControl=97310211;

    Obtener el nmero de control del alumno que tenga alguna calificacin iguala 100

    SELECT DISTINCT NControlFROM CursaWHERE Calif=100;

    Obtener el nombre de las materias que cursa el alumno Salvador Chvez.

    SELECT NombreMFROM MateriaWHERE Clave IN(SELECT DISTINCT (Clave)

    FROM CursaWHERE NControl IN(SELECT NControl)

    FROM AlumnoWHERE NombreA=SalvadorChvez));

  • 7/25/2019 Manual de Practicas SQL

    18/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 18

    5.- FUNCIONES DE AGREGACIN

    Existen funciones que permiten la agilizacin de consultas similares a una hojade clculo, ya que trabajan en base a renglones y columnas.

    COUNT (): Cuenta el nmero de tuplas en la columna establecidaMIN ( ):Localiza el valor mnimo de la columna establecidaMAX ( ):Localiza el valor mximo de la columna establecida.AVG ( ):Obtiene el promedio de valores de la columna establecidaSUM ( ):Obtiene el valor total que implican los valores obtenidos en la columnaestablecida.

    Ejerc ic ios:

    Obtener el nmero de alumnos que existen en la carrera de Ingeniera enSistemas Computacionales.

    SELECT Count(*)FROM AlumnoWHERE especialidad=ISC;

    Obtener la mximo calificacin que ha obtenido J.M. Cadena.

    SELECT Max(Calif)FROM CursaWHERE NControl IN (SELECT NControl

    FROM AlumnoWHERE NombreA= J.M. Cadena );

    Obtener el promedio de calificaciones de Salvador Chvez.

    SELECT Avg(Calif)FROM CursaWHERE NCotrol IN (SELECT NControl

    FROM AlumnoWHERE NombreA=Salvador Chvez);

    Obtener la suma total de las calificaciones obtenidas por Daniel Coln.

    SELECT Sum(Calif)FROM CursaWHERE NControl IN (SELECT NControl

    FROM AlumnoWHERE NombreA=Daniel Coln);

  • 7/25/2019 Manual de Practicas SQL

    19/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 19

    Hasta aqu hemos visto el manejo sencillo de realizar consultas con SQL, hayque destacar que en la realizacin de consultas anidadas se tiene que ponercuidando a la prioridad de los operadores, teniendo cuidado tambin al momentode agrupar los parntesis que involucran las condiciones con los operadores.

    6.- MODIFICACIN DE LA BASE DE DATOS

    Como se mencion al inicio de este apartado del SQL, est cuenta con mdulosDDL, para la definicin de datos que nos permite crear o modificar la estructura delas tablas.

    Las instrucciones para realizar estas operaciones son:

    CREATE TABLE: Nos permite crear una tabla de datos vaca.INSERT:Permite almacenar registros en una tabla creada.UPDATE:Permite modificar datos de registros almacenados en la tabla.DELETE:Borra un registro entero o grupo de registros de una tabla.CREATE INDEX:Crea un ndice que nos puede auxiliar para las consultas.DROP TABLE:Permite borrar una tabla.DROP INDEX:Borra el ndice indicado.

    Para ejemplificar las instrucciones anteriores consideremos el ejemplo

    ALUMNO - cursa - MATERIA, que tienen los siguientes atributos:NControl NControl ClaveNombreA Clave NombreMEspecialidad Calif CreditosDireccin

    6.1.- Estructura de la sentencia CREATE TABLE.

    CREATE TABLE(Atributo 1: tipo de dato longitud ,Atributo 2: tipo de dato longitud ,Atributo 3: tipo de dato longitud ,::

    Atributo n: tipo de dato longitud ,

  • 7/25/2019 Manual de Practicas SQL

    20/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 20

    PRIMARY KEY(Opcional) ) ;

    Los campos pueden definirse como NOT NULL de manera opcional excepto enla llave primaria para lo cual es obligatorio. Adems al definir la llave primaria segenera automticamente un ndice con respecto al campo llave; para definir lallave la denotamos dentro de los parntesis de PRIMARY KEY.

    Ejerc ic io:

    Crear la tabla alumno con los atributos antes descritos, tomando como llave elnmero de control.

    CREATE TABLEAlumno( NControl char(8) NOT NULL,NombreA char(20),Especialidad char(3),Direccin char(30),

    PRIMARY KEY(NControl) );

    Tabla Alumno:

    NControlNombreAEspecialidadDireccin

    Puede existir ms de una llave primaria, esto es si se requiere, se crearntantos ndices como llaves primarias se establezcan.

    Pueden existir tantos campos Not Null (No nulos) como se requieran; En siestructurar la creacin de una tabla es siempre parecida al ejemplo anterior.

    6.2 Estructura de la sentencia INSERT

    INSERTINTO Nombre de la tabla a la que se le va a insertar el registroVALUES (Conjunto de valores del registro);

    Ejerc ic io: Insertar en la tabla Alumno, antes creada los datos del alumno Danielcoln, con numero de control 95310518 de la especialidad de Ingeniera civil, condomicilio Abasolo Norte #45.

    INSERTINTO AlumnoVALUES("95310518","Daniel Coln","IC","Abasolo Norte #45") ;

  • 7/25/2019 Manual de Practicas SQL

    21/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 21

    Ntese que la insercin de los datos se realiza conforme la estructura que seimplanto en la tabla, es decir en el orden en que se creo dicha tabla. En caso dequerer omitir un dato que no sean no nulos solamente se ponen las comillasindicando el vaco de la cadena.

    6.3.- Estructura de la Sentencia CREATE INDEX

    CREATE INDEX Nombre que se le asignara al ndice.ONNombre de la taba a la cual se le creara el ndice (Campo(s) por el cual se

    creara el ndice);

    Ejerc ic io: Crear un ndice de la tabla Alumno por el campo Especialidad.

    CREATE INDEXIndice1ON Alumno(Especialidad);

    Este ndice contendr a todos los alumnos ordenados por el campo especialidad.

    CREATE INDEX UNIQUEINDEX Indice2ON Alumno (Especialidad);

    En la creacin de este ndice utilizamos la sentencia UNIQUE, es un indicadorpara permitir que se cree un ndice nico por especialidad, esta sentencia siemprese coloca antes de CREATE INDEX. En este ejemplo se creara un ndice quecontenga un alumno por especialidad existente.

    6.4.- Estructura de la sentencia UPDATE

    UPDATENombre de la tabla en donde se modificaran los datos.SETValoresWHERE(Condicin);

    Ejerc ic io: Modificar el nmero de control del registro de Daniel Coln de laTabla alumno por el nmero 96310518.

    UPDATE AlumnoSET NControl 96310518

    WHERE NombreA=Daniel Coln;

    6.5.- Estructura de la sentencia DROP TABLE

    DROP TABLENombre de la tabla a borrar;

    Ejerc ic io: Borrar la tabla Alumno creada anteriormente.

  • 7/25/2019 Manual de Practicas SQL

    22/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 22

    DROP TABLE Alumno;

    6.6.- Estructura de la sentencia DROP INDEXDROP INDEX Nombre del ndice a borrar;

    Ejerc ic io: Borrar el ndice Indice1 creado anteriormente.

    DROP INDEX Indice1;

    6.7.- Estructura de la sentencia DELETE

    DELETEFROM Nombre de la tablaWHERE Condicin;

    Ejercicio:- Borrar el registro cuyo nmero de control es 95310386.

    DELETEFROM AlumnoWHERE Control=95310386;

    - Borrar todos los registros de la tabla alumno.DELETEFROM Alumno;

    En el primer ejemplo, se borrara todo el registro (todos los datos), del alumno connmero de control = 95310386.

    En el segundo ejemplo se borraran todos los registros de la tabla alumno, pero sinborrar la estructura de la tabla, ya que la orden Delete solo borra registros, lasentencia Drop Tablees la que borra toda la estructura de la tabla junto con losregistros de la misma.

    7.- VISTAS.

    Una vista se define en SQL usando la orden CREATE VIEW. Para definir unavista debemos dar a la vista un nombre y declarar la consulta que calcula la vista.Una vez que establecemos una vista, podemos ejecutar una sentencia SELECTque referencie a esa vista. El sistema asociar la vista SQL con una tabla base yextraer y visualizar, entonces, los datos de la tabla base.

    Esto significa que una vista no contiene datos duplicados de una tabla base. Notiene absolutamente ningn dato, puesto que no es una tabla real, todo el proceso

  • 7/25/2019 Manual de Practicas SQL

    23/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 23

    se realiza con los datos almacenados en la tabla base. Es decir se percibe comouna tabla virtual.

    Las rdenes que se utilizan para la manipulacin de vistas son:

    CREATE VIEW: Crea una tabla virtual.DROP VIEW: Elimina una vista creada anteriormente.

    7.1 Estructura de la sentencia CREATE VIEW.

    CREATE VIEW Nombre de la vista AS (Expresin de consulta);

    Para nuestros ejemplos consideremos de nuevo la tabla llamada CURSO, quecontiene los siguientes campos:

    Tabla 7.1.- Tabla Curso

    Nombre delcampo

    Descripcin

    NumC Nmero del curso, nico para identificar cadacurso

    NombreC Nombre del curso, tambin es nico

    DescC Descripcin del curso

    Creditos Crditos, nmero de estos que gana alestudiante al cursarlo

    Costo Costo del curso.

    Depto Departamento acadmico que ofrece el curso.

    Contenido de la tabla Curso

    Que contiene los siguientes datos:

    NumC NombreC DescC Creditos Costo Depto

    A01 Liderazgo Para pblicoGeneral

    10 100.00 Admn.

    S01 Introduccin a la inteligencia artificial Para ISC y LI 10 90.00 Sistemas.

    C01 Construccin de torres Para IC yArquitectura

    8 0.00 Ciencias

  • 7/25/2019 Manual de Practicas SQL

    24/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 24

    B01 Situacin actual y perspectivas de laalimentacin y la nutricin

    Para IB 8 80.00 Bioqumica

    E01 Historia presente y futuro de laenerga solar

    IE e II 10 100.00 Electromecnica.

    S02 Tecnologa OLAP Para ISC y LI 8 100.00 Sistemas

    C02 Tecnologa del concreto y de lasEstructuras

    Para IC 10 100.00 Ciencias

    B02 Metabolismo de lpidos en elcamarn

    Para IB 10 0.00 Bioqumica

    E02 Los sistemas elctricos de potencia Para IE 10 100.00 Electromecnica

    S03 Estructura de datos Para ISC y LI 8 0.00 Sistemas

    A01 Diseo bioclimtico ParaArquitectura

    10 0.00 Arquitectura

    C03 Matemticas discretas General 8 0.00 Ciencias

    S04 Circuitos digitales Para ISC 10 0.00 Sistemas

    S05 Arquitectura de Computadoras Para ISC 10 50.00 Sistemas

    I01 Base de Datos Relacionales Para ISC y LI 10 150.00 Informtica

    Ejerc ic io:

    * Crear una vista (tabla virtual), denominada CursosS, que contenga las filas solo

    correspondientes a cursos ofrecidos por el departamento Sistemas. La vistadeber contener todas las columnas de la tabla CURSO, con la excepcin de lacolumna Depto, la secuencia, de izquierda a derecha de las columnas, deber ser:NombreC, NumC, Creditos, Costo Y DescC.

    CREATE VIEW CursosS ASSELECT NombreC,NumC,Creditos,Costo,DescCFROMCURSOWHEREDescC=Sistemas;

    Observemos que despus del nombre de la vista ponemos la sentencia AS,esto para definir la estructura de la vista, la estructura en si de la vista estaformada por la consulta anteriormente vista utilizando la orden SELECT.

    * Crear una vista denominada CursosCaros, correspondientes a las filas de latabla CURSO, en donde la tarifa exceda de $150, las columnas de la vistadebern tener los nombres ClaveCurso, NombreCurso y CostoCaro.

  • 7/25/2019 Manual de Practicas SQL

    25/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 25

    CREATE VIEWCursosSCaros(ClaveCurso,NombreCurso,CostoCaro) AsSELECT NumC,NombreC, CostoFROM CursoWHERE Costo > 150;

    Observamos que despus del nombre de la vista CursosCaros ponemos losnombres que se nos pidieron tuvieran los campos de la vista(ClaveCurso,...),despus se realiza la consulta correspondiente para generar el resultado deseado.

    Visualizar las vistas

    Creamos una tabla virtual que contiene los datos de las consultas que deseamos,ahora nos falta visualizar estos datos, para ello utilizamos la sentencia SELECT yrealizamos la consulta:

    SELECT *FROM CursosCaros;

    De esta consulta podemos observar que mostramos todos los campos que la vistacontiene, aunque podemos visualizar solo alguno de ellos, tambin observamosque sustituimos el nombre de la vista por el de la tabla junto a la sentencia FROM,esto es por que una vista es una tabla virtual, pero guarda los datos comocualquier tabla normal.

    7.2 Estructura de la sentencia DROP VIEW.

    Eliminar una vista

    Como si fuera una tabla normal, las vistas tambin pueden borrarse, para elloutilizamos la sentencia DROP VIEW.

    Estructura de la sentencia DROP VIEW.

    DROP VIEWNombre de la vista a borrar;

    Ejercicio:Borrar la vista CursosCaros creada anteriormente.

    DROP VIEWCursosCaros;

  • 7/25/2019 Manual de Practicas SQL

    26/26

    Manual de prcticas: SQL

    Martha Elizabeth Evangelista Salazar 26

    BIBLIOGRAFIA:

    Bibliografa bsica para el desarrollo de la Unidad:

    Silbertschatz, A., Korth, Sudarshan S. (2002) Fundamentos de bases dedatos. Mxico. Mc Graw Hill, (Cuarta edicin).

    Piatini Mario, Castaon Adoracin de Miguel. (1999). Fundamentos ymodelos de bases de datos. (Segunda edicin). Mxico. Alfaomega ra-ma.

    R. Rebeca. (2000). Diseo de bases de datos relacionales con Access ySQL server. Mc. Graw Hill.

    Bibliografa complementaria para el desarrollo de la Unidad:

    Tutorial de SQL. (2012). SQL bsico. Fecha de consulta: Abril de 2013.Linkhttp://sql.11sql.com/

    Cazares, Claudio. Tutorial de SQL. Fecha de consulta: Agosto 2013. Link:http://www.unalmed.edu.co/~mstabare/Sql.pdf

    http://sql.11sql.com/http://sql.11sql.com/http://sql.11sql.com/http://www.unalmed.edu.co/~mstabare/Sql.pdfhttp://www.unalmed.edu.co/~mstabare/Sql.pdfhttp://www.unalmed.edu.co/~mstabare/Sql.pdfhttp://sql.11sql.com/