oracle 学习笔记1

1、oracle常见约束
 primary key: 主键
 foreigh key:外键
 check:检查
 unique:唯一
 not null:非空
 default:默认

2、概念
 主键:表中能够用于唯一标识某行数据的某一列或多列的组合,通过主键在表中能找到唯一的一条记录,主键默认具有唯一非空的特性。
 外键:表中某行数据的取值受自身表或者其他表的某列取值的限制,也就是说此列取值只能来自于某列的取值,则此列称为外键列。
 
3、删除数据库中的数据有几种语法?delete、truncate的区别?
 使用范围:
  truncate:删除表中所有数据
  delete:删除表中所有数据(加条件则删除部分数据)
 自动增加的序列:
  truncate:从建表时的初始值开始
  delete:在原有的值基础上增加
 性能:
  truncate:效率高,不写日志,不留痕迹
  delete:效率略低,写日志,可以回滚,可以撤销

4、复制表
 1)复制一张空表,表结构跟t_student完全一致(备份表事先必须存在)
 CREATE TABLE 备份表名 AS SELECT * FROM 源表 WHERE 条件;
 CREATE TABLE t_student_bk AS SELECT * FROM t_student WHERE 1=1;
 2)备份表事先可以不存在
 INSERT INTO t_student_bk3 SELECT s_id,'问题小生','男',23,s_hobby FROM t_student;
 
5、更新约束
 语法:(约束的添加和删除)
 ALTER TABLE table_name ADD CONSTRAINT constraint_name
 ALTER TABLE table_name DROP CONSTRAINT constraint_name;
 
 -- 给选定的列设置为非空(当设定not null后,insert和update时此列必须指定值,除非此列有默认值)
 ALTER TABLE t_teacher MODIFY s_sname VARCHAR2(30) NOT NULL;(若已存在s_sname为空的字段,则更改约束失败)
 UPDATE t_teacher SET s_sname='未命名' WHERE s_sname IS NULL;(将为空的都改为“未命名”,那就变成非空了)
 ALTER TABLE t_teacher MODIFY s_sname VARCHAR2(30) NOT NULL;
 -- 给选定的列设置为空
 ALTER TABLE t_teacher MODIFY s_sname VARCHAR2(30) NULL;

 

 -- 设置唯一性
 ALTER TABLE t_teacher ADD CONSTRAINT uq_teacher_id UNIQUE(s_id);
 
 -- check检查约束
 ALTER TABLE t_teacher ADD CONSTRAINT ck_teacher_age CHECK(s_age>=22 AND s_age<=60);
 
 -- 增加外键
 级联删除主键数据,当删除主键数据时,同时删除引用数据
 ALTER TABLE t_teacher ADD CONSTRAINT fk_teacher_dpid FOREIGN KEY(department_id) REFERENCES t_department(d_id) ON DELETE CASCADE;
 当主表数据删除时,从表(子表)外键列的值设置为null
 ALTER TABLE t_teacher ADD CONSTRAINT fk_teacher_dpid FOREIGN KEY(department_id) REFERENCES t_department(d_id) ON DELETE SET NULL;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值