0% encontró este documento útil (0 votos)
4 vistas76 páginas

Consultas SQL Básicas en Microsoft SQL Server

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas76 páginas

Consultas SQL Básicas en Microsoft SQL Server

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Consultas Básicas SQL

Primera parte

1
MicrosoftSQLtServer es un
sistema para la gestin de bases de
datos producido por Microsof
basado en el modelo relacional.

2
Asegurarnos disponer de virtualización

Buscamos configuración

3
4
Reiniciar y actualizar Intel Virtual
Tecnology a Enable en la BIOS

5
Trabajando con Máquina Virtual Linux con SQLServer

6
Añadimos la máquina virtual

7
8
Si nos da error también podemos añadir una máquina nueva y
colocar el disco duro de la máquina suministrada.

9
10
Y darle a crear

11
12
La configuración de red debe estar en adaptador sólo-anfitrión.

13
Si se queda en network interfaces es que tenemos mal elegida la tarjeta de
red en la configuración y hay que corregirlo.

Hasta que arranque

14
Usuario: alumnado
Password: 123456

Para ver la IP del equipo (sudo ifconfig)

15
Será la que corresponda en cada caso...

shutdown now servirá para apagar la máquina normalmente

16
Ejecutaremos en la máquina externa el Management
Studio. Para lo que la buscaremos...

17
Colocaremos en Server name la IP obtenida antes.
Activaremos la SQL Server Autentication.
Login: sa
Password: @Contraseña1

18
19
Una vez se abra el programa
tendremos disponible
múltples opciones de
confguraciin y acceso al
SGBD. Para efectuar una
consulta haremos clic en New
query

20
Se abrirá una página en blanco donde podremos escribir las
sentencias SQL

Para ejecutarla haremos clic en el botin Ejecutar, nos dará los


resultados en las ventanas de debajo.
También se puede seleccionar primero y ejecutará lo
seleccionado. 21
22
CREARtUNAtBASEtDEtDATOS

23
Una basetdetdatos es un conjunto de
datos pertenecientes a un mismo contexto
y almacenados sistemátcamente para su
posterior uso.

Una Base de datos dentro de SQL


Server es una estructura organizada
que permite almacenar informaciones
(tablas) identfcadas por un nombre y
otras estructuras y programas que
faciliten el acceso a los datos.

24
Crear la Base de
datos:

create database pruebasql2013;


go

25
Para asegurarnos que las operaciones sobre tablas
se realicen en esa Base de datos tendríamos que
indicar siempre la base de datos en la que vamos a
trabajar añadiendo en las sentencias:

26
27
CREARtUNAtTABLA

28
Una tabla es la estructura
dentro de una base de
datos donde podemos
almacenar informaciin
correspondiente a algo,
cuya estructura se
mantene igual.
Tendremos que para cada
elemento del que
vayamos a almacenar
datos, los elementos serán
siempre los mismos.

29
Cuando se crea una tabla debemos indicar
su nombre y defnir al menos un campo
con su tpo de dato.

El formato básico de creaciin de tablas será:


create table NOMBRE_DE_LA_TABLA
(
NOMBRE_CAMPO_1 TIPO_CAMPO_1 ,
NOMBRE_CAMPO_2 TIPO_CAMPO_2 ,
AÑADIREMOS TANTOS CAMPOS COMO NECESITEMOS
NOMBRE_CAMPO_N TIPO_CAMPO_N
);

30
Creamos la base de datos facturasbasicas la primera vez.

create database facturasbasicas;


go

La consideramos la base de datos por defecto

use facturasbasicas;
go

31
Creamos la tabla FAC_T_Artculo, donde
almacenaremos los datos de los artculos
de nuestra empresa

create table FAC_T_Articulo


(
CodArticulo integer,
NombreArticulo varchar(50),
PrecioActual numeric(10,2)
);
go

32
Creamos la tabla FAC_T_Cliente, donde
almacenaremos los datos de los clientes de
nuestra empresa

create table FAC_T_Cliente


(
CodCliente integer,
NombreCliente varchar(60),
DatosCliente varchar(60),
FechaAlta datetime,
FechaNacimiento datetime
);
go

33
Ver estructura de una tabla: sp_columns
nombre_de_tabla

34
Ejercicios:t
(lastrespuestastestá[Link])
Crear la base de datos MoviesBasicas en el caso en que no exista.

En esa Base de Datos crear una tabla denominada Peliculas con la estructura
siguiente:
Id entero
Titulo cadena variable de 100 caracteres
Director cadena variable de 100 caracteres
Agno entero
FechaCompra fechahora
precio numérico con 6 dígitos, dos de ellos decimales

En la misma Base de Datos crear otra tabla denominada Socios con la estructura
siguiente:
NIFNIE cadena fja de longitud 9
Apellidos cadena variable de 50 caracteres
Nombre cadena variable de 100 caracteres
Direccion cadena variable de 100 caracteres
Telefono cadena fja de longitud 9
FechaDeAlta fechahora 35
ELIMINARtTABLA

36
Para eliminar una tabla usamos "drop table" junto al
nombre de la tabla a eliminar:

drop table FAC_T_Articulo;

Lasttablasteliminadastdesaparecen,tset
pierdetsutestructuratyttodostlostdatost
quettenetalmacenados

Si intentamos eliminar una tabla que no existe, aparece


un mensaje de error indicando tal situaciin y la sentencia
no se ejecuta. Con esto lo evitamos:
if object_id('FAC_T_Articulo') is not null
drop table FAC_T_Articulo;
go
37
Hay que tener en cuenta que este NO es el
procedimiento habitual, ya que las tablas
usualmente no se borran nunca, ya que
perderíamos la informaciin que
contienen. En este caso lo haremos para
asegurarnos unos resultados en nuestras
pruebas de aprendizaje.

38
Para ver las tablas de trabajo que hay en la base de
datos haremos:
sp_tables @table_owner='dbo';

39
Ejercicios:

En la Base de Datos facturasbasicas crear las tablas


FAC_T_Cliente y FAC_T_Artculo borrándolas previamente
en caso en que existan.
Verifcar qué tablas tenemos y cuál es su estructura.

40
AÑADIRtINFORMACIÓNtAtUNAt
TABLA

41
Añadir informaciin a una tabla

Hay varias formas de añadir registros/flas en una tabla.

Añadiendo la informaciin de un registro para todos los campos/atributos de la


tabla y en el orden en que se defnieron.

inserttintotnombre_de_la_tablatt
valuest(valorcampo1,tvalorcampo2,t…,tvalorcampoN);

También dando el conjunto de campos a los que le daremos valores.

inserttintotnombre_de_la_tablatt
(nombrecampo1,tnombrecampo2,t…t,tnombrecampoN)
valuest(valorcampo1,tvalorcampo2,t…,tvalorcampoN);

42
Valores de cadenas de caracteres y de fechas entre comillas
simples.

Siempre que grabemos un campo fechahora tendremos que


determinar el formato con el que lo escribiremos.

Esto se hace en SQLServer mediante:

settdateformattdmy;

Representando en este caso que primero colocaremos el día,


después el mes y fnalizaremos con el año (day/month/year).

Se pueden elegir otros formatos, como por ejemplo ymd, mdy,


43
insert FAC_T_Cliente
(CodCliente,NombreCliente,DatosCliente,FechaAlta,FechaNacimiento )
values ( 1,'Antonio','C/uno nº 3','01/03/2012','15/04/1970');

insert FAC_T_Cliente
(CodCliente,NombreCliente,DatosCliente,FechaAlta,FechaNacimiento )
values ( 2,'Juan','C/la hornera nº 7' ,'22/05/2012','29/06/1982' );

insert FAC_T_Cliente
values ( 3,'María','C/el pino nº 7','22/05/2010','15/06/1960');

44
Ejercicios:
En la tabla Peliculas de la base de datos MoviesBasicas.

Insertar las siguientes informaciones:


1, 'Rashomon','Akira Kurosawa',1951,'01/01/2012',20
2, 'Forrest Gump','Robert Zemeckis',1994,'01/02/2012',10
3, 'La Fiera de mi Niña','Howard HawksI',1938,'01/03/2012',4

Insertar en un registro en los campos


Id, Agno,Titulo,Director

los valores

33, 1956,'Moby Dick','John Huston'

Ver el contenido de la tabla.

45
RECUPERARtLAtINFORMACIÓNt
ALMACENADA

46
Recuperar la informaciin
almacenada

select lista de campos separados por comas from NOMBRETABLA;

Podemos usar un asterisco (*) en la lista de campos lo que indica


que se seleccionan todos los campos de la tabla, aunque esto
hace que la consulta sea menos eficiente.

Quedaría:
select * from NOMBRETABLA;

Pero esta forma es muy poco eficiente.


Hace que el SGBD tenga que enviar la estructura de la tabla
cada vez que se ejecuta.
Por tanto NO se admitirá como válida.

47
Usando el archivo que genera la Base de Datos facturasbasicas, creando y
cargando con datos las tablas FAC_T_Artculo y FAC_T_Cliente

Mostrar todos los datos de la tabla FAC_T_Cliente:

select CodCliente,NombreCliente,DatosCliente,FechaAlta,FechaNacimiento
from FAC_T_Cliente;

Sería equivalente a select * from FAC_T_Cliente;, pero esta últma manera es


menos efciente.

Mostrar el NombreArtculo y PrecioActual de la tabla FAC_T_Artculo:

select NombreArtculo,PrecioActual from FAC_T_Artculo;

48
Ejercicio:

Usar el archivo que genera la Base de Datos MoviesBasicas, creando y cargando


con datos las tablas Peliculas y Socios

Mostrar los datos de la tabla Peliculas

Mostrar el Título y Director de las películas.

Mostrar Apellidos y nombre de todos los Socios.

49
RECUPERARtLAtINFORMACIÓNt
ALMACENADAtDEtALGUNOSt
REGISTROS
50
Recuperar la informaciin
almacenada de algunos
registros
select NOMBRECAMPO1, ..., NOMBRECAMPOn
from NOMBRETABLA
where CONDICION;

Mostrará los campos indicados de las flas que cumplan


la condiciin especifcada.

51
Mostrar los datos de los artculos con precio igual a 12:

select CodArtculo,NombreArtculo,PrecioActual
from FAC_T_Artculo
where PrecioActual=12;
Mostrar los datos de los Clientes con Fecha de alta 23/01/2010:

set dateformat dmy;


select
CodCliente,NombreCliente,DatosCliente,FechaAlta,FechaNacimiento
from FAC_T_Cliente
where FechaAlta='23/01/2010';

52
Ejercicio:

Usar el archivo que genera la Base de Datos MoviesBasicas, creando y


cargando con datos las tablas Peliculas y Socios

Mostrar todos los datos de la tabla Peliculas del director Francis Ford
Coppola.

Mostrar Apellidos y Nombre de los Socios con nombre Juan.

Mostrar Título y Director de las películas de año 1960.

53
OPERADOREStRELACIONALES

54
Operadorestrelacionales
Los operadores son símbolos que
permiten realizar operaciones
matemáticas, concatenar cadenas,
hacer comparaciones.
SQL Server tiene 4 tipos de
operadores:
relacionales (o de comparaciin)
aritméticos
Los operadores relacionales (o
de concatenaciin
de comparaciin) nos permiten ligicos.
comparar dos expresiones, que
pueden ser variables, valores de
campos, etc.

55
Los operadores relacionales son los siguientes:
= igual
<> ó != distinto
> mayor
< menor
>= mayor o igual
<= menor o igual

56
Mostrar los datos de los artculos con precio mayor
que12:
select CodArtculo,NombreArtculo,PrecioActual
from FAC_T_Artculo
where PrecioActual>12;
Mostrar los datos de los Clientes con Fecha de alta anterior a 23/01/2010:

set dateformat dmy;


select
CodCliente,NombreCliente,DatosCliente,FechaAlta,FechaNacimiento
from FAC_T_Cliente
where FechaAlta<'23/01/2010';

57
Mostrar los datos de los artculos con precio distnto de
12:
select CodArtculo,NombreArtculo,PrecioActual
from FAC_T_Artculo
where PrecioActual<>12;
Mostrar los datos de los Clientes con Fecha de alta 23/01/2010 o
posterior:
set dateformat dmy;
select
CodCliente,NombreCliente,DatosCliente,FechaAlta,FechaNacimiento
from FAC_T_Cliente
where FechaAlta>='23/01/2010';

58
Ejercicio

Usar el archivo que genera la Base de Datos MoviesBasicas, creando y


cargando con datos las tablas Peliculas y Socios

Mostrar todos los datos de la tabla Peliculas que no sean del director
Francis Ford Coppola.

Mostrar Título y Director de las películas del año 1960 o posteriores.

59
BORRARtREGISTROS

60
Borrartregistros

El comando para eliminar registros de una tabla es el delete.


Eliminar registros es borrar de manera irreversible informaciin de la tabla.

Se hará siempre con precauciin.

El formato básico es:


deletetfromtNOMBREDETABLA;

Con este comando se eliminarán TODOS los registros de la tabla.


TODOS
Normalmente especifcaremos la condiciin de fltrado de registros a borrar:
deletetfromtNOMBREDETABLA
wheretCONDICIÓN;
Vigilando que se corresponda con el conjunto de registros a eliminar.

61
62
Borrar los artculos con precio menor que 12:

delete from FAC_T_Artculo


where PrecioActual<12;

Borrar los clientes Clientes con Fecha de alta posterior a 23/01/2010:

set dateformat dmy;


delete from FAC_T_Cliente
where FechaAlta>'23/01/2010';

63
Ejercicio:

Usar el archivo que genera la Base de Datos MoviesBasicas, creando y


cargando con datos las tablas Peliculas y Socios.

En todos los casos comprobar las tablas antes y después del borrado.

Borrar las películas del año 1975.

Borrar la película de ttulo Gandhi.

Borrar los Socios con fecha de alta posterior a '31/12/2008'

64
ACTUALIZARtREGISTROSt

65
Actualizartregistros
Actualizar registros es cambiar parte de su contenido, manteniendo el resto de su
informaciin invariable.

El comando para actualizar informaciin de los registros de una tabla es el update.

Se hará siempre con precauciin. Si no fltramos los registros a actualizar mediante el where,
la actualizaciin afectará a TODOStlos registros.
El formato básico es:
updatetNOMBREDETABLA
settCAMPO=nuevovalor;
Con este comando se modifcará el valor del CAMPO, asignándole nuevovalor en TODOS los
registros de la tabla.

Normalmente especifcaremos la condiciin de fltrado de registros a actualizar:


updatetNOMBREDETABLA
settCAMPO=nuevovalor
wheretCONDICIÓN;
Vigilando que se corresponda con el conjunto de registros a actualizar y que el nuevovalor sea
el deseado. 66
Subir dos euros a los artculos con precio menor que 12:

update FAC_T_Artculo
set precioactual=precioactual+2
where PrecioActual<12;
Modifcar el cliente de codcliente 7 cambiando su nombre a Ana María

update FAC_T_Cliente
set nombrecliente='Ana María'
where codcliente=7;

67
Ejercicio:

Usar el archivo que genera la Base de Datos MoviesBasicas, creando y cargando con
datos las tablas Peliculas y Socios.

En todos los casos comprobar las tabas antes y después de la actualizaciin.

Subir un 10% el precio de las películas de año 1980

Modifcar la fecha de compra de la película La Fiera de mi Niña al 15/2/2013.

Cambiar el director de todas las películas de Joseph L. Mankiewicz a


Joseph Leo Mankiewicz

Subir un euro a las películas de menos de 4 euros.

68
COMENTARIOS

69
Podremos usar símbolos en los archivos sql de manera que podamos
documentar las operaciones que realizamos pero sin afectar a la funcionalidad
de nuestro cidigo.

Lo que coloquemos en una línea después de dos guiones medios no se ejecutará.

select Apellidos, Nombre from socios; -- esto es para…

Lo que coloquemos entre los símbolos /* y */ no se ejecutará. Puede ocupar más


de una línea.

select Apellidos, Nombre /* comenzamos a documentar


seguimos documentando
fnalizamos comentario */ from socios;

70
VALORtNULL

71
null significa "dato desconocido" o "valor
inexistente". No es lo mismo que un valor "0", una
cadena vacía o una cadena literal "null".

Podemos asignarlo directamente, colocando NULL en la


lista de valores de un insert o no asignándole valor al no
añadir el campo en la lista de campos del insert.

Colocando valor NULL


insert FAC_T_Cliente
( CodCliente,NombreCliente,DatosCliente,FechaAlta,FechaNacimiento )
values ( 998,'Antonia','C/uno nº 3','01/03/2012',NULL);
Prescindiendo del campo FechaNacimiento
insert FAC_T_Cliente ( CodCliente,NombreCliente,DatosCliente,FechaAlta)
values ( 999,'Juana','C/la hornera nº 7' ,'22/05/2012');

72
A los campos de una tabla se les puede añadir una
especifcaciin que indica si se admiten o no valores null.

create table NOMBRETABLA


(

campoA tpo null,
campoB tpo not null,

);

El campoA puede no asignarse ( o asignarse a NULL) y el


campoB es obligatorio, siempre hay que darle valor y nunca
puede ser NULL.

73
Entlastsentenciastselecttpodemostvalidartsituntcampotestnull.

select Nombrecliente
from FAC_T_Cliente
where fechanacimiento istnull;

select nombrecliente
from FAC_T_Cliente
where DatosCliente is null;

NotestlotmismotNULLtquetvacío: No es lo mismo
NULL
select nombrecliente ''
' '
from FAC_T_Cliente
''
where DatosCliente ='';
'NULL'

74
Para comparar que tenga valor será mediante:

IS NOT NULL

Aquí vemos que la fechanacimiento tenga valor:

select Nombrecliente
from FAC_T_Cliente
where fechanacimiento istnottnull;

No valdrá nunca colocar

<>NULL
= NULL

75
Ejercicio:

Usar el archivo que genera la Base de Datos MoviesBasicas, creando y


cargando con datos las tablas Peliculas y Socios.

Buscar Películas con director a NULL


Buscar Películas con director en blanco
Crear la tabla peliculas2, con la misma estructura que la tabla
peliculas, pero sin que permita datos null en ttulo ni en director.
Probar inserciones con valor null y sin él en los campos
modifcados.

76

También podría gustarte