源码-Oracle数据库管理-第六章-索引和约束-约束部分-Part 1

做了项目,往往忙于琐事,疏于学习;出了项目,往往蒙头学习,忘了学以致用的道理。

时隔1个多月,再次开始我的Oracle源码系列博文。

 

 

--Oracle数据库管理-从入门到精通呢

--第6章-索引和约束
--约束部分

DROP TABLE bookCategory;                 

--代码6.3 创建表并指定主键                 
CREATE TABLE bookCategory(
   cate_id INT PRIMARY KEY,       --图书分类Id,主键
   cate_name VARCHAR2(20),        --图书分类名称
   --图书分类描述
   cate_desc VARCHAR2(500)        
);                                  

SELECT constraint_name cons_name, constraint_type cons_type, status FROM user_constraints WHERE table_name = 'BOOKCATEGORY';
 
 
DROP TABLE bookCategory;

--代码6.4 在列级别使用Contraint关键字
CREATE TABLE bookCategory(
   cate_id INT CONSTRAINT pk_cate_id PRIMARY KEY,               --图书分类Id,主键     
   cate_name VARCHAR2(20) CONSTRAINT nn_cate_name NOT NULL,    --图书分类名称,指定非空约束
   --指定分类描述  
   cate_description VARCHAR2(200)                                
);


DROP TABLE bookCategory;

--代码6.5 在表级别使用Contraint关键字
CREATE TABLE bookCategory(
    cate_code CHAR(10),
    cate_name VARCHAR2(20),
    cate_description VARCHAR2(200),
    --定义行外约束
    CONSTRAINT pk_cate_pd PRIMARY KEY (cate_code,cate_name)        --指定复合主键              
)

--代码6.6 在列级别使用REFERENCES创建外键
DROP TABLE bookCategory;                                          --删除bookCategory表,并重新创建
CREATE TABLE bookCategory(
     cate_id INT CONSTRAINT pk_cate_id PRIMARY KEY,             --图书分类Id,主键     
     cate_name VARCHAR2(20) CONSTRAINT nn_cate_name NOT NULL,  --图书分类名称,指定非空约束
     --指定分类描述
     cate_description VARCHAR2(200)                               
  );  
DROP TABLE books                                                  --删除books表,并重新创建
CREATE TABLE books(
   book_id INT CONSTRAINT pk_book_id PRIMARY KEY,               --指定图书表的主键     
   book_name VARCHAR2(50),                                        --指定图书名称
   --指定分类id
   cate_id REFERENCES bookCategory(cate_id)                       
); 

SELECT constraint_name cons_name, constraint_type cons_type, status FROM user_constraints WHERE table_name = 'BOOKS';

DROP TABLE books                                                  --删除books表,并重新创建
CREATE TABLE books(
   book_id INT CONSTRAINT pk_book_id PRIMARY KEY,               --指定图书表的主键     
   book_name VARCHAR2(50),                                        --指定图书名称
   cate_id INT,
   --使用表级别的语法创建books表
   CONSTRAINT fk_cate_id FOREIGN KEY (cate_id) REFERENCES bookCategory (cate_id) 
   ON DELETE CASCADE                                            --定义外键约束并指定级联删除   
); 


--代码6.7 在表级别创建外键
DROP TABLE books                                                  --删除books表,并重新创建
CREATE TABLE books(
   book_id INT CONSTRAINT pk_book_id PRIMARY KEY,               --指定图书表的主键     
   book_name VARCHAR2(50),                                        --指定图书名称
   cate_id INT,
   --使用表级别的语法创建books表
   CONSTRAINT fk_cate_id FOREIGN KEY (cate_id) REFERENCES bookCategory (cate_id) 
   --定义外键约束并指定级联置空
   ON DELETE SET NULL                                          
); 

select * from bookCategory;
--索引与外键的示例
--插入几个图书目录
INSERT INTO bookCategory VALUES(1,'计算机图书','计算机软件、数据库、编程类图书');
INSERT INTO bookCategory VALUES(2,'经管类图书','经济管理、财务会计、统计分析图书');
INSERT INTO bookCategory VALUES(3,'文学艺术类','小说、绘图、音乐、电影');
--插入来自all_objects中的图书信息
INSERT INTO books SELECT ROWNUM+2,object_name,decode(mod(rownum,2),0,1,2) FROM all_objects;

select * from books where rownum<100;
truncate table books;
insert into books values(168,'不忘初心、方得始终',3);
insert into books values(169,'学好Oracle,走遍天下都不怕!',1);

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值