Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Introducción a SQL (Structured Query Language)
3
Select: sintaxis
Select <columna(s)>
From <tabla(s)>
4
Select: <columnas>
Articulo
cod nombre precio
11 Mesa jardin 60
12 Silla jardin 20
13 Silla playa 25
precio cod
Select precio, cod 60 11
From Articulo 20
25
12
13
5
Select: <columnas>: alias de columnas
Articulo
cod nombre precio
11 Mesa jardin 60
12 Silla jardin 20
13 Silla playa 25
cod codigo
Select cod, cod as codigo 11 11
From Articulo 12
13
12
13
Select cod as codigo de articulo Server: Msg 170, Level 15, State 1, Line 1
codigo de articulo
Select cod as [codigo de articulo] 11
From Articulo 12
13
6
Select
Select
<columna1> [AS <alias1>],
<columna2> [AS <alias2>],
…
<columnaN> [AS <alias3>]
From <tabla>
8
Select: <columnas> : fechas
Factura
factura fecha
71 01-01-05
72 02-01-05
73 03-01-05
factura fecha
Select factura, fecha 71 2005-01-01 00:00:00.000
From Factura 72 2005-01-02 00:00:00.000
73 2005-01-03 00:00:00.000
Select factura,
factura dia mes año
DATEPART(day, fecha) as dia, 71 1 1 2005
DATEPART (month, fecha) as mes, 72 2 1 2005
73 3 1 2005
DATEPART (year, fecha) as año
From Factura
factura fecha
Select factura, 71 01-01-2005
Convert(Char(10),fecha,105) as fecha 72 02-01-2005
73 03-01-2005
From Factura
9
Palabra clave distinct
Cliente
DNI Nombre codCiudad
30.112.152 Germán Fazzio 1
30.228.212 Fernando Alesso 2
30.245.123 Alvaro Hulgich 2
codCiudad
Select codCiudad 1
2
From Cliente 2
nombre codCiudad
Select nombre, codCiudad Germán Fazzio 1
From Cliente Fernando Alesso 2
Alvaro Hulgich 2
nombre codCiudad
Select distinct nombre, codCiudad Germán Fazzio 1
From Articulo Fernando Alesso 2
Alvaro Hulgich 2
05 – SQL 10
Select
Select [distinct]
<columna1> [AS <alias1>],
<columna2> [AS <alias2>],
…
<columnaN> [AS <alias3>]
From <tabla>
Donde columnaN puede ser:
•Una columna que exista en la tabla indicada en el From
•Una operación sobre las columnas de la tabla del From
•* (todas las columnas de la tabla del from)
Mostrar, de cada artículo, el codigo, nombre, precio sin iva y precio con IGV.
Llamar al precio con IGV “precio lista”.
05 – SQL 12
Select: cláusula Where
Select <columna(s)>
From <tabla(s)>
[ Where <condicion(es)> ]
05 – SQL 13
Select: cláusula Where
Compra
cod factura total cant
71 23 30 3
77 23 20 2
81 24 20 40
cod factura total cant
Select * 71 23 30 3
77 23 20 2
From Compra 81 24 20 40
05 – SQL 14
Operadores Lógicos: And, Or, Not
Empleado
Legajo Nombre sexo codciudad
1001 Germán M 1
1002 Fernando M 2
1003 Claudia F 2
1004 Patricia F 3
And codciudad = 2
Legajo Nombre Sexo Ciudad
Select * From Empleado 1001 Germán M 1
Where sexo = 'M' 1002 Fernando M 2
1003 Claudia F 2
Or codciudad = 2
05 – SQL 15
Operadores Lógicos: And, Or, Not
Empleado
Legajo Nombre sexo codciudad
1001 Germán M 1
1002 Fernando M 2
1003 Claudia F 2
1004 Patricia F 3
05 – SQL 17
Operadores LIKE y NOT LIKE
Articulo
cod nombre precio
11 Mesa jardin $ 60
12 Silla jardin $ 20
13 Silla playa $ 25
05 – SQL 18
Operadores LIKE y NOT LIKE
Articulo
cod nombre precio
11 Mesa jardin $ 60
12 Silla jardin $ 20
13 Silla playa $ 25
05 – SQL 19
Operadores LIKE y NOT LIKE
Articulo
cod nombre precio
11 Mesa jardin $ 60
12 Silla jardin $ 20
13 Silla playa $ 25
Cualquier comparación (=, >, <, >=, <=) que incluya un valor NULL
NUNCA será evaluada como verdadera
05 – SQL 21
Tratamiento de valores nulos
Empleado
Legajo nombre esJefe
11 Germán 12
12 Fernando 13
13 Alvaro null
05 – SQL 22
Claúsula where: manejo de fechas
Factura
factura fecha
71 01-01-05
72 02-01-05
73 03-01-05
factura fecha
Select factura, fecha 71 2005-01-01 00:00:00.000
From Factura 72 2005-01-02 00:00:00.000
73 2005-01-03 00:00:00.000
05 – SQL 23
Claúsula where: manejo de fechas
Factura
factura fecha
71 01-01-05
72 02-01-05
73 03-01-05
Mostrar toda la información posible de las materias cuyo código comience con
71. o cuya descripción no se conozca
05 – SQL 25
Select: cláusula Where
Select <columnas>
From <tabla>
[ Where <condicion> ]
Donde <condicion> puede ser (por ejemplo):
•columna1 = valor
•columna1 >= valor
•columna1 <> valor
•column LIKE ' valor%‘
•<condicion1> AND <condicion2>
•<condicion1> OR <condicion2>
•<condicion1> AND NOT <condicion2>
•DATEPART(year,columna1) = valor
05 – SQL 26
Select: cláusula Order by
Select <columna(s)>
From <tabla(s)>
[ Where <condicion(es)> ]
[ Order by <criterio(s)> ]
05 – SQL 27
Select: cláusula Order by
Empleado
Legajo Nombre sexo codciudad
1001 Germán M 1
1002 Fernando M 2
1003 Claudia F 2
1004 Patricia F 3
Legajo Nombre Sexo codCiudad
Select * From Empleado 1001 Germán M 1
1002 Fernando M 2
Order by legajo ASC 1003 Claudia F 2
1004 Patricia F 3
05 – SQL 28
Select: cláusula Order by
Empleado
Legajo Nombre sexo codciudad
1001 Germán M 1
1002 Fernando M 2
1003 Claudia F 2
1004 Patricia F 3
05 – SQL 29
Select: cláusula Order by
Select <columna(s)>
From <tabla(s)>
[ Where <condicion(es)> ]
[ Order by
<columna1> [ ASC | DESC ],
<columna2> [ ASC | DESC ],
...
<columnaN> [ ASC | DESC ]
]
05 – SQL 30
Select: Ejercicio
Ventas
Año Provincia venta$
2003 Buenos Aires 1500
2004 Buenos Aires 2000
2003 Cordoba 1800
2004 Cordoba 4000
Mostrar las ventas por provincia y por año, ordenando en primera medida por
el año en forma ascendente, y luego ordenar las provincias en forma descendente
por el valor de las ventas.
05 – SQL 31
Insert: sintaxis
Con esta sintaxis, una sentencia Insert coloca una sola fila en una tabla.
Para colocar varias filas, será necesario hacer un Insert para cada una.
05 – SQL 32
Insert: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984
05 – SQL 33
Insert: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984
Empleado
Legajo nombre fec_nac
Insert Into Empleado 11 Germán 19/02/1985
Values (12, 'Fernando', 23/07/1986) 12 Fernando 01/01/1900
13 Alvaro 29/02/1984
05 – SQL 34
Insert: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984
Empleado
Legajo nombre fec_nac
Insert Into Empleado 11 Germán 19/02/1985
Values (12, 'Fernando', '23/07/1986') 12 Fernando 23/07/1986
13 Alvaro 29/02/1984
05 – SQL 35
Insert: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984
05 – SQL 36
Insert: sintaxis
La sintaxis
Insert Into <tabla>
Values (valor1, valor2, valor3, ..., valorN)
Sólo puede utilizarse cuando se van a dar valores
para todas las columnas de la tabla. Cuando se
desean proveer menos valores, es preciso utilizar la
sintaxis:
ISEPA 37
Insert: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
12 Fernando null
13 Alvaro 29/02/1984
05 – SQL 38
Insert: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984
05 – SQL 39
Insert: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984
Es preciso dar valores para todas las columnas que no acepten nulos.
05 – SQL 40
Insert: Ejercicio
Cliente
cod nombre q_compras fec_uc q_compras: cantidad de compras que
11 Fernando 12 12/4/05
12 Germán 3 21/07/04 hizo un cliente.
13 Claudia 2 23/08/06 fec_uc: fecha de última compra
05 – SQL 41
Delete: sintaxis
05 – SQL 42
Delete: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984
Empleado
Delete From Empleado Legajo nombre fec_nac
05 – SQL 43
Delete: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984
Empleado
Delete From Empleado Legajo nombre fec_nac
05 – SQL 44
Delete: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984
Empleado
Delete From Empleado Legajo nombre fec_nac
Where Empleado = 11 13 Alvaro 29/02/1984
05 – SQL 45
Delete: Ejercicio
Cliente
cod nombre q_compras fec_uc
11 Fernando 12 12/4/05 q_compras: cantidad de compras que
12 Germán 3 21/07/04 hizo un cliente.
13 Claudia 2 23/08/06 fec_uc: fecha de última compra
14 Patricia 18 14/7/04
Eliminar de la tabla todos los clientes que no hayan realizado ninguna compra
entre el 1 de enero de 2005 y hoy, salvo aquellos que hayan realizado más de 5
compras.
Cliente
cod nombre q_compras fec_uc
Delete From Compra 11 Fernando 12 12/4/05
Where fec_uc < '01/01/2005' 12 Germán 3 21/07/04
13 Claudia 2 23/08/06
And q_compras <= 5 14 Patricia 18 14/7/04
05 – SQL 46
Update: sintaxis
05 – SQL 47
Update
Compra
cod factura total cant
1 23 $ 30 3
2 23 $ 20 2
3 24 $ 20 40
4 24 $ 20 40
Compra
cod factura total cant
1 23 $ 60 null
Update Compra 2 23 $ 40 null
Set cant = NULL 3 24 $ 40 null
4 24 $ 20 null
05 – SQL 48
Update
Compra
cod factura total cant
1 23 $ 30 3
2 23 $ 20 2
3 24 $ 20 40
4 24 $ 20 40
Compra
cod factura total cant
1 23 $ 60 3
Update Compra
2 23 $ 40 2
Set cant = NULL 3 24 $ 40 40
Where cod = 4 4 24 $ 20 null
05 – SQL 49
Update
Compra
cod factura total cant
1 23 $ 30 3
2 23 $ 20 2
3 24 $ 20 40
4 24 $ 20 40
Compra
cod factura total cant
1 23 $ 60 3
Update Compra 2 23 $ 40 2
Set total = total * 2 3 24 $ 40 40
4 24 $ 40 40
05 – SQL 50
Update
Compra
cod factura total cant
1 23 $ 30 3
2 23 $ 20 2
3 24 $ 20 40
4 24 $ 20 40
Compra
cod factura total cant
Update Compra
1 23 $ 30 3
Set cant = NULL, 2 23 $ 20 2
total = total * 2 3 24 $ 20 40
Where cod = 4 4 24 $ 40 null
05 – SQL 51
Update: Ejercicio
Cliente
cod nombre q_compras fec_uc
11 Fernando 12 12/4/05 q_compras: cantidad de compras que
12 Germán 3 21/07/05 hizo un cliente.
13 Claudia 7 1/09/05
fec_uc: fecha de última compra
14 Patricia 18 14/7/04
Cliente
Update Compra cod nombre q_compras fec_uc
Set fec_uc = ‘03/08/07', 11 Fernando 12 12/4/05
12 Germán 3 21/07/05
q_compras = q_compras + 1 13 Claudia 8 03/08/07
Where cod = 13 14 Patricia 18 14/7/04
05 – SQL 52