Conceptos generales SQL

download Conceptos generales SQL

of 16

Transcript of Conceptos generales SQL

  • 7/26/2019 Conceptos generales SQL

    1/16

    Conceptos generales, estructura bsica, predicados y operadores. Tipos de datos.

    SQL

    Introduccin

    El lenguaje de consulta estructurado SQL (Standard Query Language) ) es un lenguajede base de datos normalizado, utilizado por el motor de base de datos de Microsoft Jet elcual nos permite crear tablas y obtener datos de ella de manera muy sencilla.

    El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones deagregado. Estos elementos se combinan en las instrucciones para crear, actualizar ymanipular las bases de datos.

    !ara e"poner mas claramente los conceptos se realizaran ejemplo sobre relaciones #uese crearan a#u$ para entender mejor como funciona SQL.

    %uando nos refiramos a relacinestamos &ablando ms concretamente de la tabladedatos en si, y sus atributos sern los camposde la tabla. %omo ejemplo la siguienterelaci'n (tabla) la llamaremos persona y sus atributos ( campos ) son nombre, apellido y d

    !ES*+

    - +*ME !ELL-*

    /0123 J*SE L4E510312 !L* L6!E5

    12207 *E8* S9+%:E5

    ;+ L-ES

    0=/3? >E+ L6!E5

    103/2 S+- >LL*%@

    E"isten dos tipos de comandos SQLA

    los -LL #ue permiten crear y definir nueBas bases de datos, campos e $ndices. los -ML #ue permiten generar consultas para ordenar, filtrar y e"traer datos de la

    base de datos.

    1

  • 7/26/2019 Conceptos generales SQL

    2/16

    Comandos DLL

    %E8E >tilizado para crear nueBas tablas, campos e $ndices

    -*! Empleado para eliminar tablas e $ndices

    L8E >tilizado para modificar las tablas agregando campos o cambiando ladefinici'n de los campos.

    Comandos DML

    SELE%8 >tilizado para consultar registros de la base de datos #ue satisfagan uncriterio determinado

    +SE8 >tilizado para cargar lotes de datos en la base de datos en una Cnicaoperaci'n.

    >!-8E >tilizado para modificar los Balores de los campos y registros especificados

    -ELE8E >tilizado para eliminar registros de una tabla de una base de datos

    Estructura bsica

    Las clusulas son condiciones de modificaci'n utilizadas para definir los datos #uedesea seleccionar o manipular.

    D*M >tilizada para especificar la tabla de la cual se Ban a seleccionar los registros

    :EE >tilizada para especificar las condiciones #ue deben reunir los registros #ue seBan a seleccionar

    F*>! G >tilizada para separar los registros seleccionados en grupos espec$ficos

    :4+F >tilizada para e"presar la condici'n #ue debe satisfacer cada grupo

    *-E G >tilizada para ordenar los registros seleccionados de acuerdo con un

    orden espec$fico

    La estructura bsica de una e"presi'n para consulta SQLconsta de tres elementosA

    SELECT

    FROM

    WHERE

    2

  • 7/26/2019 Conceptos generales SQL

    3/16

    Consultas de Seleccin

    Las consultas de selecci'n se utilizan para indicar al motor de datos #ue deBuelBainformaci'n de las bases de datos, esta informaci'n es deBuelta en forma de conjunto deregistros.

    >na consulta bsica en SQLtiene la formaA

    SELECTA1,A2,...,An

    FROr1,r2,...,rn

    !"EREP

    -ondeA

    H atributo ( %ampo de la tabla )

    r H relaci'n ( 8abla )

    ! H condici'n

    Ejemplo: Seleccionar todos los nombres de las personas que tengan el apellido LPEZ

    de la tabla PES!"A

    SELECTnombre

    FRO persona

    !"ERE apellido # $LPEZ%I

    El resultado de una consulta es por supuesto otrarelaci'n (8abla). Si se omite la clusula WHERE, elpredicado ! es Berdadero. La lista

  • 7/26/2019 Conceptos generales SQL

    4/16

    Predicados o!eradores"

    Los operadores l'gicos en SQLsonA

    #$DEs el KyK l'gico. EBalCa dos condiciones y deBuelBe un Balor de Berdad s'lo siambas son ciertas.

    OREs el KoK l'gico. EBalCa dos condiciones y deBuelBe un Balor de Berdad sialguna de las dos es cierta.

    $OT+egaci'n l'gica. -eBuelBe el Balor contrario de la e"presi'n.

    La l'gica de estos operadores es igual #ue en cual#uier lenguaje de programaci'n ysirBen para unir predicados.

    Las operaciones aritmticas en SQLsonA

    % & Suma '

    ( & Resta '

    ) & Multi!licacin '

    * & Di+isin '

    Funciones de #,re,ado

    Las funciones de agregado se usan dentro de una clusula SELE%8 en grupos deregistros para deBolBer un Cnico Balor #ue se aplica a un grupo de registros.

    Funcin Descri!cin

    4F>tilizada para calcular el promedio de los Balores de uncampo determinado

    %*>+8>tilizada para deBolBer el nCmero de registros de laselecci'n

    S>M >tilizada para deBolBer la suma de todos los Balores de uncampo determinado

    M>tilizada para deBolBer el Balor ms alto de un campoespecificado

    M+>tilizada para deBolBer el Balor ms bajo de un campoespecificado

    4

  • 7/26/2019 Conceptos generales SQL

    5/16

    5

  • 7/26/2019 Conceptos generales SQL

    6/16

    O!eradores de Com!aracin

    *perador >so

    N Menor #ue

    O Mayor #ue

    NO -istinto de

    NH Menor ' gual #ue

    OH Mayor ' gual #ue

    H gual #ue

    E8EE+>tilizado para especificar un interBalo deBalores.

    L@E >tilizado en la comparaci'n de un modelon

    >tilizado para especificar registros de una basede datos

    El operador de comparaci'n -ETWEE$, se utiliza para Balores comprendidos.

    Ejemplo: Encontrar todos los nombres & 'd de las personas cu&os 'd sea ma&or que ()mil & menor a *) mil

    SELECTnombre, 'd

    FROpersona

    !"ERE'd#ET!EE$())))and *))))

    +*ME -

    !L* 10312

    *E8* 12207

    S+- 103/2

    6

  • 7/26/2019 Conceptos generales SQL

    7/16

    Ordenar los re,istros"

    dicionalmente se puede especificar el orden en #ue se desean recuperar los registros

    de las tablas mediante la clusula *-E G Lista de %ampos. En donde Lista de camposrepresenta los campos a ordenar. EjemploA

    SELE%8 +ombre, pellido, d D*M persona *-E G +ombreI

    Esta consulta deBuelBe los campos +ombre, pellido y d ordenados por el campo+ombre.

    El resultado ser$aA

    J*SE L4E5 /0123

    J>+ L-ES ;E+ L6!E5 0=/3?

    S+- >LL*%@ 103/2

    Consultas con Predicado

    El predicado se incluye entre la clusula y el primer nombre del campo a recuperar, losposibles predicados sonA

    !redicado -escripci'n

    LL -eBuelBe todos los campos de la tabla

    8*!-eBuelBe un determinado nCmero de registros de latabla

    -S8+%8*mite los registros cuyos campos seleccionadoscoincidan totalmente

    -S8+%8**mite los registros duplicados basndose en latotalidad del registro y no s'lo en los campos

    seleccionados.

    Si no se incluye ninguno de los predicados se asume LL. El Motor de base de datosselecciona todos los registros #ue cumplen las condiciones de la instrucci'n SQL.

    %on el uso de este predicado obligamos al motor de la base de datos a analizar laestructura de la tabla para aBeriguar los campos #ue contiene, se recomienda por su rapidezindicar el listado de campos deseados. EjemploA

    7

  • 7/26/2019 Conceptos generales SQL

    8/16

    SELE%8 LL D*M personaI SELE%8 D*M personaI

    8

  • 7/26/2019 Conceptos generales SQL

    9/16

    TOP

    -eBuelBe un cierto nCmero de registros #ue entran entre al principio o al final de unrango especificado por una clusula *-E G. Supongamos #ue #ueremos recuperar losnombres de las / primeras personas de nuestra tabla ejemplo.

    SELE%8 8*! / +ombre, pellido D*M persona *-E G pellidoI

    Si no se incluye la clusula *-E G, la consulta deBolBer un conjunto arbitrario de/ registros de la tabla persona .El predicado 8*! no elige entre Balores iguales.

    Se puede utilizar la palabra reserBada !E%E+8 para deBolBer un cierto porcentaje deregistros #ue caen al principio o al final de un rango especificado por la clusula *-E

    G. EjemploA SELE%8 8*! /7 !E%E+8 +ombre, pellido D*M persona

    *-E G pellidoI

    La clusula WHERE

    La clusula :EE puede usarse para determinar #u registros de las tablasenumeradas en la clusula D*M aparecern en los resultados de la instrucci'n SELE%8.-epus de escribir esta clusula se deben especificar las condiciones. Si no se emplea estaclusula, la consulta deBolBer todas las filas de la tabla. :EE es opcional, pero cuando

    aparece debe ir a continuaci'n de D*M.SELE%8 +ombre, pellido D*M persona :EE d O 12777I

    *btendr$amos el siguiente resultadoA

    *E8* S+%:E5 12207

    J>+ L-ES ;

  • 7/26/2019 Conceptos generales SQL

    10/16

    Consultas de #ccin

    Las consultas de acci'n son a#uellas #ue no deBuelBen ningCn registro, son lasencargadas de acciones como aPadir y borrar y modificar registros.

    DELETE

    %rea una consulta de eliminaci'n #ue elimina los registros de una o ms de las tablaslistadas en la clusula D*M #ue satisfagan la clusula :EE. Esta consulta elimina los

    registros completos, no es posible eliminar el contenido de algCn campo en concreto. Susinta"is esA

    -ELE8E 8abla. D*M 8abla :EE criterio

    La opci'n tabla")se utiliza cuando el ori,en est basado en +arias tablas, y sirBepara indicar en .u/ tabla +amos a borrar.

    -ELE8E D*M persona :EE pellido H KSnc&ezKI

    La opci'n) es opcional y es la #ue se asume!or de0ectoy se puede poner unicamente

    cuando el ori,en es una sola tabla.

    +ota importante. >na Bez borrados, los re,istros no se !ueden recu!erar.

    !ara saber con seguridad #u registros se eliminarn, primero se puede ejecutar unaconsulta de selecci'n #ue utilice el mismo criterio y despus ejecutar la consulta deborrado. Es importante mantener copias de seguridad de los datos por si se eliminan losregistros e#uiBocados, podrn ser recuperados.

    10

  • 7/26/2019 Conceptos generales SQL

    11/16

    1$SERT 1$TO

    La inserci'n de nueBos datos en una tabla se realiza a2adiendo 0ilas enteras a la tabla ,

    la sentencia SQL #ue lo permite es la orden 1$SERT 1$TO.

    Esta consulta puede ser de dos tipoA nsertar un Cnico registro ' nsertar en una tabla losregistros contenidos en otra tabla.

    !ara insertar un Cnico egistroAEn este caso la sinta"is es la siguienteA

    +SE8 +8* 8abla (campoES (BalorES (Luis, Snc&ez, 10

  • 7/26/2019 Conceptos generales SQL

    12/16

    Ti!os de Datos

    Los tipos de datos SQL se clasifican en n $ndice multicampo es a#uel #ue est inde"ado por el contenido deBarios campos. Esta clusula en opcional.

    12

  • 7/26/2019 Conceptos generales SQL

    13/16

    EjemplosA

    %E8E 8LE persona (+ombre 8E8 (=1) , pellido 8E8 (17))I

    +rea una nuea tabla llamada PES!"A con dos campos, uno llamado "ombre detipo te3to & longutid 2( & otro llamado apellidos con longitud ().

    %E8E 8LE persona (d +8EFE %*+S8+8 ndice!rimario !MG,+ombre 8E8, pellido 8E8, Dec&aR+acimiento -8E8ME)I

    +rea una tabla llamada PES!"A con un campo e3to de longitud predeterminada()0 llamado "ombre & otro igual llamado Apellido, crea otro campo llamado4ec5a6"acimiento de tipo 4ec5a78ora & el campo 'd de tipo entero el que establece comoclae principal.

    - +*ME !ELL-* DE%:R+%

    /0123 J*SE L4E5

  • 7/26/2019 Conceptos generales SQL

    14/16

    14

  • 7/26/2019 Conceptos generales SQL

    15/16

    Modi0icar el Dise2o de una Tabla"

    Modifica el disePo de una tabla ya e"istente, se pueden modificar los campos o los$ndices e"istentes. Su sinta"is esA

    L8E 8LE tabla T-- T%*L>M+ tipo de campoU(tamaPo)V U%*+S8+8$ndiceV %*+S8+8 $ndice multicampoW X

    -*! T%*L>M+ campo %*+S8+8 nombre del $ndiceW W

    En dondeA

    tablaEs el nombre de la tabla #ue se desea modificar.

    campoEs el nombre del campo #ue se Ba a aPadir o eliminar.

    tipo Es el tipo de campo #ue se Ba a aPadir.tama(oEl el tamaPo del campo #ue se Ba a aPadir (s'lo para campos de te"to).

    )ndiceEs el nombre del $ndice del campo (cuando se crean campos) o el nombre del$ndice de la tabla #ue se desea eliminar.

    )ndice multicampoEs el nombre del $ndice del campo multicampo (cuando se creancampos) o el nombre del $ndice de la tabla #ue se desea eliminar.

    *++ COL$ Se utiliza para aPadir un nueBo campo a la tabla, indicando el nombre,

    el tipo de campo y opcionalmente el tamaPo (para campos de tipo te"to).*++ Se utliza para agregar un $ndice de multicampos o de un Cnico campo.

    +RO- COL$Se utliza para borrar un campo. Se especifica Cnicamente el nombredel campo.

    +RO-Se utiliza para eliminar un $ndice. Se especifica Cnicamente el nombre del $ndicea continuaci'n de la palabra reserBada %*+S8+8.

    EjemploA

    grega un campo Salario de tipo Moneda a la tabla !ersona.

    L8E 8LE persona -- %*L>M+ Salario %>E+%GI

    Elimina el campo Salario de la tablapersona.L8E 8LE persona -*! %*L>M+ SalarioI

    15

  • 7/26/2019 Conceptos generales SQL

    16/16

    DROP T#-LE

    La sentencia DROP T#-LEsirBe para eliminar una tabla. +o se puede eliminar una

    tabla si est abierta, tampoco la podemos eliminar si el borrado infringe las reglas deintegridad referencial (si interBiene como tabla padre en una relaci'n y tiene registrosrelacionados).La sinta4ises la siguienteA

    -*! 8LE tabla