使用ALTER TABLE 语句:
*、添加或者删除约束条件,但是不能修改约束条件。
就算列名上已经有约束条件,还可以继续添加约束条件的。
添加: ALTER TABLE table_name ADD [CONSTRAINT ] 约束名 约束条件(column);
删除: ALTER TABLE table_name drop constraint 约束名;
ALTER TABLE table_name PRIMARY KEY CASCADE;删除主键的时候,不用约束名。
*、启动或禁用约束条件
ALTER TABLE table_name Disable constraint 约束名; 禁用
ALTER TABLE table_name ENABLE constraint 约束名; 启用
*、通过MODIFY添加 NOT NULL 约束条件(因为NOT NULL为列级约束,只能用MODIFY添加)。
ALTER TABLE table_name MODIFY(col type NOT NULL);
查看约束条件:
//desc user_constraints
OWNER 拥有者;
CONSTRAINT_NAME 约束名称
CONSTRAINT_TYPE 约束类型
SEARCH_CONDITION check的条件
select constraint_name, constraint_type,search_condition,status
from user_constraint where table_name=''b'';
视图 (VIEW) 一个或多个表的数据集的逻辑表示(虚表,不存储数据)。
视图不能提高查询的性能。
分类:
简单
数目:一个
函数:不包含
分组数据:不包含
可以做DML操作
复杂
数目:一个或多个
函数:包含
分组数据:包含
不一定能做DML操作
视图也可以用DESC描述。
创建视图:
CREATE [or replace(修改视图)] [force/noforce] VIEW view_name(col coltype ,.......)
as
subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY[CONSTRAINT constraint]];
USER_VIEWS 关于视图的字典
修改视图:
CREATE OR REPLACE 原视图名 (字段列表)
AS 子查询;
包含:
GROUP BY
DISTINCT
ROWNUM
不能对视图进行删除操作;
包含:
GROUP BY
DISTINCT
ROWNUM
通过表达式定义的列
不能对视图进行修改操作;
包含:
GROUP BY
DISTINCT
ROWNUM
通过表达式定义的列
在视图中没有包含基表中的 NOT NULL 列
不能对视图进行插入操作;
使用视图的原因;
为了限制对数据的访问;
为了使复杂的查询变得简单;
提供了数据的独立性;
提供了对相同数据的不同显示;
使用WITH CHECK OPTION 子句创建视图
创建视图时通过 WITH CHECK OPTION 子句确保执行的DML语句不会引起数据不出现在视图上。
在对视图做DML操作的时候,一定要符合WHERE子句中的条件。
CREATE OR REPLACE VIEW empvu20 as select * from employees
where check option constraint [empvu20_ck];
WITH READ ONLY
不可以进行DML操作;
删除视图:
DROP VIEW view_name;
行内视图:
是一个在SQL语句中使用的带有别名的子查询,该子查询放在FROM之后;
TOP-N:
select [col_list],rownum rank(排名)
from (select [col_list] from table_name order by top-n_col)
where rownum<=n;
序列(SEPUENCE)产生的顺序数字,单向递增或单向递减,且步长相同。
索引(INDEX)用于提高查询性能。
同义词(SYNONYM)对象的别名。
create public synonym e for hr.employees;
user_synonyms;
创建同义词要有权限,访问的时候也需要权限。