47
SQL Informática aplicada

SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Embed Size (px)

Citation preview

Page 1: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

SQL

Informática aplicada

Page 2: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Contenido

• Definición de datos• Estructura básica de consultas• Operaciones con conjuntos• Funciones de agregación• Valores nulos• Subconsultas anidadas• Consultas complejas• Vistas• Modificación de la base de datos• Relaciones unidas

Page 3: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Historia• Lenguaje de IBM Sequel desarrollado como parte del proyecto

sistema R en el laboratorio de investigación de IBM en San Jose• Renombrado como Lenguaje estructurado de consultas (Structured

Query Language (SQL)• Estándar ANSI y ISO de SQL:

– SQL-86– SQL-89– SQL-92– SQL: 1999– SQL:2003

• Los sistemas comerciales ofrecen muchas, sino todas, las facilidades de SQL-92, más variaciones de estándar más recientes.– NO todo funcionara en el sistema que utilizamos.

Page 4: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Lenguaje de Definición de Datos DDL

Permite la especificación de no solo conjuntos de relaciones sino que información de cada relación, incluyendo:

• El esquema para cada relación• El dominio de valores asociado con cada atributo• Restricciones de integridad• El conjunto de índices a ser mantenido para cada

relación• Información de seguridad y autorización para cada

relación• La estructura de almacenaje físico para cada relación en

disco.

Page 5: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Tipos de dominios en SQL• Char(n). Cadena de longitud fija, con especificación de longitud n

por el usuario• Varchar(). Cadena de caracteres de longitud variable, con

especificación por el usuario de la longitud máxima n.• Int. entero (un subconjunto de los enteros de la máquina)• Smallint. Entero pequeño (un subconjunto dependiente de la

máquina de los enteros)• Numeric(p,d). Números de punto fijo, precisión especificada por el

usuario de p dígitos con n dígitos a la derecha del punto decimal.• Real, doble presicision, Punto flotante y punto flotante de doble

precisión, depende de la máquina.• Float(n). Número de punto flotante, con precisión definida por el

usuario de n dígitos.• Más en el cap. 4.

Page 6: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Construcción de creación de tablas

• Una relación SQL se define usando el comando create table.create table r(A1, D1, A2, D2, …, An Dn,

(restricción de integridad1),…(restricción de integridadk));

– r es el nombre de la relación– Cada Ai es un nombre de atributo en el esquema de la relación r.– Di es un tipo de datos de valores en el dominio del atributo Ai.

• Ejemplo:Create table branch{

(branch_name char(15) not null,branch_city char(30),assets integer);

Page 7: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Construcción de borrado y alteración de tablas

• El comando drop table borra toda la información de la relación borrada de la base de datos.

• El comando alter table es para agregar atributos a una relación existente:– alter table r add A D

• Donde a es el nombre del atributo a ser agregado a la relación r y D es el dominio de A.– A todas las tuplas de Ase les asigna el valor null para el nuevo atributo.

• El comando alter table puede ser usado para borara un atributo de una relación:– alter table r drop A

• Donde A es el nombre del atributo de la relación r.– El borrado de atributos no es soportado por muchas bases de datos.

Page 8: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Estructura básica de consultas

• SQL está basado en operaciones de conjuntos y relacionales con algunas modificaciones y mejoras

• Una consulta típica de SQLP tiene la forma:select A1, A2, …,An

from r1, r2, …, rn

where P

– Ai representa un atributo– Ri representa una relación– P es un predicado

• El resultado de una consulta SQL es una relación

Page 9: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

La cláusula select

• Le cláusula select lista los atributos deseados en el resultado de la consulta– Corresponde a la operación de proyección del

álgebra relacional

• Ejemplo:select branch_name

from loan;

– Nota: Los nombres en SQL no distinguen entre mayúsculas y minúsculas

• Estos es Branch_Name = BRANCH_NAME = branch_name• Algunos usan mayúsculas

Page 10: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

La cláusula select cont.

• SQL permite duplicar relaciones asi como en los resultados de las consultas.

• Para forzar la eliminación de duplicados, inserte la palabra distinct después de select

• Encontrar los nombres de todas las sucursales de la relación loan, y remover duplicados

select distinct branch_namefrom loan;

• La palabra reservada all especifica que los duplicados no sean removidos.

select all branch_namefrom loan;

Page 11: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

La cláusula select cont.

• Un asterisco en la cláusula select denota “todos los atributos”:

select *from loan;

• La cláusula select puede contener expresiones aritméticas involucrando +, -, * y /, y operando en constantes o atributos de las tuplas.

• La consulta:• select loan_number,branch_name, amuont*100• frpm loan;

• Regresará una relación de la relación loan, excepto que el valor del atributo amount está multiplicado por 100

Page 12: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

La cláusula where

• La cláusula where especifica una condición que debe ser satisfecha– Corresponde a la selección del álgebra relacional

• Para encontrar todos los números de prestamos hechos en la sucursal Perryridge con cantidades mayores a 1200

select loan_numberfrom loanwhere branch_name=‘Perryridge’ and amount>1200;

• Los resultados de las comparacione3s pueden ser usados con conectores lógicos and, or, y not.

• Las comparaciones pueden ser aplicadas a resultados de expresiones aritméticas

Page 13: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

La cláusula where cont.

• SQL incluye el operador de comparación between (entre)

• Ejemplo: encuentre el número del préstamo de aquellos préstamos con cantidades prestadas entre $90000 y $100000.select loan_numberfrom loanwhere amount between 90000 and 100000;

Page 14: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

La cláusula from

• La cláusula from lista las relaciones involucradas en la consulta– Corresponde al producto cartesiano del álgebra relacional

• Encuentre elproducto cartesiano de borrower loanselect *from borrower, loan

• Encuentre el nombre, número de préstamos cantidad de todos los clientes que tengan préstamos en la sucursal de Perryridge

select customer_name, borrower.loan_number, amountfrom borrower,loanwhere borrower.loan_number=loan.loan_number and

branch_name=‘Perryridge’;

Page 15: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Operación de renombrado

• SQL permite el renombrado de relaciones y atributos mediante la cláusula as.

– nombre_viejo as nombre_nuevo

• Encuentre los nombre, números de préstamo y cantidades de todos los clientes; renombre la columna loan_number como loan_idselect customer_name,borrower.loan_number as

loan_id, amount

from borrower, loan

where borrower.loan_number = loan.loan_number;

Page 16: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Variables de tuplas• Las variables de tuplas son definidas en la cláusula from vía el uso

de la cláusula as.• Encontrar los nombres de clientes y sus números de cuenta para

todos los clientes que tengan un préstamo en la misma sucursalselect customer_name,T.loan_number,S.amountfrom borrower as T, loan as Swhere T.loan_numbre=S.loan_number;

• Conjunto de nombres de sucursales cuyo capital es mayor que el capìtal de alguna sucursal de Brooklynselect distinct T.branch_namefrom branch T, branch Swhere T.assets > S.assets and

S.branch_city = 'Brooklyn';• La palabra as es opcional y puede ser omitida

Page 17: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Operaciones de cadena• SQL incluye un operador de verificación de cadenas para

comparaciones en cadenas de caracteres. El operador “like” usa patrones que son descritos usando dos caracteres especiales:– Porciento(%). El carácter % concuerda con cualquier subcadena.– Subraya(_). El carácter _ concuerda con cualquier carácter.

• nombre de clientes en calles con nombres terminados en "hill“select customer_namefrom customerwhere customer_street like '%Hill';

• Para concordar con “Hill%”– like ‘Hill\%’ escape ‘\’

• SQL soporta una variedad de operadores de cadena tales como:– Concatenación (usando “||”)– Conversión de mayúsculas a minúsculas y viceversa.– Encontrar longitud de cadena, extraer subcadenas, etc.

Page 18: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Ordenado del despliegue de tuplas

• lista alfabéticamente los nombres de los clientes que tengan un préstamo en la sucursal Perryridgeselect distinct customer_namefrom borrower,loanwhere borrower.loan_number=loan.loan_number and branch_name='Perryridge'order by customer_name;

• Podemos especificar desc para orden descendente o asc para ascendente, para cada atributo; el orden ascendente es por omisión.– order by customer_name desc;

Page 19: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Operaciones de conjuntos

• Las operaciones de conjuntos union, intersect y except operan en relaciones y corresponde a los operadores del álgebra relacional ,,.

• Cada una de las operaciones anteriores elimina automáticamente los duplicados; para mantener los duplicados use la versión correspondiente de multi conjunto union all, intersect all y except all.Suponga una tupla ocurriendo m veces en r y n veces

en s, entonces ocurre• m+n veces en r union all s• min(m,n) veces en r intersect all s • max(0,m-n) veces en r except all s

Page 20: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Operaciones de conjunto• encontrar todos los clientes que tienen préstamo o cuenta o ambos

(select customer_name from depositor)union(select customer_name from borrower);

• encontrar todos los clientes que tienen préstamo y cuenta(select customer_name from depositor)intersect(select customer_name from borrower);

• encontrar todos los clientes que tienen cuenta pero no préstamo(select customer_name from depositor)except(select customer_name from borrower);

Page 21: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Funciones de agregación

• Estas funciones operan en valores de multi conjunto de un columna de una relación, y regresan un valor

• Avg: valor promedio• Min: valor mínimo• Max: valor máximo• Sum: suma de valores• Count: número de valores

Page 22: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Funciones de agregación cont.

• Balance promedio de todas las cuentas de Perryridgeselect avg(balance)from accountwhere branch_name=‘Perryridge’;

• Número de clientesselect count(*)from customer;

• Número de depositantes en el bancoselect count(distinct customer_name)from depositor;

Page 23: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Funciones de agregación agrupadas

• Nombres de sucursales que tengan al menos una cuenta, con tamaño de conjunto de clientes que tengan al menos una cuenta en esa sucursalselect branch_name, count(distinct customer_name)from depositor, account where depositor.account_number =

account.account_numbergroup by branch_name;

• Nota: atributos en la cláusula select fuera de la función de agregación deben aparecer en la lista de group by.

Page 24: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Funciones de agregación – cláusula having

• Nombres de sucursales que tengan donde el promedio de saldo es mayor a $650select branch_name, avg( balance)from account group by branch_namehaving avg(balance)>650;

Nota: los predicados en la cláusula having son aplicados después de la formación de los grupos mientras los predicados de la cláusula where son aplicados antes de la formación de los grupos.

Page 25: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Valores nulos• Es posible que una tupla tenga valores nulos, denotados por null,

para algunos de sus atributos.• Null significa valor desconocido o que el valor no existe• El predicado is null puede ser usado para verificar valores nulos.

– Ejemplo: encontrar todos los números de cuenta que aparecen en la relación loan con valores nulos para amount.

select loan_numberfrom loanwhere amount is null;

• El resultado de operaciones aritméticas involucrando null es null– Ej. 5 + null es null

• Sin embargo, las funciones de agregación simplemente ignoran los valores null

Page 26: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Valores nulos y lógica trivaluada

• Cualquier comparación con null regrese desconocido– Ej. 5<num o nul<>nul o nul=nul

• Lógica de tres valores usando el valor desconocido:– OR: (desconocido or true) = true

(desconocido or falso) = desconocido (desconocido or desconocido ) = desconocido

– AND: (desconocido and true) = desconocido (desconocido or falso) = false(desconocido or desconocido ) = desconocido

– NOT: desconocido = desconocido– “P es desconocido” se evalua como true si el predicado P se

evalua como desconocido.• El resultado de la cláusula where es tratado como false

si se evalua a desconocido.

Page 27: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Null y agregados

• Total de las cantidades de los préstamosselect sum(amount)

from loan;

– La sentencia de arriba ignora los nulos– El resultado en null si no hay valores no-nulos

para amount

• Todas las operaciones de agregación excepto count(*) ignora las tupplas con null en los atributos

Page 28: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Subconsultas anidadas

• SQL provee un mecanismo para anidar consultas

• Una subconsulta es una expresión select-from-where que esta anidada en otra

• Un uso común de subconsultas es probar pruebas de pertenencia a conjuntos, comparación de conjuntos y poner cardinalidad

Page 29: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Consultas ejemplo

• nombre de los clientes que tienen ambas una cuenta y un préstamo en el bancoselect distinct customer_namefrom borrowerwhere customer_name in( select customer_name from depositor);

• nombre de los clientes que tienen préstamo pero no tiene una cuenta en el bancoselect distinct customer_namefrom borrowerwhere customer_name not in( select customer_name from depositor);

Page 30: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Consultas ejemplo

• Encontrar todos los clientes que tienen ambas una cuenta y un préstamo en la sucursal Perryridgeselect distinct customer_namefrom borrower, loanwhere borrower.loan_number = loan.loan_number and branch_name = 'Perryridge' and

customer_name in (select customer_namefrom account, depositorwhere account.account_number =

depositor.account_number and branch_name = 'Perryridge');

• Nota: la consulta anterior se puede escribir de una manera más sencilla. La formulación anterior es solo para ilustrar.

Page 31: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Comparaciones de conjuntos

• Encontrar todas las sucursales que tienen el capital más grande que alguna sucursal de Brooklyn.select distintic Tbranch_namefrom branch as T, branch as S where T.assets>S.assets s.branch_city=‘Brooklyn’

• Lo mismo usando la cláusula <someselect branch_namefrom branchwhere assets> some (select assets from branch where branch_city=‘Brooklyn’);

Page 32: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Definición de la cláusula some

• F <comp> some r t r s.t.(F<comp>t)• Donde <comp> puede ser: <, , >, =.

(5< some )=true (se lee: 5<alguna tupla en la relación)

(5< some )=false (5= some )= true (5 some )= true

(= some) inSi embargo, ( some) not in

056

05

05

05

Page 33: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Definición de la cláusula all

• F <comp> all r t r s.t.(F<comp>t)(5< all )=false

(5< all )= true

(5= all )= false

(5 all )= true (ya que 5 4 y 5 6)

( all) not in

Si embargo, ( all) in

056

610

45

46

Page 34: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Consulta ejemplo

• Encuentre los nombres de todas las sucursales que tiene un capital mayor que todas las sucursales en brookyn.select branch_namefrom branchwhere assets> all (select assets from branch where branch_city=‘Brooklyn’);

Page 35: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Prueba de relaciones vacías

• La construcción exists regresa el valor true si el argumento de la subconsulta está no vacío.

• exists r r • not exists r r =

Page 36: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Consulta ejemplo• Encuentre todos los clientes que tienen una cuenta e ntodas las

sucursales localizadas en Brooklyn. select distinct S.customer_namefrom depositor as Swhere not exists ( (select branch_name from branch where branch_city='Brooklyn') except (select R.branch_name from depostor as T, account as R where T.account_number=R.account_number and S.customer_name=T.customer_name);– (esquema usado en este ejemplo) – Note que X – Y= X Y– Nota: No puede escribir esta consulta usando = all y sus variantes

Page 37: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Prueba para ausencia de duplicados

• La construcción unique prueba si en una consulta hay cualquier tupla duplicada en el resultado.

• Encontrar todos los clientes que tienen a lo más una cuenta en la sucursal Perryridge.select T.customer_namefrom depositor as Twhere unique ( (select R.customer_name from account, depositor as R where T.customer_name=R.customer_name and R.account_number=account.account_number and account.branch_name='Perryridge');

• Esquema usado en este ejemplo

Page 38: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Consulta ejemplo

• Encontrar todos los clientes que tienen al menos dos cuentas en la sucursal Perryridge.select distinct T.customer_namefrom depositor as Twhere not unique ( (select R.customer_name from account, depositor as R where T.customer_name=R.customer_name and R.account_number=account.account_number

and account.branch_name='Perryridge');

Page 39: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Vistas

• Provee el mecanismo para ocultar ciertos datos de la vista de ciertos usuarios. Para crear una vista usamos el comando:– create view v as <expresión de consulta>– Donde:

• <expresión de consulta> es cualquier expresión legal

• El nombre de la vista es representado por v.

Page 40: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Consultas ejemplo

• Una vista consistiendo de sucursales y sus clientescreate view all_customer as (select branch_name, customer_name from depositor, account where depositor.account_number = account.account_number) union (select branch_name, customer_name from borrower, loan where borrower.loan_number = loan.loan_number);

• Encontrar todos los clientes de la sucursal Perryridge.select customer_namefrom all_customerWhere branch_name=‘Perryridge’;

Page 41: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Relaciones derivadas

• Encuentre el saldo promedio de las cuentas de aquellas sucursales donde el saldo promedio es mayor que $1,200.select branch_name, avg_balancefrom (select brach_name, avg( balance) from account group by branch_name) as result(branch_name,avg_balance)where avg_balance>1200;

Note que no hay necesidad de usar having, ya que computamos la relación (vista) temporal result en la cláusula from, y los atributos de result pueden ser usados directamente en la cláusula where.

Page 42: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Modificación de la base de datos - borrado

• Borrar todos los registros de cuentas en la sucursal Perryridge delete from accountwhere branch-name = ‘Perryridge’;

• Borrar todas las cuentas en todas las sucursales localizadas en la ciudad de Needham.delete from account

where branch_name in (select branch_name from branch where branch_city = ‘Needham’)

delete from depositorwhere account_number in (select account_number

from branch, account where branch_city = ‘Needham’ and branch.branch_name = account.branch_name);

Page 43: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Consulta ejemplo

• Borra los registros de todas las cuentas con saldos abajo del promedio en el banco

– Problema: conforme borramos tuplas de deposit, el saldo promedio cambia

– Solución de SQL:• Primero, calcular saldo promedio, y encontrar la tuplas a

borrar• Después, borrar todas las tuplas de arriba (sin recalcular avg

o re-probar las tuplas)

delete from account where balance < (select avg (balance)

from account);

Page 44: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Modificación de la base de datos – inserción

• Agregar una tupla a accountinsert into account

values (‘A-9732’, ‘Perryridge’,1200);

• O equivalenteinsert into account (branch_name, balance, account_number)

values (‘Perryridge’, 1200, ‘A-9732’)

• Agregar nueva tupla a account con saldo nuloinsert into account

values (‘A-777’,‘Perryridge’, null)

Page 45: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Modificación de la base de datos – inserción

• Dar un regalo a los prestatarios de la sucursal Perryridge, una cuenta de ahorros de $200, utilizar el número de préstamo como número de cuenta.insert into account

select loan_number, branch_name, 200from loanwhere branch_name = ‘Perryridge’;

insert into depositorselect customer_name, loan_numberfrom loan, borrowerwhere branch_name = ‘Perryridge’ and loan.account_number =

borrower.account_number;• El enunciado select-from-where es evaluado por completo antes de

que cualquier resultado sea insertado en la relación 8de otra forma la consultainsert into table1 select * from table1

• Causaría problemas

Page 46: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Modificación de la base de datos – update

• Incrementar todas las cuentas con saldos sobre $10,000 un 6%, todas las otras recibirán el 5%.– Escriba dos enunciados update:

update account

set balance =balance*1.06

where balance>10000;

update account

set balance =balance*1.05

where balance<=10000;

– El orden es importante

Page 47: SQL Informática aplicada. Contenido Definición de datos Estructura básica de consultas Operaciones con conjuntos Funciones de agregación Valores nulos

Enunciado case para actualizaciones condicionales

• La misma consulta anterior: Incrementar todas las cuentas con saldos sobre $10,000 un 6%, todas las otras recibirán el 5%.update accountset balance = case when balance<=10000 then balance*1.05 else balance*1.06 end;