Otros operadores relacionales (is null

)
Hemos aprendido los operadores relacionales "=" (igual), "<>" (distinto), ">" (mayor), "<" (menor), ">=" (mayor o igual) y "<=" (menor o igual). Dijimos que no eran los únicos. E isten otro operador relacional "is null". !e emplea el operador "is null" para recuperar los registros en los cuales est" almacenado el #alor "null" en un campo espec$%ico& select *from libros where editorial is null; 'ara o(tener los registros que no contiene "null", se puede emplear "is not null", esto mostrar) los registros con #alores conocidos. !iempre que sea posi(le, emplee condiciones de (úsqueda positi#as ("is null"), e#ite las negati#as ("is not null") porque con ellas se e#alúan todos los registros y esto *ace m)s lenta la recuperaci+n de los datos. Primer problema: Trabajamos con la tabla "peliculas" de un video club que alquila películas en video. 1- Elimine la tabla, si existe; if object_id('peliculas') is not null drop table peliculas; 2- Créela con la siguiente estructura: create table peliculas( codigo int identity titulo varc!ar("#) not null actor varc!ar($#) duracion tinyint primary %ey (codigo) ); 3- Ingrese algunos registros& insert into peliculas values(''ision imposible' 'Tom (ruise' )$#); insert into peliculas values('*arry +otter y la piedra filosofal' ',aniel -.' null); insert into peliculas values('*arry +otter y la camara secreta' ',aniel -.' ).#); insert into peliculas values(''ision imposible $' 'Tom (ruise' )$#); insert into peliculas values(''ujer bonita' null )$#); insert into peliculas values('Tootsie' ',. *offman' .#); insert into peliculas (titulo) values('/n oso rojo'); 4- Recupere las películas cu o actor sea nulo !2 registros" #- Cambie la $uraci%n a &, $e las películas 'ue tengan $uraci%n igual a (null( !2 registros" )- *orre to$as las películas $on$e el actor sea (null( cu a $uraci%n sea & !1 registro"

'odemos usar "(et1een" y as$ simpli%icar la consulta& select *from libros where precio between 20 and 40. se recuperan los registros que est)n %uera del inter#alo especi%icado. . -o tiene en cuenta los #alores "null". > (mayor). is null.// o no). tra(ajan con inter#alos de #alores. los menores a 98 y mayores a 28& select *from libros where precio not between 20 and 35. usamos 2 condiciones unidas por el operador l+gico "and"& select *from libros where precio>=20 and precio<=40. recuperamos los li(ros cuyo precio -0 se encuentre entre 23 y 78. para recuperar de la ta(la "li(ros" los li(ros con precio mayor o igual a 23 y menor o igual a 43. se puede usar el operador "(et1een" para reducir las condiciones "1*ere".Otros operadores relacionales (between) Hemos #isto los operadores relacionales& = (igual). <= (menor o igual).is not null (si un #alor es -.Elimine la tabla (+isitas(. "(et1een" signi%ica "entre". si existe: if object_id('visitas') is not null drop table visitas. Hasta a*ora. !i agregamos el operador "not" antes de "(et1een" el resultado se in#ierte. >= (mayor o igual). Siempre que sea posible. 2. Este operador se puede emplear con tipos de datos num"ricos y money (en tales casos incluyen los #alores m$nimo y m) imo) y tipos de datos %ec*a y *ora (incluye s+lo el #alor m$nimo). evite las negativas ("not between") porque hace más lenta la recuperaci n de los datos! Entonces.Créela con la siguiente estructura: create table visitas ( numero int identity nombre varc!ar(4#) default '5nonimo' mail varc!ar(6#) pais varc!ar ($#) fec!ay!ora datetime primary %ey(numero) ). es decir. Primer problema: 0n una p1gina 2eb se guardan los siguientes datos de las visitas& n3mero de visita nombre mail pais fec!ay!ora de la visita. emplee condiciones de búsqueda positivas ("between"). 'or ejemplo. 6ra(aja con inter#alo de #alores. < (menor). 1. 5#eriguamos si el #alor de un campo dado (precio) est) entre los #alores m$nimo y m) imo especi%icados (23 y 43 respecti#amente). <> (distinto). 0tro operador relacional es "(et1een". es decir.

Recupere las +isitas cu o n4mero se encuentra entre 2 0ote 'ue inclu e los +alores límites3 # !4 registros" .com' ''e?ico' '$##:.#.)#.com' '5rgentina' '$##:.)$ #@&)6')..)# )#&)#'). 'ue los +alores null no se inclu en3 #.#.)) )6&"6'). insert into visitas (nombre mail pais fec!ay!ora) values ('>abiola 'artine8' ''artine8>abiola9!otmail. insert into visitas (nombre mail pais fec!ay!ora) values ('=uancito' '=uan=ose+ere89gmail.)6 ):&$6').eleccione los usuarios 'ue +isitaron la p-gina entre el . . insert into visitas (nombre mail pais fec!ay!ora) values ('>abiola 'artine8' ''artine8>abiola9!otmail..3.. insert into visitas (nombre mail pais) values ('>ederico)' 'federicogarcia9?a?amail.)$ ):&$#')..com' '5rgentina' '$##:.com' '5rgentina' '$##:.)#.2&&)-1&-11. insert into visitas (nombre mail pais fec!ay!ora) values ('=uancito' '=uan=ose+ere89!otmail.)$ $#&"6').)# $)&4#'). 4.com' '5rgentina' '$##:. !# registros"0ote 'ue inclu e los $e 1ec2a ma or o igual al +alor mínimo menores al +alor m-ximo. insert into visitas (nombre mail pais fec!ay!ora) values ('=uancito' '=uan=ose+ere89!otmail.com' ''e?ico' '$##:.#. insert into visitas (nombre mail pais fec!ay!ora) values ('<ustavo <on8ale8' '<ustavo<<on8ale89gotmail.)#.com' '(!ile' '$##:.Ingrese algunos registros: insert into visitas (nombre mail pais fec!ay!ora) values ('5na 'aria 7ope8' '5na'aria9!otmail.)#.2&&)-&/-12.com' '5rgentina').

6am(i"n podemos usar "in" anteponiendo "not"& select *from libros where autor not in #'Bor es'$'!aen"a'%. Hasta a*ora.#)'). o .Elimine la tabla.#4. us)(amos 2 condiciones& select *from libros where autor='Bor es' or autor='!aen"a'.#)'). Primer problema: Trabaje con la tabla llamada "medicamentos" de una farmacia. En la siguiente sentencia usamos "in" para a#eriguar si el #alor del campo autor est) incluido en la lista de #alores especi%icada (en este caso. para recuperar los li(ros cuyo autor sea . recuperamos los #alores que no se encuentran (contradicen) con la lista de #alores. in#ertimos el resultado.)# 4 '$##:.'aen:a. us)(amos& select *from libros where autor<>'Bor es' and autor<>'!aen"a'. 2.Cree la tabla con la siguiente estructura: create table medicamentos( codigo int identity nombre varc!ar($#) laboratorio varc!ar($#) precio decimal(: $) cantidad tinyint fec!avencimiento datetime not null primary %ey(codigo) ). insert into medicamentos .'aen:a. es decir.<orges. e#ite las negati#as ("not in") porque con ellas se e#alúan todos los registros y esto *ace m)s lenta la recuperaci+n de los datos.<orges. insert into medicamentos values('Buscapina' '-oc!e' ".Otros operadores relacionales (in) !e utili:a "in" para a#eriguar si el #alor de un campo est) incluido en una lista de #alores especi%icada.#$. 2 cadenas). /os #alores "null" no se consideran. 3. emplee condiciones de (úsqueda positi#as ("in"). 'odemos usar "in" y simpli%icar la consulta& select *from libros where autor in#'Bor es'$'!aen"a'%. 'ara recuperar los li(ros cuyo autor no sea . >ecuerde& siempre que sea posi(le.$ ) '$##6. ni . 1. Empleando "in" a#eriguamos si el #alor del campo est) incluido en la lista de #alores especi%icada= con "not" antecediendo la condici+n. si existe: if object_id('medicamentos') is not null drop table medicamentos.Ingrese algunos registros: insert into medicamentos values('Aertal' '-oc!e' 6.

# $# '$##@.Recupere los nombres precios $e los me$icamentos cu o laboratorio sea (*a er( o (*ago( emplean$o el opera$or (in( !4 registros" #.#)').values('5mo?idal 6##' 'Bayer' )6.#6...#)').#)').eleccione los reme$ios cu a canti$a$ se encuentre entre 1 opera$or (bet5een( luego el opera$or (in( !2 registros": # emplean$o el .)#. insert into medicamentos values('5mo?idal jarabe' 'Bayer' 6. insert into medicamentos values('+aracetamol 6##' 'Bago' ).#$. 4.)# )6# '$##.#)').:# )## '$##C.)# $6# '$#)#.)$. insert into medicamentos values('Bayaspirina' 'Bayer' $..