Manual de Microsoft SQL Server-TRANSACT SQL

Embed Size (px)

Citation preview

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    1/127

    Manual de Microsoft SQL Server - Full Transact SQL

    INDICE

    1. Manual de Instalación de Microsoft SQL Server 2008

    2. Conocimientos básicos de SQL Server 

    3. Creación !dministración de bases de datos " 1 de 3

    #. Creación !dministración de bases de datos " 2 de 3

    $. Creación !dministración de bases de datos " 3 de 3

    %. Creación de ti&os de datos tablas

    '. (estricciones de tablas en una base de datos

    8. )alores &redeterminados las re*las como ob+etos inde&endientes

    ,. -structuras de las tablas en SQL Server " 1 de 2

    10. -structuras de las tablas en SQL Server " 2 de 2

    11. (estricciones valores &or defecto re*las en SQL Server 

    12. -structura de /ase de atos os&ital " -+em&lo

    1. escar*ar /ase de atos os&ital

    13. Insertar atos en SQL Server " -+em&lo os&ital

    1. escar*ar Scri&t SQL " Insertar datos /ase de atos os&ital

    1#. Consultas de Selección en SQL Server " arte 1

    1$. Consultas de Selección en SQL Server " arte 2

    1%. Consultas de Selección en SQL Server " arte 3

    1'. Consultas de Selección en SQL Server " arte #

    18. &erador LI4- " SQL Server 

    1,. 5unciones de a*re*ado " arte 1

    20. 5unciones de a*re*ado " arte 2

    21. Consultas de conbinación " arte 1

    22. Consultas de combinación " arte 2

    23. /ase de datos ubs

    1. escar*ar /ase de atos ubs

    2#. 6so de 7oin " -+ercicios con combinaciones internas eternas

    2$. 6so de 7oin " Combinaciones internas

    2%. &erador 6nion

    2'. SubConsultas

    28. Clausulas -9IS:S ;

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    2/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    3/127

    Manual de Instalación de Microsoft SQL Server 2008

    -sta &ublicación va diri*ido a &rofesionales de tecnolo*Aa interesados en entender el &roceso de instalación de Microsoft

    SQL Server 2008 sus com&onentes las recomendaciones de se*uridad el si*nificado de todas las o&ciones dis&onibles

    durante dic?o &roceso.

    • Introduccin al !anual

    Si bien la instalación de Microsoft SQL Server 2008 no es com&licada es de *ran im&ortancia conocer acerca de lo Bue se

    está reali=ando en cada uno de los &asos del &roceso reali=ar una instalación a cie*as &odrAa terminar en una instalación

    de más o menos servicios de los necesarios en la im&lementación de malas &rácticas de se*uridad entre muc?as otras.

    • "ntes de Instalar 

    -s im&ortante Bue antes de instalar SQL Server se ten*an en cuenta al*unas recomendaciones im&ortantes

    1. ecidir la edición de SQL Server 2008 Bue se desea instalar 

    2. (evisar Bue se cum&la con los reBuerimientos de ?ard@are soft@are necesarios &ara instalar SQL Server 2008 la

    información al res&ecto se encuentra en la documentación del &roducto.

    3. Crear cuentas &ara los servicios de SQL Server estas cuentas deben ser creadas con &rivile*ios mAnimos a Bue durante

    el &roceso de instalación el asistente les asi*nará los &ermisos necesarios &ara e+ecutar los res&ectivos servicios.

    La creación de estas cuentas de servicio

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    4/127

    (evise el re&orte ?a*a clic en 4

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    5/127

     !?ora vaa al tab DInstallationE allA seleccione la o&ción D

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    6/127

    bserve de nuevo el re&orte ?a*a clic en D4E

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    7/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    8/127

     !?ora lea los tJrminos de licencia lue*o si está de acuerdo seleccione la o&ción corres&ondiente ?a*a clic en D

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    9/127

     ! continuación se instalan com&onentes de so&orte necesarios &ara la instalación ?a*a clic en DInstallE &ara instalarlos

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    10/127

     !?ora ?a*a clic en D

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    11/127

     !?ora deberá seleccionar las caracterAsticas de SQL server 2008 Bue desea instalar !se*Krese de instalar los servicios

    Bue en al*Kn momento vaa a utili=ar si está totalmente se*uro Bue no va a usar un servicio es&ecAfico cómo !nalsis

    Services lim&ie la casilla de verificación +unto a Jl ?a*a clic en D

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    12/127

     ! continuación tendrá Bue decidir si la instancia Bue va instalar es una instancia &or defecto o nombrada en el se*undo

    caso tendrá Bue asi*nar a esta un nombre con el cual la reconocerá a futuro si la instancia es creada &or defecto la forma

    de conectarse a esta desde servidores o eBui&os clientes remotos será &or medio del nombre de la máBuina o de la

    dirección i& de la misma. a*a clic en D

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    13/127

    -n la si*uiente ventana se encuentra un análisis de reBuerimientos de es&acio cuando se ?aa com&robado Bue cuenta

    con el es&acio de almacenamiento suficiente ?a*a clic en D

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    14/127

     !?ora usted deberá confi*urar las cuentas con las cuales se e+ecutará el servicio la recomendación es utili=ar diferentes

    cuentas sin embar*o en la ima*en de la derec?a usted &uede observar cómo una cuenta es utili=ada &ara e+ecutar más de

    un servicio en la &arte inferior &odrAa seleccionar la o&ción &ara utili=ar la misma cuenta &ara todos los servicios en cuo

    caso solamente tendrá Bue escribir credenciales una ve= &ero no estará cum&liendo con buenas &rácticas de se*uridad.

    es&uJs de confi*urar las cuentas ?a*a clic en el tab DCollationE

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    15/127

    -n Collation observe los mJtodos de ordenamiento Bue van a ser utili=ados tanto &ara SQL Server cómo &ara !nalsis

    Services es im&ortante Bue ten*a un cuenta si eisten re*ulaciones en su or*ani=ación acerca del ti&o de ordenamiento a

    utili=ar de no ser asA busBue Bue tanto las bases de datos cómo !nalsis Services ten*an modelos de ordenamiento

    similares &ara evitar &roblemas cuando estos dos com&onentes se conecten entre sA. a*a clic en

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    16/127

     !?ora tendrá Bue definir si va a utili=ar un modelo de autenticación indo@s o Mito si es&ecifica un modelo mito

    deberá escribir una contrasea &ara el usuario administrador ti&o SQL (ecuerde Bue el modo mito &ermite la utili=ación

    de inicios de sesión ti&o SQL Gusuarios Bue no ?acen &arte de indo@sH es utili=ada &ara dar acceso a SQL Server desde

    a&licaciones entre otras cosas. e todas maneras se recomienda &or ra=ones de se*uridad mientras sea &osible utili=ar 

    el modo de autenticación ti&o indo@s. !*re*ue tambiJn como administrador a cualBuier usuario Bue vaa a cum&lir con

    dic?a tarea &or e+em&lo el usuario Bue está e+ecutando la instalación G!dd current 6serH a*a clic en Data irectoriesE

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    17/127

     !?ora revise las ubicaciones fAsicas donde va a Buedar instalado SQL Server cada uno de sus com&onentes a*a clic en

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    18/127

     !*re*ue los usuarios Bue van a ser administradores de !nálisis Services &uede a*re*ar al usuario con el Bue está

    e+ecutando la instalación o a cualBuier otro usuario vaa a Data irectoriesE

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    19/127

    (evise la ubicación donde va a Buedar almacenada la información de !nalsis Services ?a*a clic en NO

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    20/127

    efina en BuJ modo va a instalar re&ortin* services &uede instalarlo en el modo nativo G&ara Bue &ueda usar re&ortin*

    services una ve= termine la instalación sin necesidad de S?areointH otro es el modo inte*rado con S?areoint GBue

    almacenara sus re&ortes en una librerAa de re&ortes de S?areointH o bien &uede instalar (e&ortin* Services &ero no

    confi*urarlo lo cual im&lica Bue lue*o deberAa reali=ar dic?a confi*uración Gesta o&ción se utili=arAa si &iensa reali=ar una

    confi*uración escalada de (e&ortin* ServicesH ara efectos de este e+em&lo seleccionamos el modo nativo. a*a clic en

    D

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    21/127

     !?ora seleccione las o&ciones &ara Bue se envAen re&ortes de errores de uso de caracterAsticas ?acia Microsoft ?a*a

    clic en D

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    22/127

    a*a clic en D

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    23/127

    (evise el resumen ?a*a clic en DInstallE

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    24/127

    La instalación está siendo reali=ada

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    25/127

    La instalación ?a sido com&letada

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    26/127

    Si desea ver un resumen de la instalación aBuA encuentra un linF ?acia dic?o re*istro de resumen a*a clic en DCloseE

    &ara salir la instalación ?a sido terminada.

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    27/127

    La instalación de todas las ediciones com&onentes de SQL Server es similar al e+em&lo Bue se mostró anteriormente

    recuerde Bue &uede instalar todos los com&onentes o solo al*unos de ellos en un eBui&o &or e+em&lo si se deseara

    instalar Knicamente los com&onentes cliente &ara desde allA conectarse a un servidor de SQL Server ubicado en un lu*ar 

    remoto bastarAa con se*uir el mismo &roceso de instalación en la &á*ina de selección de com&onentes seleccionar 

    Knicamente los com&onentes cliente de la misma manera &odrAa instalarse Knicamente la documentación Glibros en

    &antallaH &ara tener una buena fuente de información ca&acitación en cualBuier máBuina.

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    28/127

    Conoci!ientos #$sicos de SQL Server 

    -isten 3 ti&os de instrucciones &ara el len*ua+e en SQL.

    • Len*ua+e de definición de datos GLH Creación eliminación de ti&os de datos ob+etos.

    • C%E"TE  Crear b+eto

    • "LTE%  Modificar los datos creados

    • D%&'  -liminar el b+eto

    • Len*ua+e de control de datos GCLH Se basa en los derec?os Bue tiene el usuario sobre la base da datos

    GermisosH.

    • (%"NT  ar &ermisos a un usuario &ara efectuar determinadas instrucciones

    • DEN)  -liminar el &ermiso Bue se ?a concedido con el >(!

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    29/127

    Tios de datos.

    • Nu!ricos.

    • -nteros V int tinint smallint bi*int

    • ecimales V numeric decimal mone smallmone

    • Coma 5lotante V float real

    • Fec3as.

    • datetime V 0333 s

    • smalldatetime V 1 minuto

    • Caracteres.

    •  !nc?o fi+o c?ar nc?ar 

    •  !nc?o )ariable varc?ar nvarc?ar 

    • Teto e I!a4en.

    • :et

    • 6IH. Si Bueremos Bue no se re&ita el dato

    en la base de datos usamos este identificador 

    • 6niBueidentifier 

    &eradores de SQL.

    • Ló4icos.

     !

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    30/127

    Cada ve= Bue *eneramos una base de datos la información de esta se inclue dentro de la base de datos Master en la

    tabla Ssata/ases.

    Si al crear la base de datos no establecemos una serie de valores &ara confi*urarla toma como estos valores de la base de

    datos Model la cuál sirve de modelo &ara crear una base de datos &or defecto.

    6na base de datos está com&uesta de dos ti&os de arc?ivo

    1. !rc?ivos de datos -s donde están *uardados los datos.

    a. .M5

    b. .

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    31/127

    5ilename W Z(uta[ro@t? W orcenta+e P tamao de crecimientoH

    • rimar -sta &arte es donde se define confi*ura el arc?ivo M5

    • Lo* n -n esta &arte es donde se define confi*ura el arc?ivo L5

    • ro@t? Indica cuanto crecerá el arc?ivo M5 o L5 cuando lle*ue a su tamao máimo. -ste tamao lo

    &odemos fi+ar mediante &orcenta+e M/ o 4/. Si no establecemos esta o&ción cuando el arc?ivo alcance su tamaomáimo a no &odrá crecer mas

    C(-!:- !:!/!S- -+em&lo

    n rimar

    G5ilename W Z[-+em&loLo*.ldfZ

    Si=e W 3M/

    MaSi=e W $M/

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    32/127

    5ile>ro@t? W 1M/H

    -l &roceso C(-!:- !:!/!S- está asi*nando $.00 M/ en el disco Z-+em&loataZ.

    -l &roceso C(-!:- !:!/!S- está asi*nando 3.00 M/ en el disco Z-+em&loLo*Z.

    • S'9:EL'D5

    Muestra todas las bases de datos del servidor con su &ro&ietario tamao ?ora de creación etc.

    i*ita en el editor de consultas s&R?el&db te mostrará al*o &arecido a la si*uiente ima*en

    • S'9S'"CE,SED

    Muestra el es&acio usado de la base de datos Bue estamos usando actualmente

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    33/127

    -li+e la base de datos -+em&lo con el comando use en otra linea escribe eec s&Rs&aceused. !l e+ecutar estas

    instrucciones se mostrará al*o &arecido a la si*uiente ima*en.

    Creación 6 "d!inistración de #ases de datos - 2 de

    • (ruos de arc3ivos secundarios

    Son los formados &or arc?ivos rou&

    "lter Data#ase 5ase de datos

    "dd File(rou (ruodearc3ivosecundario

     !lter atabase -+em&lo

     !dd 5ile>rou& MuConsultados

    Comandos com&letados con Jito.

    2. Modificamos la base de datos &ara aadir un arc?ivo

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    34/127

    "lter Data#ase 5ase de datos

    "dd File

    ;

    Na!e < =No!#re>?

    Filena!e < =%uta@"rc3ivoAndf>?

    SiBe < Ta!ao en M5

    S'9:elFile

    Muestra información sobre arc?ivos

    • Modificar 6 aadir arc3ivos a 4ruos de arc3ivos secundarios

    3. Mediante la o&ción Modif 5ile de !lter atabase &odemos modificar un arc?ivo secundario. Sintais

    "lter Data#ase 5ase de datos Modif6 File ;na!e < =no!#re>? roiedades 6 valores a !odificar

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    35/127

    #. Con !dd 5ile &odemos aadir un nuevo arc?ivo

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    36/127

    %. odemos modificar el tamao de un arc?ivo secundario mediante S?rinF5ile.

    Sintais

    D5CC S3rinGFile ;No!#rearc3ivo? Hta!aoareducir? &cion

    &ciones

    • -m&t5ile Indica Bue el tamao del arc?ivo reducido &ase a otros arc?ivos secundarios del mismo *ru&o.

    • :runcatenl Indica Bue el tamao reducido de la base de datos &asa al sistema o&erativo. Si no &onemos

    nin*una o&ción esta es la o&ción &or defecto.

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    37/127

    • :runcatenl Indica Bue el tamao reducido de la base de datos &asa al sistema o&erativo. Si no &onemos

    nin*una o&ción esta es la o&ción &or defecto.

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    38/127

    2º) Mostrar si la base de datos está junto a las demás y el espacio usado de mi nuea base de datos.

    sp_elpdb

    s9saceused

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    39/127

    !º) Crear un "rupo de arc#ios en mi base de datos clientes $ue se llame Bajas.

    ñadir dos arc#ios a ese "rupo de arc#ios llamados &elacionnual y $ue ocupen 'MB.

    alter database Clientesadd le%ro-p !aas

    alter database Clientesadd le(name='/elacion0n-al#',lename='D:\/elacion0n-al#.NDF', size=M!)to le%ro-p !aas

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    40/127

    alter database Clientes

    add le(name='/elacion0n-al2',lename='D:\/elacion0n-al2.NDF',size=M!)to le%ro-p !aas

    4º) Mostrar las caracter(sticas de los arc#ios $ue acabamos de incluir y de su "rupo.

    1"ec sp_elple 3lename='/elacion0n-al#'

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    41/127

    Eec s9:elfile filena!e

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    42/127

    remo4e le /elacion0n-al2

    alter +atabase Clientesmodi,y *le -ame/&elacionnual1 sie/10Mb)

    3º) &educir el tamaño de la base de datos en un 2%.

    Dbcc srin5database(Clientes, 2)

    º) 5oler a aumentar el tamaño de la base de datos en ' MB más.

    alter Database Clientesmodi6y le (Name='Clientes_Data', size=7$)

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    43/127

    6º) 7oner el tamaño má8imo de la base de datos a 200 MB.

    alter Database Clientesmodi6y le (Name='Clientes_Data', ma"size=#2$)

    alter +atabase Clientesmodi,y *le -ame/Clientes9:o" ma8sie/30)

    alter +atabase Clientesmodi,y *le -ame/&elacionnual1 ma8sie/20)

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    44/127

    ;º) liminar el "rupo de Bajas de la base de datos junto con sus arc#ios. liminar tambi

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    45/127

    Creación de ti&os de datos tablas

    #. Creaci8n de tipos de datos denidos por el -s-ario:

    =e basan en tipos de datos de*nidos por el =>:. 7ara crear un tipo de dato se usa un procedimientoalmacenado del sistema.

    dministrador Corporatio /? li"es una @abla /? 7rocedimientos almacenados $ue empiecen por sp.

    7ara crear un nueo tipo de dato se usa sp_addtype:

    sp_addtype nombre,' tipo de dato, A:: D@ :: E ApropietarioE

    jemploFGC sp9addtype Ciudad narc#ar-1') ::

    Con esto borras el datoF

    GC sp_droptype Ciudad

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    46/127

    2. Creaci8n y eliminaci8n de -na tabla

    7ara crear una tabla se utilia la si"uiente sinta8is

    C/1091 90!*1 Nombre9abla(NombreCol-mna 9ipoDato N;** < N9 N;** >)

    l alor por de,ecto es ::

    jemploF

    create table productos-codi"o  arc#ar-1') not nulldescripcion arc#ar-'0) not nullprecio  money  nullstocH  int

    )

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    47/127

    7ara eliminarla una tabla se utilia la si"uiente sinta8is

    D/? 90!*1 Nombre9ablajemploF

    drop table productos

    7. 0%re%ar y @-itar col-mnas

    7ara a"re"ar una columna la sinta8is es la si"uienteF

    0*91/ 90!*1 Nombre9abla 0DD NombreCol-mna 9ipoDato N;**

    jemploF

    create table 7ais-codi"o c#ar-3) not null

    nombre arc#ar-4') not null)

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    48/127

    alter table ais add anio int null

    7ara $uitar una columna la sinta8is es la si"uienteF

    0*91/ 90!*1 Nombre9abla D/? C*;MN NombreCol-mna

    jemploF

    alter table 7ais drop column anio

    4. IeneraciJn de alores de columnas

    so de propiedad K+@K@L

    s un tipo de dato $ue "enera alores y los incrementa. n contador.=Jlo una columna con Kdentity el tipo de dato debe ser entero int numerico numeric o decimal estos dosltimos con escala cero.

    =inta8isF

    C&@ @B: @abla -Columna @ipo+ato K+@K@L-Ainicial incremento E) D@ ::)

    +ebe ser obli"atorio $ue sea D@ ::.

    Knicial e incremento son opcionales y por de,ecto comenarian en 11.

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    49/127

    jemploF

    create table KDKD-identidad int identity-11) not nullapellido narc#ar-10) null) 

    ;so 6-nci8n N1ABD y tipo de datos ;NB;1BD1N9BFB1/

    7ueden cambiarse sin oler a crear la tabla&e$uieren comprobaciJn de erroresComprueban datos e8istentes

    jemploF

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    50/127

    %estricciones de ta#las en una #ase de datos

    Default

    • Se a&lica &ara I

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    51/127

    jemploalter table 7roductoadd constraint COP9=tocH C#ecH-=tocH ? Q1)

    'ri!ar6 Ge6

    • Sólo una &or tabla

    • )alores eclusivos

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    52/127

    • ermite un valor nulo

    • ermite varias en una tabla

    • 5ormadas &or una o mas columnas

    • -i*ida con un Andice Knico

    Sintais &arcial

    ]Constraint nombre(estriccion ^ 6niBue ]Clustered _ non Clustered ^ GColumnas...H

    -+em&lo

    alter table roducto add constraint 6R

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    53/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    54/127

    alter table roducto

    add Constraint 5FRroRCat 5orei*n 4e GCate*oriaIH (eferences Cate*oria GCate*oriaIH

    n delete Cascade

    n u&date Cascade

    Con estas dos instrucciones al final de la restricción le esto diciendo Bue borre todos los &roductos de una cate*oria si

    dic?a cate*oria es eliminado de la tabla Cate*oria. Lo mismo sucederá al modificar.

    • Des3a#ilitacion de restricciones

    es?abilitación &ara la com&robación de los datos eistentes o !&licable a C?ecF 5orei*n 4e o 6tili=ar la o&ción it?

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    55/127

    alter table em&2

    @it?

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    56/127

    *alores redeter!inados 6 las re4las co!o o#1etosindeendientes

    :ener en cuenta

    " Se definen una ve=

    " ueden vincularse a una o mas columnas o a ti&os de datos definidos &or el usuario

    " :oda re*la asociada a la columna a los ti&os de datos valida el valor de un valor &redeterminado

    " CualBuier restricción C-C4 sobre la columna debe validar el valor de un valor &redeterminado

    "

    -9-C s&Rbindefault :elefonoRdefaultZCustomers.?oneZ

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    57/127

     !l desvincularlo de la tabla se invierten los valores

    -9-C s&Runbindefault ZCustomers.?oneZ :elefonoRdefault

    use nort?@ind

    -9-C s&R?el&constraint &roducts

    ara eliminar varios ob+etos de la base de datos con una sola sentencia

    ( -5!6L:

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    58/127

    -9-C s&Rbindrule 5uncionRruleZlantilla.5uncionZ

    ara desvincular la re*la de la tabla se invierten los valores

    -9-C s&Runbindrule Zlantilla.5uncionZ 5uncionRrule

    Si fuese un intervalo de valores se &odrAa ?acer asi

    use nort?@ind

    >

    C(-!:- (6L- re*ioncodeRrule

     !S re*ioncode YW1000 and re*ioncode XW100

    >

    -9-C s&Rbindrule re*ioncodeRruleZCustomers.(e*ionZ

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    59/127

    tambiJn

    use nort?@ind

    >

    C(-!:- (6L- re*ioncodeRrule !S re*ioncode liFe Z]0",^]0", ^] 0",^Z

    >

    -9-C s&Rbindrule re*ioncodeRruleZCustomers.(e*ionZ

    ara borrar la re*la se &one

    ( (6L-

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    60/127

     ! continuación el &rimero de los &rocedimientos muestra el teto Bue se ?a utili=ado &ara crear la re*la el se*undo

    &rocedimiento renombra el ob+eto se &uede utili=ar con cualBuier ti&o de ob+eto de la base de datos.

    -ec s&R?el&tet 5uncionR(ule

    -ec s&Rrename ficioRrule 5uncionR(e*la

    "dvertencia. al cambiar cualBuier &arte del nombre de un ob+eto &ueden de+ar de ser válidas secuencias de comandos

    &rocedimientos almacenados. -l ob+ect ?a cambiado su nombre &or Z5uncionR(e*laZ.

    Ta#la ara evaluar la inte4ridad de los datos

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    61/127

    -structuras de las tablas en SQL Server " 1 de 2

    1. Crear una nuea base de datos con un tamaño de 10 MB llamada scuela.

    create database scuelaon primary-name / scuela9+ata *lename / +FRscuela9+ata.md, sie / 'MB ma8sie / 10MB *le"roSt# / 2%)lo" on-

    name / scuela9:o" *lename / +FRscuela9:o".ld, sie / 'MB ma8sie / 10MB *le"roSt# / 2%)ID

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    62/127

    2. Crear tipos de datos $ue conten"as los datos más comunes para nuestra base de datos. -Mirar las basesde datos y cuales son sus campos más comunes). Comprobar si se #an introducido correctamente estosdatos mostrando solamente los @ipos de dato $ue #ayamos introducido.

    use scuela

    IDe8ec sp9addtype @oulonarc#ar-1')ot nulle8ec sp9addtype @ulonarc#ar-1')ull

    select T ,rom systypes S#ere name in-@oulo@ulo)

    !. Crear la tabla CD:IKD= con los si"uientes camposF

    Campos 9ipo de dato /estricci8n

    Cod9cole"io um

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    63/127

    #. Crear la tabla (5-S(-S con los si*uientes cam&os

    Campos 9ipo de dato /estricci8n

    Cod97ro,e @e8to Clae 7rincipal y no permite nulos.

    ombre @e8to o permite nulos.

    pellido1 @e8to

    pellido2 @e8to

    dad um

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    64/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    65/127

    cod9re"ion int identity-11) not null constraint 7P9&e"iones primary Hey re"iones @oulo)

    %. Crear la tabla !L6M

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    66/127

    . Crear una nuea relaciJn entre el campo Cod9&e"ion de la tabla &IKD= y Cod9&e"ion de la tablacole"ios.

    alter table cole"iosadd constraint NP9cole"ios,orei"n Hey-cod9re"ion)re,erences re"iones-cod9re"ion)

    8. Crear un *ráfico Bue muestre las relaciones Bue se ?an obtenido en la base de datos ?asta a?ora

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    67/127

    Estructuras de las ta#las en SQL Server - 2 de 2

    ;. ñadir el campo =e8o Nec#a de nacimiento y stado Ciil a la tabla 7ro,esores F

    lter @able 7ro,esoresadd =e8o narc#ar-3) null Nec#a9ac smalldatetime null

    Astado CiilE narc#ar-12) null

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    68/127

    10. liminar el campo dad de la tabla 7ro,esores F

    alter table 7ro,esoresdrop column dad

    11. ñadir el campo =e8o +irecciJn y stado Ciil a la tabla lumnos F

    lter @able lumnos

    add =e8o narc#ar-3) null +ireccion arc#ar-60) null Astado CiilE narc#ar-12) null

    12. Borrar la relaciJn e8istente entre la tabla pro,esores y Cole"ios F

    sp9#elpconstraint pro,esoressp9#elpconstraint cole"iosalter table pro,esores drop constraint ,H9pro,esores

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    69/127

    1!. Crear de nueo la relaciJn borrada en el ejercicio anterior $ue ten"a relaciJn en cascada y actualiaciJn F

    alter table pro,esores

    add constraint NP97ro,esores ,orei"n Hey-cod9cole"io)re,erences cole"ios-cod9cole"io) on update cascadeon delete cascade

    14. "re"ar un identi*cador nico en la tabla &e"iones F

    alter table re"iones add nico uni$ueidenti*er de,ault neSid-)

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    70/127

    1'. >ueremos rellenar los datos de las tablas creadas para ello amos a introducir a tres alumnos en loscole"ios. :os datos son los si"uientesF

    lumnosFMarta =errano :ope 7roinciaF Madrid :ocalidadF Madrid

     Waier Mor"ado 7alomo 7roinciaF licante :ocalidadF renales del sol

    Mi"uel @orres @ormo 7roinciaF Barcelona :ocalidadF :lobre"at&ellenar las tablas conenientemente con datos relacionales. jemploF &e"ionF Comunidad 5alenciana !datos como m(nimo en cada tabla.

    Q @B: &IKD=

    Knsert into &e"iones -&e"iones) alues-M+&K+)Knsert into &e"iones -&e"iones) alues-CDMK++ 5:CK)Knsert into &e"iones -&e"iones) alues-C@:X)

    os dará error por el tipo de dato introducido en el campo re"iones debemos cambiar el tipo de dato parapoder utiliar la tabla

    :@& @B: &IKD=

    :@& CD:M &IKD= 5&CO&-'0) ::

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    71/127

    #ora podemos insertar el re"istro $ue ,altabaF

    • :!/L! CL->IS

    ntes de insertar eri*ca el cJdi"o de la re"iJn. +ebe ser el $ue te "enero la tabla re"iones.

    insert into Cole"ios -nombrelocalidad proinciaaño9construccion coste9construccioncod9re"ion) alues-7+& 7D5+M+&K+M+&K+01V01V3'112;63!)insert into Cole"ios -nombrelocalidad proinciaaño9construccion coste9construccioncod9re"ion) alues-C&M:K@=:KC@:CO01V01V4;2;63!')insert into Cole"ios -nombrelocalidad proinciaaño9construccion coste9construccioncod9re"ion) alues-= 77B&C:DB&C:D01V01V3!2!4'33)

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    72/127

    S-L-C: I-I

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    73/127

    • :!/L! !L6M

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    74/127

    alter table alumnos alter column Localidad nvarc?arG$0H null

    insert into alumnos Gdni

    (ZZMi*uelZZ:orresZZ:ormoZZ1$P03P,$ZZLL/(->!:ZZ/!(C-L

    1%. -liminar un ti&o de dato Bue ?aamos usado en las tablas

    eec s&Rdro&t&e :

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    75/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    76/127

    %estricciones? valores or defecto 6 re4las en SQLServer 

    1. Crear una nueva base de datos llamada rueba las tablas -m& e&t. Crear la inte*ridad de los datos utili=ando

    re*las valores &or defecto entre otros de&endiendo del análisis Bue ?a*amos &reviamente.

    • Creo la base de datos

    create database rueba

    on &rimar

    G

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    77/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    78/127

    • oner (estricción rimar 4e en e&artamento

     !lter :able e&t

    add constraint 4Re&t rimar 4eGe&tRnoH

    • oner rimar 4e en -m&leados

     !lter :able -m&

    add constraint FR-m& rimar 4eG-m&RnoH

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    79/127

    • oner la 5orei*n 4e en -m&leados

     !lter :able -m&

    add constraint 54R-m& 5orei*n 4e Ge&tRnoH

    references e&t Ge&tRnoH

    on 6&date Cascade

    on elete Cascade

    • Creo una restricción C?ecF &ara el Salario

     !lter :able -m&

    add constraint C4RSalario C?ecF GSalario Y 0H

    • Creo una restricción C?ecF &ara la Comisión

     !lter :able -m&

    add constraint C4RComisión C?ecF GComision YW 0H

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    80/127

    • Creo una restricción C?ecF &ara la 5ec?a

     !lter :able -m&

    add constraint C4R5ec?a C?ecF G5ec?aRalt Y Z01P01P1,'0Z and 5ec?aRalt XW >etateGHH

    • Creo un )alor redeterminado &ara 5ec?a

    alter table -m&

    add constraint 5R5ec?a efault >etateGH for 5ec?aRalt

    • Creo un )alor redeterminado Comisión

     !lter :able -m&

    add constraint 5RComision efault 0 for Comision

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    81/127

    • Creo una restricción efault &ara la localidad en e&artamento

     !lter :able e&t

    add constraint 5RLoc efault Z-SC

    Create (ule irectorR(ule as irector inG'$%%'%,8''82'83,H

    >

    ""ara vincular re*la a la columna

    eec s&Rbindrule irectorR(ule Z-m&.irZ

    ""ara desvincular re*la a la columna

    eec s&Runbindrule Z-m&.irZ irectorR(ule

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    82/127

    2. Insertar los datos convenientemente &ara verificar la inte*ridad de nuestra base de datos

    • Inserto un de&artamento

    • Inserto un em&leado

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    83/127

    • Cambio el códi*o de director GirH a uno Bue eista en la re*la.

    • Cambio la fec?a de in*reso del em&leado G5ec?aRaltH a una Bue este entre el intervalo definido en la restricción

    C?ecF.

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    84/127

    -structura de /ase de atos os&ital " -+em&lo

    Saludos a todos los se*uidores de este tutorial.

    ara los temas e+em&los si*uientes vamos a necesitar esta base de datos llamada ?os&ital la cual nos &ro&orcionará el

    so&orte &ara nuestras consultas SQL.

    Si deseas la &uedes crear a manera de &racticas desde tu editor SQL o bien &uedes descar*arlo desde el linF Bue de+o al

    final de esta &ublicación o tambiJn desde el indice de esta serie de &ublicaciones.

    Sin mas &reámbulos les &resento la estructura de la base de datos os&ital. )amos a sacarle el máimo de &rovec?o.

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    85/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    86/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    87/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    88/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    89/127

    SC(I: SQL - L! /!S- - !:S SI:!L

    QQCreaciJn de la base de datos OospitalQQ= M=@&IDC&@ +@B= Oospital

    Dn 7rimary-ame / jemplo+ataNilename / +FROospital.md,=ie / 'MB Ma8=ie / 10MBNile"roSt# / 20%):o" on-M / jemplo:o"Nilename / +FROospital.ld,=ie / !MBMa8=ie / 'MBNileIroSt# / 1MB)ID= OospitalIDC&@ @B: +ept-+ept9oK@ D@ ::+ombre 5&CO&-'0) :::oc 5&CO&-'0) ::CD=@&K@ 7P9+ept 7&KM&L PL-+ept9o))IDC&@ @B: mp-mp9o K@ D@ ::pellido 5&CO&-'0) ::D*cio 5&CO&-'0) ::+ir K@ ::Nec#a9lt =M::+@@KM ::=alario M&KC-;2) ::Comision M&KC-;2) ::+ept9o K@ ::CD=@&K@ 7P9mp 7&KM&L PL-mp9o)

    CD=@&K@ NP9mp9+ept ND&KI PL -+ept9o) &N&C= +ept-+ept9o))IDC&@ @B: Oospital-Oospital9Cod K@ D@ ::ombre 5&CO&-'0) ::+ireccion 5&CO&-'0) ::

     @ele,ono 5&CO&-'0) ::um9Cama K@ ::CD=@&K@ 7P9Oospital 7&KM&L PL-Oospital9Cod))IDC&@ @B: +octor-+octor9o K@ D@ ::

    Oospital9Cod K@D@ ::pellido 5&CO&-'0) ::specialidad 5&CO&-'0) ::CD=@&K@ 7P9+octor 7&KM&L PL-+octor9o)CD=@&K@ NP9+octor9Oospital ND&KI PL -Oospital9Cod) &N&C= Oospital-Oospital9Cod))IDC&@ @B: =ala-=ala9Cod K@ D@ ::Oospital9Cod K@ D@ ::ombre 5&CO&-'0) ::

    http://sh.st/jj8crhttp://sh.st/jj8cr

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    90/127

    um9Cama K@ ::CD=@&K@ 7P9=ala 7&KM&L PL-=ala9CodOospital9Cod)CD=@&K@ NP9=ala9Oospital ND&KI PL -Oospital9Cod) &N&C= Oospital-Oospital9Cod))IDC&@ @B: 7lantilla-mpleado9o K@ D@ ::

    =ala9Cod K@ D@ ::Oospital9Cod K@D@ ::pellido 5&CO&-'0) ::Nuncion 5&CO&-'0) ::

     @ 5&CO&-1') ::=alario M&KC-;2) ::CD=@&K@ 7P97lantilla 7&KM&L PL-mpleado9o)CD=@&K@ NP97lantilla9=ala01 ND&KI PL -=ala9CodOospital9Cod) &N&C==ala-=ala9CodOospital9Cod))IDC&@ @B: n,ermo-Knscripcion K@ D@ ::pellido 5&CO&-'0) ::+ireccion 5&CO&-'0) ::Nec#a9ac 5&CO&-'0) ::= 5&CO&-2) ::== K@ ::)

    Insertar atos en SQL Server " -+em&lo os&ital

    Saludos a todos los se*uidores de este tutorial.

    -n la &ublicación anterior creamos la base de datos de e+em&lo llamada os&ital la cual

    nos servirá &ara las &róimas &ublicaciones Bue se reali=arán.

    /ien a?ora nos toca insertar datos en las tablas. La sintais SQL de inserción &ara datos

    fi+os o in*resados de forma manual la &odemos clasificar en 3 formas

    • I

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    91/127

    Ta#la DE'T

     Ta#la D&CT&%

     Ta#la EM'

     Ta#la ENFE%M&

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    92/127

     Ta#la :&S'IT"L

     Ta#la 'L"NTILL"

     Ta#la S"L"

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    93/127

    QQTTTKnsertar datos en las tablas de la Base de +atos de ejemplo llamada OD=7K@:TTTQQ@rataremos de mostrar las tres ,ormas de insertar datos *jos o $ue no proienen de nin"una otra tablaQQQQKnsertar datos en la table +eptK=&@ K@D +ept-+ept9o+ombre:oc) 5:=-10CD@BK:K++:CO)K=&@ K@D +ept-+ept9o+ombre:oc) 5:=-20K5=@KICK[M+&K+)K=&@ K@D +ept-+ept9o+ombre:oc) 5:=-!05@=B&C:D)K=&@ K@D +ept-+ept9o+ombre:oc) 5:=-407&D+CCK[=:MC)IDQQKnsertar datos en la tabla mpK=&@ K@D mp- mp9o pellido D*cio +ir Nec#a9lt =alario Comision +ept9o)5:=-!3;=CO\M7:+D;021V12V1;6010400020)-4;;&&DLD5++D&3;622V02V1;61206000!;000!0)-'21=:5++D&36;22V02V1;61132'003'000!0)-'33WKM\+K&C@D&6!;02V04V1;61!63'0020)-3'4M&@K5++D&3;626V0;V1;61162000162000!0)-3;6I&D+K&C@D&6!;01V0'V1;61!0'000!0)-62C&\D+K&C@D&6!;0;V03V1;61!16'00010)-66KD:K=@'33!0V0!V1;6!;0000020)-6!;&L7&=K+@01V11V1;613'0000010)-644@D5&5++D&3;606V0;V1;611;'0000!0)

    -63:D=DM7:+D660!V0'V1;614!000020)-;00WKMDM7:+D3;60!V12V1;6112!'000!0)-;02N&+\:K=@'330!V12V1;61!;0000020)-;!4MXD\M7:+D622!V03V1;6213;000010)-11;=&&+K&C@D&6!;1;V11V1;6!22'000!;00020)-!22I&CKM7:+D11;12V10V1;6212;000020)IDQQKnsertar datos en la tabla OospitalK=&@ K@D Oospital-Oospital9Codombre+ireccion@ele,ono um9Cama) 5:=-1;7roincialD +onell'0;34Q42'3'02)K=&@ K@D Oospital-Oospital9Codombre+ireccion@ele,ono um9Cama) 5:=-16Ieneraltoc#asVn';'Q!111;6)K=&@ K@D Oospital-Oospital9Codombre+ireccion@ele,ono um9Cama) 5:=-22:a 7aCastellana1000;2!Q'411412)K=&@ K@D Oospital-Oospital9Codombre+ireccion@ele,ono um9Cama) 5:=-4'=an CarlosCiudadniersitaria';Q1'0064')

    IDQQKnsertar datos en la tabla +octorK=&@ K@D +octor-Oospital9Cod+octor9opellidospecialidad) 5:=-22!63Cabea +.7si$uiatr(a)K=&@ K@D +octor-Oospital9Cod+octor9opellidospecialidad) 5:=-22!;6Best +.rolo"(a)K=&@ K@D +octor-Oospital9Cod+octor9opellidospecialidad) 5:=-1;4!':Jpe .Cardiolo"(a)K=&@ K@D +octor-Oospital9Cod+octor9opellidospecialidad) 5:=-224'!Ialo +.7ediatr(a)K=&@ K@D +octor-Oospital9Cod+octor9opellidospecialidad) 5:=-4''22dams C.eurolo"(a)K=&@ K@D +octor-Oospital9Cod+octor9opellidospecialidad) 5:=-16'6'Miller I.Iinecolo"(a)K=&@ K@D +octor-Oospital9Cod+octor9opellidospecialidad) 5:=-4'30C#uHi 7.7ediatr(a)K=&@ K@D +octor-Oospital9Cod+octor9opellidospecialidad) 5:=-16;62Cajal &.Cardiolo"(a)IDQQKnsertar datos en la tabla =ala

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    94/127

    K=&@ K@D =: 5:=-122&ecuperaciJn10)K=&@ K@D =: 5:=-14'&ecuperaciJn1')K=&@ K@D =: 5:=-222Maternidad!4)K=&@ K@D =: 5:=-24'Maternidad24)K=&@ K@D =: 5:=-!1;Cuidados Kntensios21)K=&@ K@D =: 5:=-!16Cuidados Kntensios10)K=&@ K@D =: 5:=-416Cardiolo"(a'!)K=&@ K@D =: 5:=-44'Cardiolo"(a'')

    K=&@ K@D =: 5:=-31;7si$uiátricos3)K=&@ K@D =: 5:=-3227si$uiátricos116)IDQQKnsertar datos en la tabla 7lantillaK=&@ K@D 7lantilla-Oospital9Cod=ala9Codmpleado9opellido Nuncion @ =alario)5:=-223100;Oi"ueras +.n,ermera@200'00)-4'41260mi"o &.Knterino221000)-1;3!103Oernánden,ermero@2'000)-1;3!'4+(a B.n,ermera@223200)-221303'&iera I.n,ermera132300)-1643!'Parplus ].Knterino@!!;00)-221!;Carlos &.n,ermera@211;00)-2236422Bocina I.n,ermeroM16!600)-4'16'23NranH O.n,ermera@2'2200)-222;;01ñe C.KnterinoM221000)IDQQKnsertar datos en la tabla n,ermoK=&@ K@D n,ermo-Knscripcionpellido+ireccionNec#a9ac===)5:=-10;;':a"u(a M.Ioya 2013QmayQ'3M260632422)-14024Nernánde M.&ecoletos '021QmayQ30N264;;14'2)-16004=errano 5.lcalá 122!QjunQ3N!21;00';)-!33'6+omin =.Mayor 101QeneQ42M1303'441)-!602eal &.Drense 1116QjunQ40N!6001021)-!;21Cerantes M.7erJn !62;Q,ebQ'2M4402;4!;0)-';03Miller B.:Jpe de Ooyos 213QsepQ4'N!11;3;044)-3!62&ui 7.$uerdo 10!23QdicQ60M100;!2'!)-3462!Nraiser .=oto !10QjulQ60N26'2013)-46!'Ben(te .r"entina0'QoctQ'M1'46113)

    Consultas de Selección en SQL Server " arte 1

    Bien es momento de utiliar la base de datos ^Oospital^ creada en publicaciones anteriores para realiar lasbásicas consultas de selecciJn $ue se presentan en toda aplicaciJn in,ormática.

    =i no tienes la base de datos Oospital te inito a oler al indice y descar"arla.

    manera de práctica realia las consultas en tu naliador de Consultas =>: para comprobar los resultados.

    &ecuerda $ue di"itando se a $uedando en la mente y as comprendiendo poco a poco.1. Mostrar todos los datos de los empleados de nuestra tabla emp.

    1 SELECT * FROM EMP

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    95/127

    2. Mostrar el apellido o*cio salario salario anual con las dos e8tras para a$uellos empleados con comisiJnmayor de 100000.

    1

    2

    !

    SELECT APELLIDO, OFICIO,

    SALARIO, SALARIO * 14 AS 'SALARIO ANUAL' FROM EMP

    WHERE COMISION > 100000

    !. Kd 2200000

    http://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    96/127

    4. Kd "000000

    '. Mostrar todos los datos de empleados ordenados por departamento y dentro de este por o*cio para teneruna isiJn jerár$uica.

    http://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    97/127

    1 SELECT * FROM EMP ORDER #$ DEPT%NO, OFICIO

    3. Mostrar todas las salas para el #ospital 4'.

    1 SELECT * FROM SALA WHERE HOSPITAL%COD & 4

    . Mostrar todos los en,ermos nacidos antes de 1;0.

    1 SELECT * FROM ENFERMO WHERE FECHA%NAC ( '1)00101'

    http://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-1.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    98/127

    Consultas de Selección en SQL Server " arte 2

    6. K"ual $ue el anterior para los nacidos antes de 1;0 ordenados por nmero de inscripciJn descendente

    1

    2

    SELECT * FROM ENFERMO WHERE CASTFECHA%NAC AS DATE- ( '01.01.1)0'

    ORDER #$ INSCRIPCION DESC

    ;. :istar todos los datos de la plantilla del #ospital del turno de mañana

    1 SELECT * FROM PLANTILLA WHERE T &'M'

    http://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    99/127

    10. Kdem del turno de noc#e.

    1 SELECT * FROM PLANTILLA WHERE T&'N'

    11. 5isualiar los empleados de la plantilla del turno de mañana $ue ten"an un salario entre 200000 y22'000.

    1 SELECT * FROM PLANTILLA WHERE SALARIO #ETWEEN 200000 AND 22000

    12. 5isualiar los empleados de la tabla emp $ue no se dieron de alta entre el 01V01V60 y el 12V12V62.

    1 SELECT * FROM EMP WHERE FECHA%ALT NOT #ETWEEN '01.01.1)/0' AND '"1.12.1)/2'

    http://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    100/127

    1!. Mostrar los nombres de los departamentos situados en Madrid o en Barcelona.

    1 SELECT DNOM#RE FROM DEPT WHERE LOC IN 'MADRID','#ARCELONA'-

    Consultas de Selección en SQL Server " arte 3

    14. Mostrar a$uellos empleados con ,ec#a de alta posterior al 1 de Wulio de 1;6'.

    1

    2

    SELECT * FROM EMP

    WHERE FECHA%ALT > '0101)/'

    1'. :o mismo $ue en el ejercicio 14 pero con salario entre 1'0000 y 400000.

    1 SELECT * FROM EMP

    http://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    101/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    102/127

    16. +e los empleados del ejercicio 1 $uitar a$uellos $ue superen los 200000 mensuales.

    1

    2

    !

    4

    SELECT * FROM EMP

    WHERE APELLIDO LIE ''

    AND SALARIO > 200000

    ORDER #$ DEPT%NO, FECHA%ALT ASC

    1;. Mostrar todos los empleados cuyo o*cio no sea analista.

    1

    2

    SELECT * FROM EMP

    WHERE OFICIO (> 'ANALISTA'

    http://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    103/127

    20. K"ual $ue el ejercicio 1; pero mostrándolos de ,orma $ue se aprecien las di,erencias de salario dentro decada o*cio.

    1

    2

    !

    SELECT * FROM EMP

    WHERE OFICIO (> 'ANALISTA'

    ORDER #$ OFICIO, SALARIO DESC

    http://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    104/127

    21. +el ejercicio 20 nos $uedamos solo con a$uellos cuyo nmero de empleado no este entre 300 y ;00.

    1

    2

    !

    4

    SELECT * FROM EMP

    WHERE OFICIO (> 'ANALISTA'

    AND EMP%NO NOT #ETWEEN 300 AND )00

    ORDER #$ OFICIO, SALARIO DESC

    Consultas de Selección en SQL Server " arte #

    http://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-3.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    105/127

    22. Mostrar los distintos o*cios de los empleados.

    1 SELECT DISTINCT OFICIO FROM EMP

    2!. Mostrar los distintos nombres de sala.

    1 SELECT DISTINCT NOM#RE FROM SALA

    24. Mostrar $ue personal o Knterino e8iste en cada sala de cada #ospital ordenado por #ospital y sala.

    1

    2

    !

    4

    SELECT HOSPITAL%COD, SALA%COD, APELLIDO, FUNCION

    FROM PLANTILLA

    WHERE FUNCION NOT IN 'INTERINO'-

    ORDER #$ HOSPITAL%COD, SALA%COD

    http://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-4.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-4.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-4.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-4.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-4.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-4.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    106/127

    2'. Wusti*car el resultado de la si"uiente consulta =:C@ 7::K+D +K=@KC@ +7@9D N&DM M7Kndicar $ue ocurre y modi*carla para $ue todo aya bien.

    1 SELECT DISTINCT APELLIDO,DEPT%NO FROM EMP

    23. =eleccionar los distintos alores del se8o $ue tienen los en,ermos.

    1

    2

    SELECT DISTINCT S AS SE5O

    FROM ENFERMO

    http://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-4.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-4.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-4.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-Seleccion-en-SQL-Server-Parte-4.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    107/127

    2. Kndicar los distintos turnos de la plantilla del #ospital ordenados por turno y por apellido.

    1

    2

    !

    SELECT DISTINCT T AS TURNO, APELLIDO

    FROM PLANTILLA

    ORDER #$ TURNO, APELLIDO

    26. =eleccionar las distintas especialidades $ue ejercen los m

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    108/127

    &erador LI4- " SQL Server 

    5eamos este interesante tema de ,rente al punto como dicen al"unos.

    :iHe utilia los si"uientes comodines para un determinado *n F

    % Cual$uier nmero de caracteres 9 7ara un carácter indiidualA E 7ara un conjunto de caracteres $ue est< dentro del corc#eteA E >ue el carácter indiidual $ue no est< dentro del corc#ete

    WM7:DF :KP _%een` Muestra todos los caracteres $ue acaben con eenWM7:DF :KP _%een%` Muestra todos los caracteres $ue conten"an een en ese ordenWM7:DF :KP _9en` Muestra todos los caracteres $ue conten"a tres letras y acaben en enWM7:DF :KP _ACP% E` Muestra todos los caracteres $ue empiecen por C o P WM7:DF :KP _A=Q5Ein"` ombre de 4 letras cuya primera letra estuiera entre = o 5 y acabe en in"

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    109/127

    WM7:DF :KP _MAcE%` @odos los $ue empiecen por M y se"unda letra no sea una c. o #ay limite decaracteres.

    #ora eamos todo esto en la práctica.1. =eleccionar todos los empleados cuyo apellido comience por MZ

    1 SELECT * FROM EMP WHERE APELLIDO LIE 'M'

    2. =eleccionar todos los empleados cuyo apellido termine con la letra \

    Z

    1 SELECT * FROM EMP WHERE APELLIDO LIE '6'

    !. =eleccionar todos los empleados $ue conten"an en su apellido &.

    Z

    1 SELECT * FROM EMP WHERE APELLIDO LIE '78'

    http://www.ingenieriasystems.com/2015/04/operador-like-sql-server.htmlhttp://www.ingenieriasystems.com/2015/04/operador-like-sql-server.htmlhttp://www.ingenieriasystems.com/2015/04/operador-like-sql-server.htmlhttp://www.ingenieriasystems.com/2015/04/operador-like-sql-server.htmlhttp://www.ingenieriasystems.com/2015/04/operador-like-sql-server.htmlhttp://www.ingenieriasystems.com/2015/04/operador-like-sql-server.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    110/127

    4. Mostrar todos los empleados cuyo nombre sea de 4 letras y su apellido termine con la letra a

    Z

    1 SELECT * FROM EMP WHERE APELLIDO LIE '%%%9'

    '. Mostrar todos los empleados cuyo apellido comience entre las letras y N.

    Z

    1 SELECT * FROM EMP WHERE APELLIDO LIE ':EF;'

    3. Mostrar todos los empleados cuyo apellido comience por la letra conten"a dentro de su apellido de laletra a la M y $ue terminen en D.

    Z

    1 SELECT * FROM EMP WHERE APELLIDO LIE 'A:9m;o'

    http://www.ingenieriasystems.com/2015/04/operador-like-sql-server.htmlhttp://www.ingenieriasystems.com/2015/04/operador-like-sql-server.htmlhttp://www.ingenieriasystems.com/2015/04/operador-like-sql-server.htmlhttp://www.ingenieriasystems.com/2015/04/operador-like-sql-server.htmlhttp://www.ingenieriasystems.com/2015/04/operador-like-sql-server.htmlhttp://www.ingenieriasystems.com/2015/04/operador-like-sql-server.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    111/127

    . Mostrar todos los empleados cuyo apellido comience por la letra M y la se"unda letra no sea una .

    Z

    1 SELECT * FROM EMP WHERE APELLIDO LIE 'M:

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    112/127

    10. Mostrar todos los $ue empiecen por la y cuya cuarta letra no est< comprendida entre I

    Z

    1 SELECT * FROM EMP WHERE APELLIDO LIE 'A%%:

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    113/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    114/127

    !. 5isualiar los salarios mayores para cada o*cio.

    1 SELECT OFICIO, MA5SALARIO- AS :SALARIO MK5IMO; FROM EMP ROUP #$ OFICIO

    4. 5isualiar el nmero de personas $ue realian cada o*cio en cada departamento.

    1

    2

    !

    4

    SELECT DEPT%NO AS :N DE DEPARTAMENTO;,

    COUNT*- AS :N DE PERSONAS;, OFICIO

    FROM EMP ROUP #$ DEPT%NO, OFICIO

    ORDER #$ 1

    '. Buscar a$uellos departamentos con cuatro o mas personas trabajando.

    1 SELECT DEPT%NO AS :N DE DEPARTAMENTO;

    http://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-1.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    115/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    116/127

    5unciones de a*re*ado " arte 2

    8. )isuali=ar de&artamentos oficios nKmero de &ersonas &ara aBuellos de&artamentosBue ten*an dos o más &ersonas

    traba+ando en el mismo oficio.

    1

    2

    SELECT DEPT%NO AS :N DE DEPARTAMENTO;,COUNT*- AS :N DE PERSONAS;,

    OFICIO FROM EMP ROUP #$ DEPT%NO,OFICIO HAIN COUNT*- > 1

    ;. Calcular el salario medio +i,erencia Má8imo y M(nimo de cada o*cio. Kndicando el o*cio y el nmero deempleados de cada o*cio.

    1

    2

    !

    SELECT OFICIO, COUNT*- AS :N DE EMPLEADOS;, MINSALARIO- AS :SALARIO MNIMO;

    , MA5SALARIO- AS :SALARIO MK5IMO;, MA5SALARIO- MINSALARIO- AS :DIFERENCIA;

    , ASALARIO- AS :MEDIA; FROM EMP ROUP #$ OFICIO

    http://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    117/127

    10. Calcular el alor medio de las camas $ue e8isten para cada nombre de sala. Kndicar el nombre de cadasala y el nmero de cada una de ellas.

    1

    2

    !

    SELECT SALA%COD AS :SALA;, NOM#RE

    , ANUM%CAMA- AS :MEDIA DE CAMAS;

    FROM SALA ROUP #$ NOM#RE, SALA%COD

    11. Calcular el salario medio de la plantilla de la sala 3 se"n la ,unciJn $ue realian. Kndicar la ,unciJn y elnmero de empleados.

    1

    2

    SELECT COUNT*- AS :N DE EMPLEADOS;, FUNCION, ASALARIO- AS :SALARIO MEDIO;

    FROM PLANTILLA ROUP #$ FUNCION, SALA%COD HAIN SALA%COD & 3

    12. eri"uar los ltimos empleados $ue se dieron de alta en la empresa en cada uno de los o*ciosordenados por la ,ec#a.

    1

    2

    !

    SELECT MA5FECHA%ALT- AS :FECHA;, OFICIO FROM EMP

    ROUP #$ OFICIO

    ORDER #$ 1

    http://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    118/127

    1!. Mostrar el nmero de #ombres y el nmero de mujeres $ue #ay entre los en,ermos.

    1 SELECT COUNT*- AS :NMERO;, S AS :SE5O; FROM ENFERMO ROUP #$ S

    14. Mostrar la suma total del salario $ue cobran los empleados de la plantilla para cada ,unciJn y turno.

    1

    2

    SELECT FUNCION, T AS :TURNO;, SUMSALARIO- AS :SUMA DE SALARIOS;

    FROM PLANTILLA ROUP #$ FUNCION, T

    1'. Calcular el nmero de salas $ue e8isten en cada #ospital.

    http://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    119/127

    1

    2

    SELECT COUNT*- AS :N SALAS;, HOSPITAL%COD FROM SALA

    ROUP #$ HOSPITAL%COD

    13. Mostrar el nmero de en,ermeras $ue e8istan por cada sala.

    12!4

    SELECT COUNT*- AS :N PERSONAS;, SALA%COD, FUNCION FROM PLANTILLAWHERE FUNCION&'ENFERMERA'ROUP #$ SALA%COD, FUNCIONORDER #$ 1

    Consultas de combinación en SQL Server " arte 1

     WDK

    =e usa para combinar resultados entre arias tablas. Microso,t recomienda usar Woin ya $ue consume menosrecursos.7ara er como manejamos este tipo de consultas.

    Consultas KnternasCombina las tablas comparando los alores comunes de los campos indicados mediante combinacionescruadas.

    =inta8isF

    =elect  @abla7rincipal.Campo @ablaconla$uecombinar.CampoNrom  @abla7rincipalKnner Woin V Null Woin  @ablaconla$uecombinarDnCondiciJn para combinar los campos

    http://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/funciones-de-agregado-parte-2.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    120/127

    Q Knner WoinF Kndica $ue combine los campos con resultados comunesQ Null WoinF Kndica $ue combine todos los campos aun$ue los resultados sean di,erentes.

    jemplos F

    +euela todos los mpleados $ue ten"an asociado un departamento.

    12!4'

    SELECT APELLIDO,OFICIO,DNOM#REFROM EMPINNER JOIN DEPTON EMPDEPT%NO&DEPTDEPT%NOORDER #$ DEPTDNOM#RE

    :a combinaciJn Null Woin muestra las coincidencias de la tabla +ept con mp más los alores $ue nocoincidan como el departamento 7roducciJn $ue no tiene empleados.

    12!4'

    SELECT APELLIDO,OFICIO,DNOM#REFROM EMPFULL JOIN DEPTON EMPDEPT%NO&DEPTDEPT%NOORDER #$ DEPTDNOM#RE

    http://www.ingenieriasystems.com/2015/04/Consultas-de-conbinacion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-conbinacion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-conbinacion-en-SQL-Server-Parte-1.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-conbinacion-en-SQL-Server-Parte-1.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    121/127

    =e podr(a decir $ue es como la suma de utiliar le,t join y ri"#t join.

    Consultas de combinación en SQL Server " arte 2

    Consultas 8ternasl i"ual $ue las consultas de combinaciJn internas combina los alores comunes de los campos indicados yademás de la tabla $ue $ueramos deuele tambi

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    122/127

    =i e8istiera al"n empleado $ue no ten"a asi"nado un departamento la consulta traer(a los datos delempleado pero el nombre del departamento tendr(a el alor null por$ue no tendr(a nin"n departamentoasociado y en la consulta le estamos diciendo $ue seleccione los empleados aun$ue no ten"andepartamento asociado ponemos como principal la tabla de la i$uierda -M7).

    jemplo 2F

    12!4'

    SELECT APELLIDO,OFICIO,DNOM#REFROM EMPRIHT OUTER JOIN DEPTON EMPDEPT%NO&DEPTDEPT%NOORDER #$ DEPTDNOM#RE

    n esta consulta el departamento de producciJn tiene alores null por$ue le #emos dic#o $ue seleccione  latabla de la dereca como principal -dept) con lo cual selecciona todos los campos de la tabladepartamentos con coincidencias con emp o sin ellas.

    http://www.ingenieriasystems.com/2015/04/Consultas-de-combinacion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-combinacion-en-SQL-Server-Parte-2.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    123/127

    jemplo !F

    12!

    SELECT APELLIDO,OFICIO,DNOM#REFROM EMPCROSS JOIN DEPT

    &ealia un producto cartesiano combinando todos los empleados con todos los departamentos.

    http://www.ingenieriasystems.com/2015/04/Consultas-de-combinacion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-combinacion-en-SQL-Server-Parte-2.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    124/127

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    125/127

    Combinaciones con mas de dos tablas

     La #emos isto como combinar 2 tablas con inner join el si"uiente ejemplo muestra como combinar las !tablas $ue tenemos en la base de datos. 7odremos combinar tantas tablas como $ueramos usando inner joino ,ull join.

    12!4'36;

    SELECT PAPELLIDO AS :APELLIDO;,SNOM#RE AS :SALA;,HNOM#RE AS :HOSPITAL;,SNUM%CAMA AS :N DE CAMAS;FROM PLANTILLA P INNER JOIN SALA AS SON PHOSPITAL%COD & SHOSPITAL%CODAND PSALA%COD & SSALA%CODINNER JOIN HOSPITAL AS HON HHOSPITAL%COD & PHOSPITAL%COD

    http://www.ingenieriasystems.com/2015/04/Consultas-de-combinacion-en-SQL-Server-Parte-2.htmlhttp://www.ingenieriasystems.com/2015/04/Consultas-de-combinacion-en-SQL-Server-Parte-2.html

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    126/127

    7odremos usar tantos inner join como $ueramos en nuestras consultas pero #abrá $ue tener cuidado a la#ora de realiar las combinaciones para $ue no sal"an productos cartesianos en la consulta.

    sta consulta deuele el nombre del empleado el nombre de la sala donde trabaja el nombre del #ospital yel nmero de camas.

    Combinar los 4alores de -na tabla sobre s misma

    7ara ello crearemos dos copias de la misma tabla poni

  • 8/19/2019 Manual de Microsoft SQL Server-TRANSACT SQL

    127/127