Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
indices, reglas,
defaults
SQL (Structured Query Language)
• Ejemplo:
drop table empleado
Cláusula default
• Sintaxis Simplificada :
create table table_name (
column_name datatype default default_value [property],
...)
Modificación de cláusulas default
• Sintaxis Simplificada:
alter table table_name
replace column_name default default_value
• Sintaxis Simplificada:
grant { select | insert | update | delete | reference | all }
on table_name
to user_list
• Ejemplo:
grant select on empleado to juan, sandra, pablo
Adición de Columnas
• Después de creada una tabla, se pueden añadir columnas
• Algunos DBMS no permiten borrar directamente una
columna de una tabla
– Para borrar una columna, se debe borrar y volver a crear la tabla
• Sintaxis Simplificada :
select column_list into new_table_name
from old_table_name
[where condition]
Ejemplos de select into
• Ejemplos:
insert into editor
values ("736", “Nuevas BD", “Pasto",
“Nariño")
• Ejemplo:
insert into editor
select * from pub..editor
• Las columnas en las que se van a insertar datos deben
tener los mismos tipos de datos que resulten de las
columnas del query
Sintaxis para update
• Sintaxis Simplificada :
update table_name
set column1 = { expression | select_statement }
[, column2 = { expression | select_statement } ...]
[from table_list]
[where condition]
• Ejemplos:
update titles set price = price * $1.25
update authors
set address = "1224 Mason Ct.",
phone = "415 773-2882"
where au_id = "427-17-2319"
Extensión para update
• Ejemplo:
update titulo
set precio = precio * $0.90
from titulo t, editor p
where t.pub_id = p.pub_id
and p.state = “Nariño"
Sintaxis para delete
• Sintaxis Simplificada:
delete [from] table_name
[where condition]
• Ejemplos:
delete from editor
• Ejemplo
delete titles
from titles t, publishers p
where t.pub_id = p.pub_id
and p.state = "CA"
truncate table
• truncate table borra todas las filas de una tabla
– La operación se ejecuta más rápido que la
correspondiente sentencia delete
– El comamdo no se puede usar para borrar algunas filas
de la tabla
• Sintaxis simplificada:
truncate table table_name
• Ejemplo:
truncate table publishers
Registro de Transacciones (Log)
• El registro de transacciones se utiliza para recuperar los datos
en el evento de un error del usuario o falla del sistema
• Actúa ante cada insert, update, y delete
• Ejemplo:
select type, avg(price)
from titles
where type not in ("mod_cook", "trad_cook")
group by type
having avg(price) > $12.00
order by type
Vista
• Una vista es un objeto de base de datos que consiste de una
sentencia select almacenada
• Usada para:
– Simplificar la construcción de consultas complejas
– Simplificar al usuario la percepión de la base de datos
– Limitar el acceso a los datos
Crear y borrar vistas
• Sintaxis Simplificada para crear una vista :
create view view_name [(column1 [, column2...])
as
select_statement
[with check option]
• Ejemplo:
create view vw_california_authors
as
select au_id, au_lname, au_fname, state, phone
from authors
where state = "CA"
• Sintaxis simplificada para borrar una vista:
drop view view_name
• Ejemplo:
drop view vw_california_authors
Vistas y permisos
• Ejemplo:
grant select
on vw_california_authors
to clerk1, clerk2, clerk3, clerk4
Consultar datos usando vistas
pub_name title
-------- -----
New Age Books You Can Combat Computer Stress
New Age Books Is Anger the Enemy?
...
Usar vistas para restringir acceso
• Una vista puede permitir a los usuarios acceder a una parte de la tabla
cuando el acceso al contenido total de la tabla está restringido
• Ejemplo:
create clustered index idx_c_titles_1
on titles (title_id)
• Ejemplo:
drop index titles.idx_c_titles_1
Atributos de los índices
PAGE
PAGE1409
1409
21 Karsen
(more pages) 22 O'Leary
23 Ringer
create clustered index idx_authors_2
on authors(au_lname) (more pages)
Escritura de consultas que usen índices
• Ejemplo:
create table publishers (
pub_id char(4) NOT NULL
constraint chk_pub_id
check (pub_id like "99[0-9][0-9]"),
pub_name varchar(40) NULL,
city varchar(20) NULL,
state char(2) NULL
)
Nombre de restricción a nivel de columna
• Unico
• Cluster
• No permite valores NULL en la(s) columna(s)
• No se puede borrar usando la sentencia drop
index
Primary key a nivel de columna
• Sintaxis Simplificada:
create table table_name (
column_name datatype [ NOT NULL | IDENTITY ]
[constraint constraint_name]
primary key [clustered | nonclustered],
...
column_name datatype [ NULL | NOT NULL | IDENTITY ]
)
• Ejemplo:
create table publishers (
pub_id char(4) NOT NULL
constraint pky_c_pub_id
primary key,
pub_name varchar(40) NULL,
city varchar(20) NULL,
state char(2) NULL
)
Primary key a nivel de tabla
• Sintaxis Simplificada:
create table table_name (
column_name datatype [ NULL | NOT NULL | IDENTITY ],
...
column_name datatype [ NULL | NOT NULL | IDENTITY ]
[constraint constraint_name]
primary key (column1 [, column2...])
)
• Ejemplo:
create table sales (
stor_id char(4) NOT NULL,
ord_num varchar(20) NOT NULL,
date datetime NOT NULL,
constraint pky_c_storid_ordnum
primary key (stor_id, ord_num)
)
Restricción unique
• Una restricción unique forza integridad a nivel de entidad
• Crea un índice único sobre la columna(s) specificada(s)
• Asegura integridad durante los inserts y updates
• Las tablas pueden tener más de una restricción tipo unique
Indices creados con restrición unique
• Unico
• No-cluster por default
• Permite el uso de valores tipo NULL
• No se puede borrar usando la sentencia drop
index
Restricción unique a nivel de columna
• Sintaxis Simplificada:
create table table_name (
column_name datatype [ NULL | NOT NULL | IDENTITY ]
[constraint constraint_name]
unique [clustered | nonclustered],
...
column_name datatype [ NULL | NOT NULL | IDENTITY ]
)
• Ejemplo:
create table publishers (
pub_id char(4) NOT NULL,
pub_name varchar(40) NULL
constraint unq_pub_name
unique,
city varchar(20) NULL,
state char(2) NULL
)
Restricción unique a nivel de tabla
• Sintaxis Simplificada:
create table table_name (
column_name datatype [ NULL | NOT NULL | IDENTITY ],
...
column_name datatype [ NULL | NOT NULL | IDENTITY ]
[constraint constraint_name]
unique (column1 [, column2...])
)
• Ejemplo:
create table sales (
stor_id char(4) NOT NULL,
ord_num varchar(20) NOT NULL,
date datetime NOT NULL,
constraint unq_stor_id_ord_num
unique (stor_id, ord_num)
)
Restricciones primary key vs unique
• Quitar un default
• Sintaxis simplificada para borrado:
drop default default_name
• Ejemplo:
drop default def_state
Rule
• Una rule es un objeto de base de datos que no permite
inserts y updates si la regla no se cumple
– Como la restricción check, se puede utilizar para forzar
integridad a nivel de dominio
• Una rule se puede asignar a una o más columnas
Crear reglas
• Sintaxis simplificada:
create rule rule_name as
condition_expression
• Ejemplos:
create rule rul_state as
@state in ("CA", "CO", "WA")
• Desasignar reglas