Sie sind auf Seite 1von 9

LENGUAJE SQL Un manejador de base de datos debe de contener lenguajes que permitan definir el modelos de los datos, este

mismo es que permite crear la estructura de la base de datos.

Lenguaje de

efinicion de

atos

En !"sql el Lenguaje de ifinicion de atos #L $ es un subconjunto de SQL #%reate &able, create 'nde(, %reate )ie*, create table, drop table, drop database, drop )ie*, etc+$.

Lenguaje de !anipulacion de

atos

Este lenguaje es que se utili,a para reali,ar las operaciones como son- consultas #Lenguaje de %onsultas$, .orrar, insertar " actuali,ar datos. En !"sql se utili,a un subconjunto de SQL #update, insert into, delete, select, truncate,etc$. &odos los comandos de manejador !"sql, se deben de terminar con un /+0, si no se termina con un /+0, el cursor salta a la siguiente linea para seguir escribiendo mas comandos, es debido a que pueden e(istir sentencias de consulta o creaci1n de tablas mu" grandes, " de esta manera se 2ace multilinea.

%omandos b3sicos para el L

, " )isuali,aci1n de esquemas

%4EA&E A&A.ASE 5nombre ata.ase6+ Este comando crea una nue)a base de datos sobre el manejador que se esta utili,ando USE 5nombre ata.ase6 %uando se 2a creado una base de datos " se pretende trabajar sobre ella, es necesario ejecutar este comando para asignarla al 3rea de trabajo, si se quiere crear alguna tabla, ocurre un error debido a que no se 2a establecido el 3rea de trabajo, que en este caso sera la base de datos. Esta sentencia, es la unica que se puede ejecutar sin un punto " coma para terminar. S789 : A&A.ASES ; &A.LES<+ A )eces es necesario )erificar si aun no se 2a creado una base de datos con alg=n nombre especifico, o tal tal )e, )erificar que al crear una base de datos, la operaci1n 2a"a tenido >(ito, para esto, el comando s2o* permite )isuali,ar las bases de datos sobre el manejador o las tablas sobre una . en el 3rea de trabajo. %4EA&E &A.LE 5nombre&abla6 #:atributos caracter?sticas< primar" @e"#atributo$, foreign @e"#atributo$ reference tabla$ Aara crear las definiciones "Bo esquemas de las entidades que )an a formar parte de la base de

datos, se ejecuta este comando para crear una entidad o tabla de la base de datos, en esta definici1n se especifican tambi>n las lla)es tanto primaria como for3neas.

Ejemplocreate table persona #id int#C$ not null autoDincrement, nombres )arc2ar#EF$ not null, apellidos )arc2ar#CF$ default G G, primar" @e"#id$$+ La instruccion anterior crea una tabla llamada persona, estableciendo como lla)e primaria el atributo id que este es auto incrementable. %4EA&E H'E9 5nombreHista6 as #tabla temporal$+ Este comando se utli,a para crear tablas )irtuales en la base de datos, es decir, se puede utli,ar para crear espejos de tablas, las propiedades que tiene son que cualquier operacion sobre los datos en esta tabla )irtual, tienen efecto sobre los datos originales, la tabla temporal puede ser una consulta simple 2asta un consulta compleja. 48A : A&A.ASE ; &A.LE ; H'E9< 5nombre&abla ; nombre ata.ase ; nombreHie*6+ Este comando se utili,a para eliminar tanto bases de datos como tablas, " )istas #tablas )irtuales$. Ejemplo- si se quiere eliminar una tabla que tiene como nombre /personas048A &A.LE personas+ Estos son los comandos basicos para la definicion de los datos, Algunos comando marcan errores cuando se pretende crear tablas, bases de datos, "Bo )istas, cuando "a e(isten, para e)itar este tipo de errores, el manejador de bases de datos pro)ee unas instrucciones condicionales para no cometer errores. 'I EJ'S&S, 'I N8& EJ'S&S- estos son las clausulas para )erificar antes de crear alguna entidad o ., la manera en que se utili,an es la siguiente%4EA&E &A.LE 'I N8& EJ'S& 5nombre table6 #......$ %4EA&E A&A.ASE 'I N8& EJ'S&S 5nombre ata.Ase6+ %4EA&E H'E9 'I N8& EJ'S&S 5nombreHista6+ de la misma manera para crear nue)as entidades o .Gs, se utili,a para eliminar entidades "o .Gs+ 48A :H'E9 ; ; nombre&abla6 7asta el momento se 2an definido los comandos para la definicion de datos, entonces los comandos demanipulacion de datos, son los que permiten interactuar con la informacion de la . , es decir, son los que permiten insertar, actuali,ar, eliminar, etc. Los datos de la . . A&A.ASE ; &A.LE< 'I EJ'S&S 5nombreHista ; nombre.ase

%omandos del Lenguaje de !anipulacion de

atos

El lenguaje de manipulacion de datos se puede clasificar en K tipos-

Lenguaje de consulta " lenguaje de manipulacion. El lenguaje de consulta permite obtener la informacion requerida por el usuario, " el comando utili,ado para crear los reportes#tablas$ para un determinado uso esSELE%& :atributos, ...< I48! :tablaL, tablaK .....< 97E4E :condiciones< 84 E4 .M :atributos, atributos<. Este comando se utili,a de diferentes maneras, " se le conoce como sentencias de consulta, obtener datos, " se usan de manera simple 2asta de manera compleja. Simples con una sola tablaSELE%& N I48! tabla+ Esta sentencia obtiene todos los atributos de todos los registros que e(isten en /tabla0. SELE%& atribL, atribK, ..., atribn I48! tabla+ 4eali,a la misma accion que la sentencia anterior, a diferencia de que en la anterior se muestran todos los atributos, " en esta se muestran solo algunos atributos especificados. %uando se requiere obtener solo los registros que cumplen alguna restriccion o condicion en algunos de los atributos de una tabla, se utili,a la clausula 97E4E para especificar las condiciones que deben cumplir los registros que se desean. SELE%& N I48! tabla 97E4E #AtributoOG)alorG$+ %uando se tienen )arias condiciones, se pueden utili,ar los operadores logicos en conjunto con los operadores de comparacion8peradores logicos- AN #P$, 84 # ; $ N8&. 8peradores de comparacionO comparador de equidad 5 !enor que 6 !a"or que 6O !a"or o igual que 5O !enor o igual que #56, QO, not$ iferente de Ejemplo de consultaSELE%& N I48! tabla 97E4E #aOL AN #.6E 84 %OG!ilG$$+ El comando de consulta tambien se puede utili,ar con la clausula L'RE, que permite manejar patrones, es decir, se especifica un patron para reali,ar las comparaiones, " los registros que tengan ese patron en el atributo especificado se )an a obtener independiente mente ma"=scula o minuscula.

El uso de esta clausula es de la siguiente manera#GSpatronSG$, este especifica que no importa en donde aparesca ese patron, incluso puede no e(istir, es decir no importa que tenga atras, ni que tenga delante del patron, se )a a obtener el registro. #GpatronSG$, Este uso define que todos los registros que empiecen con el patron especificado se )an a obtener. #Spatron$, de la misma manera, que el anterior a diferencia que ente son los que terminan. EjemploSELE%& N I48! persona 97E4E #Apellidos L'RE GAere,SG$+ en este ejemplo se obtienen todos los registros de la tabla persona que empie,an con Aere,, no importa que tenga despu>s. %uando e(isten )arias condiciones sobre un mismo atributo en una sentencia es tedioso estar especificando cada condici1n sobre el atributo, para eliminar esta problematica " que las sentencias no se tornen mu" grandes, SELE%& se combina con la clausula 'N que recibe un conjunto de )alores en los cuales se )an a e)aluar las condiciones EjemploSELE%& N I48! tabla 97E4E #id :N8&< 'N #)alorL, )alorK, )alorC,....,)alorn$$ en el caso de que sean cadenas de caracteres se meten entre comillas. En resumen el comando SELE%& obtiene registros de una o mas tablas, " como resultado entrega una tabla temporal. El Lenguaje de !anipulacion de datos es el que permite como su nombre lo indica manipular los datos e(istentes en la base de datos. 'nsertar 4egistros. 'NSE4& 'N&8. Este comando permite insertar registros sobre una tabla en especifico de la base de datos, " e(isten C maneras b3sicas de insertar registros. L. 'NSE4 'N&8 5tabla6 #GcampoLG, GcampoKG$ HALUES #G)alor %ampoLG, G)alor %ampoKG$+ K. 'NSE4 'N&8 5tabla6 HALUES #G)alor %ampoLG, G)alor %ampoKG$+ C. 'NSE4 'N&8 5tabla6 SE& campoLOG)alor %ampoLG, campoKOG)alor %ampoKG+ La manera en que se en)ian los datos en L " K es la misma, es decir, en el orden en que se encuentran los campo en la tabla, de misma manera se le en)ian los datos, a diferencia de la C no importa en que oreden se le en)ien los datos, "a que en esta ultima se le especifica el nombre el campo. Asi mismo,

cuando no se tienen datos para determinados campos con )alores por default, es necesario especificar el espacio del campo en C no solo se omite. Actuali,ar datos de registros. El comando para ctuali,ar datos en una fila determinada se utili,aUA A&E 5tabla6 #condiciones$+ SE& %ampoOG)alor nue)o de %ampoG 97E4E

si se tienen que actuali,ar )arios campos, se separan con comas, 8J8, la condicion de actuali,acion es necesaria si solo se quiere actuali,ar en determinadas filas, "a que si no se indica una condicion, se actuali,an todas las filas de la tabla, " esto puede resultar desagradable si no se pretendia eso, !"SQL no permite retaurar, a diferencia de otros !anejadores, que si se equi)ocan, con solo escribir 48LL.A%R, des2acen todas las operaciones que 2an 2ec2o sin causar daTos en la . , como es el caso de 84A%LE, asi que muc2o cuidado. Eliminar 4egistros. cuando e(isten registros inecesarios ne las tablas " no se pretende lle)ar un 2istorial, o simplemente se equi)ocaron " quieren eliminar toda la fila, El lenguaje SQL permite eliminar registros mediante el comando ELE&E. ELE&E I48! :tablaL, tablaK< 97E4E #condiciones tablaL " tabla K$+ Este comando es mu" importante su uso, de igual manera que UA A&E necesariamente tiene que lle)ar las condiciones de eliminacion de filas, "a que si no se especifica la condicion, elimina todos los registros de la tabla, " eso puede ser mu" desastroso para los Administradores de ., asi muc2o cuidado con este comando. Si se quiere eliminar todos los registros de la tabla n, SQL permite 2acerlo con un comando mu2 simple &4UN%A&E, " se usa de la siguiente manera- &4UN%A&E 5tabla6+ M el resultado es )aciar la tabla de registros, es mu" parecido a la acci1n de )aciar la papelera de reciclaje de Uni(. 7asta el momentos se 2an esta ejecutando sentencias sobre una sola tabla, cuando s requiere accedera los datos de mas de una tabla relacionadas de alguna manera " no relacionadas, e(isten las opciones a)an,adas de los comandos mencionados con anterioridad. %omando SELE%& con )arias tablasSELE%& tablaL.N, tablaK.N from tablaL, tablaK 97E4E #condiciones de relacion$ En este tipo de consultas es necesario especificar la condicion de relacion que 2a" entre las tablas, esto

debido a que si no se especifican se )an a reali,a operaciones del algebra relacional que no se obtendran resultados satisfactorios. Este comando permite utili,arse con una clausula que permite distinguir datos de uno, " la clasusu es 'S&'N%&, que permite obtener datos no duplicados, si " solo si todos los atributos se parecen. SELE%& S&'N%& tablaL.N, tablaK.N I48! tablaL, tablaK 97E4E #%ondiciones de relacion$ Anteriormente se indico que el comando SELE%& da como resultado otra tabla, por lo tanto, si se quieren obtener solo algunas filas del resultado de una consulta, se puede 2acer de una manera mu" simple, aqui se 2ace uso de los AL'AS, que permite nombra "a sea una tabla, o un atributo " se usa de la siguiente maneraSELE%& N I48! #SELE%& N I48! tabla 97E4E id6KF and id5EF$ res 97E4E res.idOCF+ este tipo de consultas se le llama consultas recursi)as, " se pueden 2acer tantan subconsultas comose requieran. La manera en que se muestra los datos puede no ser la que se requiere, "a que si se quieren obtener los datos ordenados, el manejador permite 2acerlo mediante la clausula de SELE%& conocida como 84 E4 .M, " se usa de la siguiente maneraSELE%& tablaL.N, tablaK.N I48! tablaL, tablaK 97E4E tablaL.idOtablaK.id 84 E4 .M id+ Esta clasusula permite ordenar los registros de manera descendente AS% o ascendente ES%, ejemploSELE%& tablaL.N, tablaK.N I48! tablaL, tablaK 97E4E tablaL.idOtablaK.id 84 E4 .M id ES%+ Asi como los comandos de consulta, el manejador tiene funciones de utilidad para el administrador, " son trigonometricas, aritmeticas, etc.. !AJ#:campo<$ obtiene )alor ma(imo en el campo especificado. !'N#:campo<$ obtiene el minimo en el campo especificado. AHG#:campo<$ obtiene el promedio en el campo especificados %8UN&#N$ obtiene el numero de registros que tiene un tabla AASS984 #GcadenaG$ Encripta una cadena, mu" util para contraseTas ejemplosSELE%& :!AJ#$ ; !'N#$ ; AHG#$ ; %8UN&#N$< from tabla 97E4E #condiciones$+ %omandos del algebra relacional UN'8N, !'NUS, 'NE4SE%&, LEI& J8'N, 4'G7& J8'N, 8U&E4 J8'N. EL comando union obtiene la union de una o mas tablas, con los mismos atributos.

SELE%& N from tablaL UN'8N :ALL< tablaK El comando 'ntersect 8btiene la interseccion de K tablas, es decir los registros que estan en tablaL " que estan en tabla K. SELE%& N I48! tablaL 'N&E4SE%& tablaK El comando !'NUS obtiene los registros que no estan en la tabla K SELE%& N I48! tablaL !'NUS tablaK+ Los comando de equijuntas por asociaciones "a sea a la i,quierda o la derec2aSELE%& N from tablaL J8'N tablaK on %LO%K+ este tipo de comando entrega como resultado una union de tablas, es decir, se crea una tabla con los atributos de tablaL " tablaK El ' EN&'I'%A 84 LEI& o 4'G7& es por donde se 2ace la junta, El ' EN&'I'%A 84 8U&E4, indica si se adieren aun que no cumpla la condicion. EjemplosSELE%& tablaL.N, tabla K.N from tablaL 4'G7& J8'N tablaK on %LO%K+ SELE%& tablaL.N, tabla K.N from tablaL LEI& J8'N tablaK on %LO%K+ SELE%& tablaL.N, tabla K.N from tablaL LEI& 8U&E4 J8'N tablaK on %LO%K+ SELE%& tablaL.N, tabla K.N from tablaL 4'G7& 8U&E4 J8'N tablaK on %LO%K+ el resultado de las sentencias anteriores son diferentes, "a que la junta se 2ace en una direccion " otra, de la misma manera que las clausulas del algebra relacional, de la manera en que se especifican se obtienen resultados diferentes. El uso de los comandos del lenguaje de manipulacion de datos pueder ser de muc2as maneras, como por ejemplo, si se pretende insertar registros de una tabla temporal a paratir de los registros de una o mas tablas, se procede de la siguiente manera. 'NSE4& 'N&8 tabla AS #SELE%& N I48! tablas 97E4E #condiciones$ $. EJE4%'%'8Se la base de datos porporcionada, reali,ar las siguiente consultasL. !uestre todos los profesores que tienen por lo menos una publicacion K. !uestre los profesores que tienen ni)el SN'

C. !uestre los profesores que tengan perfil promep U. Si forma parte del grupo de docentes de ala Iim, actualice su Grado academico, no importa que no lo tenga, solo actualice ese campo para su persona+ E. 8btenga los usuarios que no pertenecen al grupo de docentes " que estan en la . V. Liste los Aro"ectos que tienen los usuarios 0jpac2eco0, /gsolorio0, /m)ega0, /ladame(0, /m)illagome,0 W. 8btenga la cantidad de registros obtenidos para el patron /admin0 dentro de la tabla usuarios " personas X. 8btenga un lista con todos los profesores con el ni)el de acceso " el ordenados por Grado+ la manera queda a criterio.

Das könnte Ihnen auch gefallen