Вы находитесь на странице: 1из 9

Conferencia # 1:

INTRODUCCIN AL SQL
INTRODUCCIN
Presentar la asignatura: estudio de SQL como lenguaje para manipular bases de
datos, sin hacer alusin a ninguna implementacin en particular.
bjeti!os generales: utili"ar el SQL para la reali"acin de consultas, actuali"acin
de los datos # creacin # modificacin de bases de datos # sus diferentes elementos.
DESARROLLO
$l Lenguaje SQL
SQL es una herramienta para organi"ar, gestionar # recuperar datos almacenados en
una %&. $l nombre 'SQL( es una abre!iacin de Structured Query Language. Por
ra"ones histricas algunos pronuncian 'se)uel( *Structured $nglish Quer#
Language+, pero tambi,n se usa la alternati!a 's)l(. $ste lenguaje nos a#uda a
manipular %& relacionales.
$n la siguiente figura se muestra cmo funciona el SQL:
$l sistema inform-tico tiene una base de datos )ue almacena informacin. La %& es
controlada por el Sistema de .estin de %ases de &atos *S.&%+. Cuando es
necesario recuperar datos de la %&, la peticin se reali"a en SQL. $l S.%& recibe
esta peticin, la procesa, recoge los datos solicitados # los de!uel!e a )uien los
pidi. / este proceso es al )ue se conoce como consulta.
Sistema 0nform-tico
Peticin SQL
&atos
Sistema de
.estin de &atos
%ase de datos
$l t,rmino 'lenguaje estructurado de consultas( es algo incorrecto, pues el SQL es
una herramienta mucho m-s poderosa )ue una herramienta de consulta. /un)ue
originalmente este fue su propsito # a1n ho# en d2a es su principal uso.
SQL se puede utili"ar para reali"ar pr-cticamente todas las funciones de un S.%&:
&efinicin de datos
SQL permite )ue usuario defina la estructura # la organi"acin de los datos
almacenados, as2 como las relaciones e3istentes entre ellos.
4ecuperacin de datos.
SQL permite a un usuario o a un programa recuperar # utili"ar los datos
almacenados en una %&.
5anipulacin de datos.
SQL permite a un usuario o a un programa actuali"ar la %&, a6adiendo datos
nue!os, borrando los !iejos # modificando los pre!iamente almacenados.
Control de acceso
SQL puede ser utili"ado para restringir la capacidad de un usuario para
recuperar, a6adir # modificar datos, protegiendo los datos almacenados
contra accesos no autori"ados.
Comparticin de informacin
SQL es utili"ado para coordinar la comparticin de datos entre usuarios
concurrentes, asegurando )ue no ha#a interferencias entre ellos.
0ntegridad de datos
SQL define restricciones de integridad en la %&, protegi,ndola de
alteraciones debidas a actuali"aciones inconsistentes o fallas del sistema.
SQL es un lenguaje inform-tico completo de control e interaccin con un S.&%, ha
emergido como el lenguaje est-ndar de utili"acin de %& relacionales. 0mportante
es hacer notar )ue el SQL no es s2 mismo un S.&%. 7o se puede comprar como
producto *SQL Ser!er es otra cosa+. SQL es un lenguaje # una herramienta para
comunicarse con el S.%&.
Principales caracter2sticas del SQL )ue lo han hecho conseguir ,3ito:
0ndependencia de los pro!eedores
Portabilidad entre sistemas inform-ticos
$st-ndares SQL
/probacin de 0%5
/cuerdos con 5icrosoft *&%C+
8undamento relacional
$structura de alto ni!el parecido al ingl,s.
Consultas ad hoc interacti!as.
/cceso a las %& desde programas
51ltiples !istas de datos.
Lenguaje completo de %&
&efinicin din-mica de datos.
/r)uitectura cliente 9 ser!idor.
%re!e :istoria del SQL
La historia del SQL est- 2ntimamente ligada con el desarrollo de las %&
relacionales. $n la siguiente tabla se muestra los momentos m-s importantes en el
desarrollo del SQL
8echa /contecimiento
1;<= Codd define el modelo de %& relacional
1;<> Comien"a el pro#ecto S#stem94 de 0%5
1;<> Primer art2culo )ue describe el lenguaje S$Q?$L
1;<@ Aest de clientes del S#stem94
1;<; racle introduce el primer S.%& relacional comercial
1;@1 4elational Aechnolog# introduce 0ngres
1;@B /7S0 forma el comit, de est-ndares SQL
1;@C 0%5 anuncia &%B
1;@D Se ratifica el est-ndar /7S0 SQL
1;@D S#sbase introduce S.%& relacionales para transacciones
1;@< Se ratifica el est-ndar 0S SQL
1;@@ /shtonEAate # 5icrosoft anuncian SQL Ser!er para S9B
1;@@ 0%5 anuncia la !ersin B de &%B
1;@; Primera entrega de ser!idores de %& SQL para S9B
1;@; Se funda SQL /ccess .roup
1;;1 Se publica la especificacin SQL /ccess .roup
1;;B Primera comerciali"acin de ser!idores de %& SQL para
7etFare
1;;B 5icrosoft publica la especificacin &%C
1;;B Se ratifica el est-ndar /7S0 SQLB
1;;C Primera comerciali"acin de producto &%C
Conceptos %-sicos
Sentencias
$l lenguaje SQL consta de unas treinta sentencias. Cada sentencia demanda una
accin espec2fica por parte del S.%& tal como la creacin de una nue!a tabla, la
recuperacin de datos o la insercin de nue!os datos en la %&. Aodas las sentencias
SQL tiene la misma forma b-sica, ilustrada a continuacin:
Aodas las sentencias comien"an con un !erbo, *una palabra cla!e )ue describe lo
)ue la sentencia hace: C4$/A$, 07S$4A, &$L$A$, S$L$CA, etc.+. La sentencia
continua con una o m-s cl-usulas. ?na cl-usula puede especificar los datos sobre los
)ue debe actuar la sentencia, o proporcionar m-s detalles acerca de lo )ue la
sentencia se supone )ue hace. Aodas las cl-usulas tambi,n comien"an con una
palabra cla!e *ejemplos: G:$4$, 845, 07A+. /lgunas cl-usulas son
necesarias, otras opcionales.
Las palabras cla!es no se deben utili"ar como nombres de objetos de la %&.
$n el curso utili"aremos las palabras cla!es en ma#1sculas # el nombre de los
objetos en min1scula, esto es un con!enio )ue no tiene )ue ser norma.
Nombres
Los objetos de una %& basada en SQL se identifican asign-ndoles nombres 1nicos.
Se especifican nombre de tablas, columnas # usuarios *ha# implementaciones de
S.%& )ue especifican otros objetos como disparadores, procedimientos
almacenados, relaciones, etc.+.
$n SQL los nombres deben contener hasta 1@ caracteres # deben comen"ar con una
letra # no pueden contener espacios o caracteres de puntuacin especiales.
Los nombres de las tablas se pueden cualificar utili"ando el nombre del propietario,
cuando )ueremos hacer referencias a tablas )ue no son propiedad nuestra. Para la
cualificacin se utili"a un punto )ue separa el nombre del propietario del nombre de
la tabla
$jemplo: sam.!entas especifica la tabla !entas creada por sam.
?n nombre de tabla cualificado puede ser utili"ado en cual)uier lugar donde puede
parecer el nombre de una tabla *si e3isten los permisos necesarios+.
Los nombres de columnas tambi,n pueden ser cualificados para e!itar confusiones
en cuanto a la tabla )ue pertenece la columna. La cualificacin se reali"a con un
punto entre el nombre de la tabla # el nombre de la columna.
$jemplo: !entas.cantidad especifica la columna cantidad de la tabla !entas.
$sto solo es necesario cuando en una sentencia SQL se est,n haciendo referencia a
!arias tablas # en ellas e3isten columnas de igual nombre.
Tipos de Datos
SQL especifica un conjunto de tipos de datos con los )ue se puede trabajar. $n
general este conjunto es m2nimo # los productos comerciales especifican otros
adicionales.
&$L$A$ 845 inf!entas
G:$4$ !entas H B===
Ierbo
Cl-usulas
Los m-s utili"ados son:
Tipo de datos Descripcin
C:/4*long+
C:/4/CA$4*long+
Cadenas de caracteres de longitud fija
I/4C:/4*long+
C:/4 I/4J07.*long+
Cadenas de caracteres de longitud
!ariable
07A$.$4
07A
71meros enteros
S5/LL07A 71meros enteros pe)ue6os
%0A*long+ Cadenas de bits de longitud fija
%0A I/4J07.*long+ Cadenas de bits de longitud !ariable
7?5$40C*precisin, escala+
&$C05/L*precisin, escala+
&$C*precisin, escala+
71meros decimales
8L/A*precisin+ 71meros en punto flotante
4$/L 71meros en punto flotante de baja
precisin
&?%L$ P4$C0S07 71meros en punto flotante de alta
precisin
&/A$ 8echa
A05$*precisin+ :ora
A05$SA/5P*precisin+ 8echa # :ora
07A$4I/L 0nter!alo de tiempo
La ma#or2a de los gestores comerciales ofrecen un conjunto mucho m-s amplio de
tipos de datos, por ejemplo inclu#en: importes monetarios, lgicos, memo, etc.
$s importante tener en cuenta el gestor con )ue se trabaje para algunos tipos de
datos. Por ejemplo las fechas son representadas de distintas formas por diferentes
gestores: dEmEa, mEdEa, unos con guin, otros con 'slash(, etc.
Constantes
$n algunas sentencias SQL es importante e3presar un !alor de datos num,ricos, de
caracteres o de fecha en forma te3tual. $l est-ndar SQL especifica el formato de las
constantes num,ricas # de caracteres )ue representan !alores de datos espec2ficos.
$stos con!enios son seguidos por la ma#or2a de las implementaciones.
Constantes num,ricas:
Las constantes enteras # decimales *tambi,n denominados literales num,ricos
e3actos+ se escriben como n1meros decimales ordinarios dentro de las sentencias
SQL, con un signo m-s o menos opcional delante.
$jemplos: B> EC<K B==.== L>K;@<D.C>
7o se debe usar coma entre los d2gitos de una constante num,rica.
Las constantes en punto flotante se especifican utili"ando la notacin $ hallada
com1nmente en los lenguajes de alto ni!el.
$jemplos: 1.K$C EC.1>1K;$1
Constantes cadenas:
$l est-ndar especifica )ue las cadenas deben ir encerradas entre apstrofes
*M M+.
$jemplos: MNuan P,re"O, Mcotl-nO, MesteO
Si debe incluirse un apstrofe un la cadena se escribe doble.
$s importante tener en cuenta la implementacin pues pueden usarse las comillas en
lugar de los apstrofes.
Constantes de fecha # hora
Iar2an mucho de una implementacin a otra. $l est-ndar especifica el formato:
aaaaEmmEdd para las fechas # hh:mm:ss para las horas. $n ambos casos como
cadenas de caracteres.
$jemplos: MB==1E=BE1BO, O1<:==:==O
Constantes simblicas
/dem-s de las constantes suministradas por el usuario, el lenguaje SQL inclu#e
constantes simblicas especiales )ue de!uel!en !alores de datos mantenidos por el
propio S.&%. $l est-ndar adopt las constantes: C?44$7AP&/A$ *fecha actual+,
C?44$7APA05$ *hora actual+, C?44$7APA05$SA/5P *fecha # hora actual+,
?S$4 *nombre del usuario bajo el cual se est- accediendo a la %&+.
:a# productos comerciales )ue inclu#en otras constantes, pero la ma#or2a tiene
estas )ue hemos comentado.
Expresiones
$n SQL las e3presiones se utili"an para calcular !alores )ue se recuperan de una
%& # para calcular !alores utili"ados en la b1s)ueda en la %&.
$l est-ndar SQL ofrece las > operaciones b-sicas: suma *L+, resta*E+,
multiplicacin*Q+ # di!isin*9+, con la prioridad cl-sica entre ellas: producto #
di!isin de ma#or prioridad )ue suma # resta. Se pueden utili"ar par,ntesis para
alterar esta prioridad.
$jemplo: !entasQ=.K , !entasQ1.=Eobjeti!oQ.;K
$n una e3presin tambi,n se pueden me"clar tipo, el est-ndar plantea una
con!ersin autom-tica de ellos.
5uchas implementaciones permiten otros operadores, por ejemplo la concatenacin
de cadenas *L, RR+.
Fnciones internas
$l est-ndar de SQL incorpora algunas funciones internas, las cuales pueden ser
especificadas en una e3presin de SQL en cual)uier lugar en )ue una constante del
mismo tipo de datos pueda ser especificada.
/lgunas de estas funciones son:
Fncin De!e"!e
C:/4PL$7.A:*cadena+ Longitud de la cadena
$SA4/CA*parte 845 fuente+ Parte especificada *&0/, :4/, etc.+ de un
!alor 8$C:/ u :4/.
LG$4*cadena+ Cadena con todos los caracteres con!ertidos a
min1sculas
S?%SA407.*fuente 845 n 84 lon+ Parte de la cadena fuente, comen"ando en el
car-cter nE,simo, con una longitud lon.
A405*%A: car 845 cadena+ Cadena con todas las ocurrencias del car
eliminadas del principio # final de la cadena
A405*L$/&07. car 845 cadena+ Cadena con todas las ocurrencias del car
eliminadas del principio de la cadena.
A405*A4/0L07. car 845 cadena+ Cadena con todas las ocurrencias del car
eliminadas del final de la cadena.
?PP$4*cadena+ Cadena con todos los caracteres con!ertidos a
ma#1sculas.
La sinta3is de estas funciones pueden !ariar de una implementacin a otra. /dem-s
la ma#or2a de las implementaciones inclu#en otras funciones internas.
Fa"ta de Datos #$a"ores NULL%
SQL incorpora e3pl2citamente los datos )ue faltan, son desconocidos o no son
aplicables, a tra!,s del concepto de !alor nulo. ?n !alor nulo es un indicador )ue
dice a SQL *# al usuario+ )ue el dato falta o no es aplicable.
$n muchas situaciones los !alores 7?LL re)uieren una gestin especial por parte
del S.%&. Por ejemplo, si el usuario solicita el promedio de una columna, Tcmo el
S.%& tendr2a )ue manejar la falta de datos cuando calcule este promedioU Para
resol!er esto ha# reglas especiales para las sentencias SQL )ue iremos estudiando.
%ase de &atos para los ejemplos
Supongamos una pe)ue6a empresa de distribucin )ue atiende pedidos de clientes.
Aendremos las siguientes tablas:
CL0$7A$S
contiene una fila por cada uno de los clientes de la empresa.
I$7&$&4$S
contiene una fila por cada uno de los !endedores de la empresa.
80C07/S
contiene una fila por cada una de las oficinas en )ue trabajan los !endedores.
P4&?CAS
Contiene una fila por cada tipo de producto disponible para la !enta
P$&0&S
Contiene un art2culo para cada pedido ordenado por un cliente, por
simplicidad se supone )ue cada pedido se refiere a un 1nico producto.
80C07/S*oficina, ciudad, region, dir, objeti!o, !entas+
oficina: cdigo de la oficina
ciudad: ciudad donde radica la oficina
region: regin donde radica la oficina
dir: director de la oficina *es uno de los !endedores+
objeti!o: cu-nto debe ganar la oficina
!entas: !entas reali"adas por la oficina
CL0$7A$S*numPclie, empresa, !endedorPclie, limPcredito+
numPclie: cdigo del cliente
empresa: nombre de la empresa
!endedorPclie: !endedor )ue atiende al cliente.
limPcredito: l2mite de cr,dito concedido al cliente.
P4&?CAS*idPfab, idPproducto, descripcin, precio, e3istencia+
idPfab: cdigo del fabricante
idPproducto: cdigo del producto
descripcin: descripcin del producto.
precio: precio del producto.
e3istencia: e3istencia del producto.
I$7&$&4$S*numPempl, nombre, edad, oficinaP!end, titulo, contrato,
director, cuota, !entas+
numPempl: n1mero del empleado *su cdigo+
nombre: nombre del empleado.
edad: edad del empleado.
oficinaP!end: oficina en )ue trabaja el !endedor.
titulo: puesto )ue ocupa
contrato: fecha del contrato.
director: cdigo de su director *es otro !endedor+
cuota: cuota asignada a este !endedor.
!entas: !entas )ue ha reali"ado el !endedor.
P$&0&S*numPpedido, fechaPpedido, clie, !end, fab, producto, cant, importe+
numPpedido: n1mero del pedido.
fechaPpedido: fecha del pedido.
clie: cliente )ue reali" el pedido *su cdigo+
!end: !endedor )ue acept el pedido.
fab, producto: cdigo del producto )ue se pide.
cant: cantidad del producto )ue se pide.
importe: importe del producto )ue se pide.
Las columnas sombreadas son las lla!es de las tablas.
CONCLUSIONES
0nsistir en:
E uso de SQL,
E objetos )ue manipula,
E forma de las sentencias.
%ibliograf2a:
.u2a Lan A05$S de SQL *0nclu#e SQLB+, Names 4. .roff, Paul 7. Geinberg. 5c
.raF :ill, 1;;@.

Вам также может понравиться