Upload
anonymous-c0sj9cr
View
291
Download
1
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