Está en la página 1de 9

INTRODUCCIN AL SQL

El presente trabajo tiene por finalidad mostrar el gestor de datos SQL, y en particular las sentencias que son mas frecuentes y utilizadas, No se pretende realizar un estudio exhaustivo de todas las opciones, comandos y aspectos de almacenamiento y administraci n que se pueden considerar en SQL! S lo se ha pretendido introducir y explicar los comandos m"s utilizados con sus opciones m"s #tiles, dejando los detalles m"s espec$ficos a los manuales de referencia! Las razones que me han movido a construirlo en %&'L y facilitar su acceso mediante (eb son las posibilidades de interacci n con el texto y de mayor difusi n! )or ahora las tablas de ejemplo son est"ticas y se encuentran en el texto mismo, pero mi intenci n es que se pueda interactuar con una base de datos en tiempo real! El SQL es un lenguaje est"ndar de programaci n para el acceso a bases de datos! El lenguaje SQL se utiliza para acceder y manipular datos en cualquier base de datos del mercado, como por ejemplo, para las bases de datos 'ySQL, *racle, +,-, SQL Server, .ccess! Que es SQL? SQL es un standar un lenguaje estructurado para consultas SQL te permite aceder y manejar bases dedatos SQL es un Estandar (ANSI American National Standards Institute) Que puede hacer SQL? SQL puede ejecutar consultas a una base de datos SQL puede obtener datos de una base de datos SQL puede insertar registros en una base de datos SQL puede actualizar registros de una base de datos SQL puede borrar registros de una base de datos SQL puede crear nuevas bases de datos SQL puede crear nuevas tablas en una base de datos SQL puede crear procedimientos almacenados(codigo almacenado) en una base de datos SQL puede crear vistas en una base de datos SQL puede configurar permisos a tablas procedimientos y vistas SQL es un est!ndar pero A pesar de "ue es un est!ndar ANSI (American National Standards Institute) #ay diferentes versiones del lenguaje SQL $ de cual"uier modo siguen cumpliendo el est!ndar ANSI pues estas versiones

soportan la mayor%a de los comandos tales como SELE&' ()*A'E *ELE'E INSE+' ,-E+E Este tutorial se divide en las siguientes partes/

SQL Bsico/ Las instrucciones SQL b"sicas para la consulta de datos de cualquier base de datos relacional! SQL Avanzado/ Las instrucciones SQL avanzadas para un control completo sobre cualquier base de datos relacional! Funciones SQL/ SQL tiene multiples funciones predefinidas para realizar ciertos c"lculos sobre los datos! Comandos SQL/ Listado de todos los comandos SQL disponibles en este curso, para una referencia r"pida de los mismos!

El SQL es un lenguaje estructurado y un est"ndar .NS0 para el acceso y manipulaci n de los datos de cualquier base de datos! El SQL se compone de sentencias SQL, cada una con una utilidad diferente, como por ejemplo/

1reaci n de una base de datos 213E.&E +.&.,.SE4 1reaci n de una tabla 213E.&E &.,LE4 1reaci n de una vista 213E.&E 50E(4 1reaci n de un $ndice de una tabla 213E.&E 0N+E64 1reaci n de procedimientos almacenados 213E.&E )3*1E+73E4 1reaci n de disparadores 213E.&E &3088E34 1onsultar los datos almacenados en una tabla 2SELE1&4 0nsertar datos en una tabla 20NSE3&4 'odificar datos ya existentes en una tabla 27)+.&E4 ,orrar datos almacenados en una tabla 2+ELE&E4 +ar permiso de acceso a los datos de una tabla 283.N&4 Eliminar permisos de acceso a datos de una tabla 23E5*9E4 :inalizar la transacci n de una sentencia SQL 21*''0&4

3etroceder la transacci n de una sentencia SQL 23*LL,.194!

Creamos la base de datos 13E.&E +.&.,.SE empresa Creamos la tabla Personas 13E.&E &.,LE dbo!)ersonas 2);id int )30'.3< 9E< 0+EN&0&<, Nombre nchar2-=4 N*& N7LL, .pellidos nchar2>=4 N*& N7LL, +ireccion nchar2?=4 N*& N7LL, 1iudad nchar2@=4 N*& N7LL48* Insertamos algunos registros: 0NSE3& 0N&* )ersonas 5.L7ES 2A'arco .ntonioA,A&rejo LemusA,A1alle E B--A,A&ampicoA4 0NSE3& 0N&* )ersonas 5.L7ES 2A'artha ,eatrizA,A&rejo LemusA,A1alle E B--A,A&ampicoA4 0NSE3& 0N&* )ersonas 5.L7ES 2ACuana ElviraA,A&rejo LemusA,A1alle E B--A,A&ampicoA4 0NSE3& 0N&* )ersonas 5.L7ES 2ANora DulmaA,A&rejo LemusA,A1alle E B--A,A&ampicoA4 0NSE3& 0N&* )ersonas 5.L7ES 2ALaura LuceroA,ASobrevilla &rejoA,A1alle E B--A,A&ampicoA4 0NSE3& 0N&* )ersonas 5.L7ES 2A'aria de la luzA,A&rejo 1amposA,A1alle E B--A,A&ampicoA4 0NSE3& 0N&* )ersonas 5.L7ES 2A&rinidadA,A&rejo ,autistaA,A1alle E B--A,A&ampicoA4 0NSE3& 0N&* )ersonas 5.L7ES 2A'arcel .bisagA,ASobrevilla &rejoA,A1alle E B--A,A&ampicoA4 0NSE3& 0N&* )ersonas 5.L7ES 2ACose .brahamA,ASobrevilla &rejoA,A1alle E B--A,A&ampicoA4 0NSE3& 0N&* )ersonas 5.L7ES 2ASamuel SalomonA,A*lmeda &rejoA,A1alle E B--A,A&ampicoA4 'uchas de las acciones que necesitas realizar en una base de datos se hacen con sentencias SQL Tipos de Sentencias

Las sentencias SQL pertenecen a dos categor$as principales/ Lenguaje de +efinici n de +atos, ++L y Lenguaje de 'anipulaci n de +atos, +'L! Estos dos lenguajes no son lenguajes en s$ mismos, sino que es una forma de clasificar las sentencias de lenguaje SQL en funci n de su cometido! La diferencia principal reside en que el ++L crea objetos en la base de datos y sus efectos se pueden ver en el diccionario de la base de datosE mientras que el +'L es el que permite consultar, insertar, modificar y eliminar la informaci n almacenada en los objetos de la base de datos! 1uando se ejecutan las sentencias ++L de SQL, el S8,+ confirma la transacci n actual antes y despuFs de cada una de las sentencias ++L! En cambio, las sentencias +'L no llevan impl$cito el commit y se pueden deshacer! Existe pues un problema al mezclar sentencias +'L con ++L, ya que estas #ltimas pueden confirmar las primeras de manera involuntaria e implicita, lo que en ocasiones puede ser un problema! . continuaci n se presenta una tabla con las sentencias SQL m"s comunes, clasificadas seg#n el lenguaje al que pertenecen! Sentencia DDL .lter procedure .lter &able .nalyze Objetivo 3ecompilar un procedimiento almacenado! .Gadir o redefinir una columna, modificar la asignaci n de almacenamiento! 3ecoger estad$sticas de rendimiento sobre los objetos de la ,+ para utilizarlas en el optimizador basado en costes!

1reate &able 1rear una tabla! 1reate 0ndex 1rear un $ndice! +rop &able +rop 0ndex 8rant &runcate 3evoHe Sentencia DML 0nsert +elete 7pdate Select 1ommit Eliminar una tabla! Eliminar un $ndice! 1onceder privilegios o papeles, roles, a un usuario o a otro rol! Eliminar todas las filas de una tabla! 3etirar los privilegios de un usuario o rol de la base de datos! Objetivo .Gadir filas de datos a una tabla! Eliminar filas de datos de una tabla! 'odificar los datos de una tabla! 3ecuperar datos de una tabla! 1onfirmar como permamentes las modificaciones realizadas!

3ollbacH

+eshacer todas las modificaciones realizadas desde la #ltima confirmaci n!

Posibilidades de Edicin SQLI)lus almacena en un buffer la #ltima sentencia SQL introducida! El buffer mantiene s lo una sentencia cada vez, y si se introduce una nueva sentencia se sobreescribe sobre la anterior! La sentencia en el buffer puede ser recuperada para ejecutarla de nuevo con los comandos/

RUN que visualiza la sentencia en el buffer antes de ejecutarlaE / que ejecuta la sentencia sin visualizarla!

SQLI)lus tambiFn nos permite editar la sentencia SQL alamacenada en el buffer mediante un sencillo 2y limitado4 editor en l$nea, cuyos comandos se enumeran a continuaci n/ Comando .))EN+ texto Abreviatura . texto Descripcin .Gade texto al final de la l$nea! 1ambia el contenido AfuenteA por el AdestinoA Quita AtextoA de una l$nea! ,orra el buffer ,orra una l$nea! 0nserta una o m"s l$neas! 0nserta una l$nea con AtextoA! Lista las l$neas del buffer n Lista la l$nea nKFsima! Lista la l$nea actual! Lista la #ltima l$nea! Lista las l$neas desde la mKFsima a la nK Fsima!

1%.N8EJfuenteJdestino 1JfuenteJdestino 1%.N8EJtexto 1LE.3 ,7::E3 +EL 0N)7& 0N)7& texto L0S& L0S& n L0S& I L0S& L.S& L0S& m n 1Jtexto 1L ,7:: +EL 0 0 texto L Ln LI L L.S& Lmn

.l contenido del buffer tambiFn se puede acceder desde el editor del Sistema *perativo! .s$, el buffer podr" ser manipulado con las posibilidades del editor con el que estemos

acostumbrados a trabajar! .l salir del editor se devuelve el control al SQLI)lus! )ara conseguir trabajar con el editor del Sistema *perativo basta con colocar la variable DEFINE_EDITOR y luego llamar al editor! SQLL define;editorMvi SQLL edit Tipos de Columnas Existen varios tipos de datos en SQL! +e esta manera, cada columna puede albergar una informaci n de naturaleza distinta! Los tipos de datos m"s comunes y sus caracter$sticas se resumen en la siguiente tabla! Tipo de Dato VARCHAR2(tamao) CHAR(tamao) LONG NUMBER(dig d!c) DATE RA"(tamao) LONG#RA" Descripcin .lmacena datos de tipo car"cter alfanumFrico de longitud variable, con un tamaGo m"ximo de -!===! .lmacena datos de tipo car"cter alfanumFrico de longitud fija, con un tamaGo m"ximo de -NN! .lmacena datos de tipo car"cter alfanumFrico de longitud variable con un tamaGo m"ximo de hasta - 8b! .lmacena datos numFricos de dig d$gitos, de los cuales d!c son decimales! El tamaGo m"ximo es de >B d$gitos! .lmacena fechas desde el @KEneK?O@- .1 hasta el >@K +icK?O@- +1! .lmacena datos de longitud variable, con un tamaGo m"ximo de -NN bytes! .lmacena datos de longitud variable, con un tamaGo m"ximo de - 8b!

)asamos a describir los tipos de sentencias s"l "ue podemos encontrarnos y sus componentes sint!cticos. SEN ENCIA !$L $ani%ulaci&n de datos SELE1& 0NSE3& +ELE&E 7)+.&E !ESC"IPCI#N

3ecupera datos de la base de datos! .Gade nuevas filas de datos a la base de datos! Suprime filas de datos de la base de datos! 'odifica datos existentes en la base de datos!

!!L

!e'inici&n de datos 13E.&E &.,LE +3*) &.,LE .Gade una nueva tabla a la base de datos! .L&E3 &.,LE Suprime una tabla de la base de datos! 'odifica la estructura de una tabla existente! 13E.&E 50E( .Gade una nueva vista a la base de datos! Suprime una vista de la base de datos! +3*) 50E( 1onstruye un $ndice para una columna! 13E.&E Suprime el $ndice para una columna! 0N+E6 +efine un alias para un nombre de tabla! +3*) 0N+E6 Suprime un alias para un nombre de tabla! 13E.&E S<N*<' +3*) S<N*N<' Control de acceso 83.N& 3E5*9E Control de transacciones 1*''0& 3*LL,.19

!CL

1oncede privilegios de acceso a usuarios! Suprime privilegios de acceso a usuarios :inaliza la transacci n actual! .borata la transacci n actual!

PLSQL SQL Programtico +E1L.3E *)EN :E&1% 1L*SE IP( 1%.3P.1&E3Q2n4

+efine un cursor para una consulta! .bre un cursor para recuperar resultados de consulta! 3ecupera una fila de resultados de consulta! 1ierra un cursor! !ESC"IPCI#N 1adena de caracteres de longitud fija n 1adena de caracteres de longitud variable! En las implementaciones reales se suele indicar la longitud m"xima! .s$ en +,R ser$a 5.31%.32n4!

1%.3.1&E3 5.3<0N8

S'.LL0N& 0N&E8E3

N#mero entero en el rango K>-!OSB a >-!OSO N#mero entero con signo con un rango de K-!@?O!?B>!S?B a -!@?O!?B>!S?O y sin signo de = a ?!-T?!TSO!-TN +ecimal empaquetado con un total de p d$gitos de los cuales q hay a la derecha del punto decimal! 0gual que +E10'.L N#mero de punto flotante con una precisi n de p d$gitos binarios 0gual que :*L.& pero con una precisi n definida por la implementaci n! 0gualque 3E.L pero con el doble de precisi n! :echa en formato aaaammdd %ora en formato hhmmss U'arca de tiempoR! Es una combinaci n de fecha y hora con una precisi n de microsegundos! Expresa diferencias entre fechas u horas 7n bit 1adena de bits de longitud variable!

+E1P0'.LQ2p,q4 N7'E3012p,q4 :L*.&P2p4Q 3E.L +*7,LE )3E10S0*N +.&E &0'E &0'ES&.') 0N&E35.L ,0& ,0& 5.3<0N8

El con)unto de caracteres de PL*SQL +c,aracter setEl tipo de caracteres que se utiliza en )LJSQL es el 7SO.S100! Tipo Letras Dgitos Smbolos 0s1a2ios e3 bla32o Ca acte es A-Z, a-z 0-9 ~!@#$%*( !"#$%&'()*+,,-./ 4ab, es1a2io, 35e6a l3ea, retor3o 7e 2arro,

Smbolos e3 8L.S9L S!mbolo ' % ! Desc ipcin 4ermi3a las l3eas 7e 8L.S9L :37i2a7or 7e atrib5tos 2omo %:S;80< 7e los 25rsores = %>;?4@80 1ara la 7e2lara2i=3 7e 6ariables, Underscore, Se 5tiliza e3 la 2o37itio3 7e L:A0,

@ & *+, C$, /$,~$ %% ** ++ *$,+$ &$ $+ ,, .* *. "

:37i2a7or 7e lo2aliza2i=3 remota, Bariables bind. DiDere3te Eo32ate3a2i=3 0tiF5etas Eom1ara2i=3 Asig3a2i=3 7e 6alores, ;1era7or 7e aso2ia2i=3 >a3gos Eome3tarios 7e 6arias l3eas Eome3tarios 7e 53a li3ea

Com%onentes sintcticos La mayor$a de sentencias SQL tienen la misma estructura! &odas comienzan por un verbo 2select, insert, update, create4, a continuaci n le sigue una o m"s cl"usulas que nos dicen los datos con los que vamos a operar 2from, Vhere4, algunas de estas son opcionales y otras obligatorias como es el caso del from!

También podría gustarte