Está en la página 1de 52

Ing, René ACERO ESTAÑA

1
Introducción a SQL (Structured Query Language)

Estándares definidos por ANSI


(American National Standard Institute):
• SQL-86
• SQL-89
• SQL-92
• SQL-99

Prácticamente todos los motores de bases de datos cumplen con


el estándar ANSI SQL-92. Vamos a utilizar ese.
Componentes del lenguaje SQL-92

• Sentencias DDL (Data Definition Language)


• creación/eliminación de tablas, claves primarias, claves
externas, vistas, índices
• otorgar / denegar permisos (Grant/Revoke)
• Sentencias DML (Data Manipulation Language)
• Select
• Insert
• Update
• Delete
• Control de transacciones
• Begin Transaction, Commit, Rollback
• SQL almacenado
• Procedures, Functions, Triggers

3
Select: sintaxis

Es la sentencia utilizada para consultar el contenido


de una o más tablas.

Su forma más simple es

Select <columna(s)>
From <tabla(s)>

El resultado del Select es SIEMPRE una tabla

4
Select: <columnas>
Articulo
cod nombre precio
11 Mesa jardin 60
12 Silla jardin 20
13 Silla playa 25

cod nombre precio


Select cod, nombre, precio 11 Mesa jardin 60
12 Silla jardin 20
From Articulo 13 Silla playa 25

cod nombre precio


Select * 11 Mesa jardin 60
From Articulo 12 Silla jardin 20
13 Silla playa 25

precio cod nombre


Select precio, cod, nombre 60 11 Mesa jardin
From Articulo 20 12 Silla jardin
25 13 Silla playa

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

From Articulo Line 1: Incorrect syntax near 'de'.

codigo de articulo
Select cod as [codigo de articulo] 11
From Articulo 12
13

6
Select

Por ahora ...

Select
<columna1> [AS <alias1>],
<columna2> [AS <alias2>],

<columnaN> [AS <alias3>]
From <tabla>

Donde columnaN puede ser el nombre de una columna


o * para mostrar todas las columnas.
7
Select: <columnas> : operaciones entre columnas
Compra
cod factura total cant
71 23 30 3
77 23 20 2
81 24 20 40
cod total cant
Select cod, total, cant 71 30 3
77 20 2
From Compra 81 20 40

Select cod, total, cant, cod total cant precio unit


71 30 3 10
total/cant as [precio unit] 77 20 2 10
From Compra 81 20 40 0

Select cod, total, cant, cod total cant precio unit


71 30 3 10.0
(total/cant) * (1.0) as [precio unit] 77 20 2 10.0
From Compra 81 20 40 0.0

Select cod, total, cant, cod total cant precio unit


71 30 3 10.0
(total *1.0) / cant as [precio unit] 77 20 2 10.0
From Compra 81 20 40 0.5

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

Select distinct codCiudad codCiudad


1
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

Por ahora ...

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)

La palabra clave distinct elimina duplicados en el resultado


05 – SQL 11
Select: Ejercicio
Articulo
cod nombre precio
11 Mesa jardin 60 precio: valor sin IGV
12 Silla jardin 20
13 Silla playa 25

Mostrar, de cada artículo, el codigo, nombre, precio sin iva y precio con IGV.
Llamar al precio con IGV “precio lista”.

Select cod, nombre, precio, cod nombre precio precio lista


11 Mesa jardin 60 72.60
precio * 1.21 As [precio lista] 12 Silla jardin 20 24.20
From Articulo 13 Silla playa 25 30.25

05 – SQL 12
Select: cláusula Where

La sentencia Select puede tener una cláusula Where

Where se utiliza para poner una o más condiciones.

Select <columna(s)>
From <tabla(s)>
[ Where <condicion(es)> ]

Los corchetes se incluyen aquí para indicar que la claúsula Where


es opcional. No deben colocarse en el código SQL.

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

Select * cod factura total cant


71 23 30 3
From Compra 77 23 20 2
Where factura = 23 81 24 20 40

cod factura total cant


Select factura, total, cant 71 23 30 3
From Compra 77 23 20 2
81 24 20 40

Select factura, total, cant cod factura total cant


From Compra 71
77
23
23
30
20
3
2
Where factura = 23 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

Legajo Nombre Sexo Ciudad


Select * From Empleado 1001 Germán M 1
Where sexo = 'M' 1002 Fernando M 2

Select * From Empleado Legajo Nombre Sexo Ciudad


1002 Fernando M 2
Where codciudad = 2 1003 Claudia F 2

Select * From Empleado Legajo Nombre Sexo Ciudad


Where sexo = 'M' 1002 Fernando M 2

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

Legajo Nombre Sexo Ciudad


Select * From Empleado 1001 Germán M 1
Where sexo = 'M' 1002 Fernando M 2

Select * From Empleado Legajo Nombre Sexo Ciudad


1003 Claudia F 2
Where Not sexo = 'M' 1004 Patricia F 3

Select * From Empleado Legajo Nombre Sexo Ciudad


Where sexo = 'M' 1001 Germán M 1

And Not codciudad = 2


Legajo Nombre Sexo Ciudad
Select * From Empleado 1001 Germán M 1
Where sexo = 'M' 1002 Fernando M 2
1004 Patricia F 3
Or Not codciudad = 2
05 – SQL 16
Operadores aritméticos
Articulo
cod nombre precio
11 Mesa jardin $ 60
12 Silla jardin $ 20
13 Silla playa $ 25

Select * From Articulo cod nombre precio


11 Mesa jardin 50
Where cod = 11
cod nombre precio
Select * From Articulo 12 Silla jardin 20
Where cod <> 11 13 Silla playa 25

Select * From Articulo cod nombre precio


13 Silla playa 25
Where cod > 12
cod nombre precio
Select * From Articulo 12 Silla jardin 20
Where cod >= 12 13 Silla playa 25

05 – SQL 17
Operadores LIKE y NOT LIKE
Articulo
cod nombre precio
11 Mesa jardin $ 60
12 Silla jardin $ 20
13 Silla playa $ 25

Select * From Articulo cod nombre precio


Where nombre= 'Silla'

Select * From Articulo cod nombre precio


12 Silla jardin 20
Where nombre LIKE 'Silla%' 13 Silla playa 25

Select * From Articulo cod nombre precio


11 Mesa jardin 50
Where nombre NOT LIKE 'Silla%'

05 – SQL 18
Operadores LIKE y NOT LIKE
Articulo
cod nombre precio
11 Mesa jardin $ 60
12 Silla jardin $ 20
13 Silla playa $ 25

Select * From Articulo cod nombre precio


Where nombre = '%jardin'

Select * From Articulo cod nombre precio


11 Mesa jardin 50
Where nombre LIKE '%jardin' 12 Silla jardin 20

El símbolo de porcentaje (%) equivale a cualquier cadena de


0 ó más caracteres, pero sólo cuando
se utilizan los operadores LIKE o NOT LIKE.

05 – SQL 19
Operadores LIKE y NOT LIKE
Articulo
cod nombre precio
11 Mesa jardin $ 60
12 Silla jardin $ 20
13 Silla playa $ 25

Select * From Articulo cod nombre precio


11 Mesa jardin 50
Where nombre LIKE '%jardin' 12 Silla jardin 20

“todos los artículos de jardin”

Select * From Articulo cod nombre precio


11 Mesa jardin 50
Where Not nombre NOT LIKE '%jardin' 12 Silla jardin 20

“excluir los artículos que no sean de jardín”

Select * From Articulo cod nombre precio


13 Silla playa 25
Where nombre NOT LIKE '%jardin'
“los artículos que no sean de jardín”
05 – SQL 20
Tratamiento de valores nulos
Empleado
Legajo nombre esJefe
11 Germán 12
12 Fernando 13
13 Alvaro null

cod nombre precio


Select * From Empleado 11 Germán 12
Where esJefe > 10 12 Fernando 13

Select * From Empleado cod nombre precio


Where esJefe < 10
Select * From Empleado cod nombre precio
Where esJefe = NULL

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

Select * From Empleado cod nombre precio


Where esJefe <> NULL

Select * From Empleado cod nombre precio


13 Alvaro NULL
Where esJefe IS NULL

Select * From Empleado cod nombre precio


11 Germán 12
Where esJefe IS NOT NULL 12 Fernando 13

Para manejar los valores nulos utilizar SIEMPRE


IS NULL ó IS NOT 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

Select factura, fecha


From Factura factura fecha
Where fecha > '1/1/2005' 72 2005-01-02 00:00:00.000

And fecha < '1/3/2005'

Cuando en la base de datos se guarda un valor de tipo TIMESTAMP,


es preciso manejarlo como tal (considerar horas, minutos y segundo)

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 las ventas ocurridas el 1 de enero de 2005”

Select factura, fecha


From Factura factura fecha
71 2005-01-01 00:00:00.000
Where fecha >= '1/1/2005'
And fecha < '1/2/2005'

Select factura, fecha


From Compra
Where factura fecha
71 2005-01-01 00:00:00.000
DATEPART(day, fecha) = 1
And DATEPART (month, fecha) = 1
And DATEPART (year, fecha) = 2005
05 – SQL 24
Select: Ejercicio
Materia
codigo nombre
71.45 Matemática I
71.46 Matemática II
78.33 NULL
75.21 Prob y Est

Mostrar toda la información posible de las materias cuyo código comience con
71. o cuya descripción no se conozca

Select * codigo nombre


From Materia 71.45 Matemática I
71.46 Matemática II
Where codigo LIKE '71.%‘ 78 NULL
Or nombre IS NULL

05 – SQL 25
Select: cláusula Where

Por ahora ...

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

La sentencia Select puede tener una cláusula Order


by

Order by se utiliza para poner una o más criterios de


ordenación de las filas de la tabla resultado.

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

Legajo Nombre Sexo codCiudad


Select * From Empleado 1004 Patricia F 3
1003 Claudia F 2
Order by legajo DESC 1002 Fernando M 2
1001 Germán M 1

Legajo Nombre Sexo codCiudad


Select * From Empleado 1001 Germán M 1
1002 Fernando M 2
Order by legajo 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

Legajo Nombre Sexo codCiudad


1003 Claudia F 2
Select * From Empleado 1004 Patricia F 3
Order by sexo 1001 Germán M 1
1002 Fernando M 2

Select * From Empleado Legajo Nombre Sexo codCiudad


Order by 1004 Patricia F 3
1003 Claudia F 2
Sexo ASC, 1002 Fernando M 2
codCiudad DESC 1001 Germán M 1

05 – SQL 29
Select: cláusula Order by

Por ahora ...

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.

Select * Año Provincia venta$


2003 Cordoba 1800
From Ventas 2003 Buenos Aires 1500
Order by 2004
2004
Cordoba
Buenos Aires
4000
2000
Año,
ventas$ Desc

05 – SQL 31
Insert: sintaxis

Es la sentencia utilizada para agregar filas a una


tabla.

Su forma más simple es

Insert Into <tabla>


Values (valor1, valor2, valor3, ..., valorN)

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

Insert Into Empleado Values (12, Fernando, 23/07/1986)

Server: Msg 128, Level 15, State 1, Line 1


The name 'Fernando' is not permitted in this context. Only
constants, expressions, or variables allowed here. Column
names are not permitted.

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

Encerrar entre comillas simples los


valores constantes de tipo texto ó fecha.

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

Encerrar entre comillas simples los


valores constantes de tipo texto ó fecha.

05 – SQL 35
Insert: sintaxis

Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984

Insert Into Empleado Values (12, 'Fernando')

Server: Msg 213, Level 16, State 4, Line 1


Insert Error: Column name or number of supplied values
does not match table definition.

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:

Insert Into <tabla> (col1, col2, …, colN)


Values (valor1, valor2, ..., valorN)

ISEPA 37
Insert: sintaxis

Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984

Insert Into Empleado (legajo,nombre)


Values (12, 'Fernando')

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

Insert Into Empleado (nombre, legajo)


Values (12, 'Fernando')

Server: Msg 245, Level 16, State 1, Line 1


Syntax error converting the varchar value 'Fernando' to a column
of data type int.

El orden de las columnas indicadas a continuación de la tabla


debe corresponderse con los valores.

05 – SQL 39
Insert: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984

Insert Into Empleado (nombre, fec_nac)


Values ('Fernando', '23/07/1986') Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
null Fernando 23/07/1986
13 Alvaro 29/02/1984

Server: Msg 515, Level 16, State 2, Line 1


Cannot insert the value NULL into column 'Legajo', table 'GDatos.dbo.Empleado';
column does not allow nulls. INSERT fails.
The statement has been terminated.

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

Dar de alta a un nuevo cliente, Patricia, con ID 14 (todavía no realizó ninguna


compra)

Insert Into Cliente Cliente


Values (14, 'Patricia',0, NULL) cod nombre q_compras fec_uc
11 Fernando 12 12/4/05
o 12 Germán 3 21/07/04
13 Claudia 2 23/08/06
Insert Into 14 Patricia 0 null
Cliente(cod,nombre,q_compras)
Values (14, 'Patricia',0)

05 – SQL 41
Delete: sintaxis

Es la sentencia utilizada para eliminar filas de una


tabla.

Delete From <tabla>


[ Where <condición> ]

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

Si no se especifica una condición Where, se eliminarán todas las


filas de la tabla (usar con cuidado)

05 – SQL 43
Delete: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984

Legajo nombre fec_nac


Select * From Empleado 11
13
Germán
Alvaro
19/02/1985
29/02/1984

Empleado
Delete From Empleado Legajo nombre fec_nac

Una buena práctica es, antes de ejecutar una sentencia Delete,


cambiar la palabar Delete por Select *. De esta forma, podemos
preveer qué filas se van a eliminar.

05 – SQL 44
Delete: sintaxis
Empleado
Legajo nombre fec_nac
11 Germán 19/02/1985
13 Alvaro 29/02/1984

Select * From Empleado Legajo nombre fec_nac


11 Germán 19/02/1985
Where Empleado = 11

Empleado
Delete From Empleado Legajo nombre fec_nac
Where Empleado = 11 13 Alvaro 29/02/1984

La cláusula Where de la sentencia Delete tiene la misma sintaxis


que en la sentencia Select.

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

Es la sentencia utilizada para actualizar filas de una


tabla.
Update <tabla>
Set
col1 = valor1,
col2 = valor2,
...
colN = valorN
[ Where <condición> ]

No es necesario indicar valores para todas las columnas de la tabla;


basta con aquellas que se quieren actualizar.

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

Si no se incluye una cláusula Where, se actualizan todas las filas


de la tabla

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

Con una cláusula Where, es posible


modificar solamente algunas filas

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

El valor a colocar puede depender del valor anterior.

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

Puede actualizarse el valor de más de una columna simultáneamente.

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

Supongamos que el cliente 13 (Claudia) realiza hoy, 3 de agosto de 2007,


una compra. Actualizar la tabla Cliente.

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

También podría gustarte