赞
踩
哈工大 数据库系统(上):模型与语言
CREATE TABLE tablename
( ( colname datatype [ DEFAULT { default_constant | NULL} ]
[ col_constr {col_constr. . .} ]
| , table_constr
{, { colname datatype [DEFAULT { default_constant | NULL} ]
[col_constr {col_constr. . .} ]
| , table_constr }
. . . } );
示例:
Create Table Student
( S# char(8) not null unique,
Sname char(10),
Ssex char(2) constraint ctssex check (Ssex=‘男’ or
Ssex=‘女’),
Sage integer check (Sage>=1 and Sage<150),
D# char(2) references Dept(D#) on delete cascade,
Sclass char(6) );
示例:
Create Table Course
( C# char(3) ,
Cname char(12),
Chours integer,
Credit float(1) constraint ctcredit check (Credit >=0.0 and Credit<=5.0),
T# char(3) references Teacher(T#) on delete cascade,
primary key(C#),
constraint ctcc check(Chours/Credit = 20) );
CREATE ASSERTION <assertion-name> CHECK <predicate>
create assertion balance_constraint check
(not exists (
select * from loan
where not exists (
select * from borrower, depositor, account
where loan.loan_number = borrower.loan_number
and borrower.customer_name = depositor.customer_name
and depositor.account_number = account.account_number
and account.balance >= 1000)))
Trigger是一种过程完整性约束(相比之下,Create Table中定义的都是非过程性约束),是一段程序,该程序可以在特定的时刻被自动触发执行,比如在一次更新操作之前执行,或在更新操作之后执行
create trigger teacher_chgsal before update of salary on teacher
referencing new x, old y
for each row when (x.salary < y.salary)
begin
raise_application_error(-20003, 'invalid salary on update');
//此条语句为Oracle的错误处理函数
end;
数据库安全性:指DBMS应该保证的数据库的一种特性(机制或手段):免受非法、非授权用户的使用、泄漏、更改或破坏
自主安全性机制
数据库自主安全性访问规则
自主安全性的实现方式
强制安全性通过对数据对象进行安全性分级,同时对用户也进行上述的安全性分级,从而强制实现不同级别用户访问不同级别数据的一种机制
数据库安全性控制是属于DCL范畴
SQL语句对应权限(级别高的权利自动包含级别低的权利)
SQL-DCL的命令及其应用
示例 >
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。