创建表、修改表、删除表的方法 ,创建主键约束、外键约束、用户自定义约束的方法 ,创建查询表的方法及使用截断表的方法,理解约束在数据库中的作用

撰写人——软工二班——陈喜平
– 实验内容:

– 一、创建表

– 创建图书馆管理系统所涉及的表

– 创建产品销售系统所涉及的表

– 图书表book(bid,bname,price,qty)

– 书库表lib(lid,lname,address)

– 读者表reader(rid,rname,dept)

– 借阅表loan(bid,rid,loanDate)

-- set pagesize 50;

-- set linesize 300;



-- DROP TABLE if exists book;

-- DROP TABLE if exists lib;

-- DROP TABLE if exists reader;

-- DROP TABLE if exists loan;



-- CREATE TABLE book(

-- 	bid char(10),

-- 	bname varchar(30),

-- 	price number(8,2)

-- );



-- CREATE TABLE lib(

-- 	lid char(10),

-- 	lname varchar(30),

-- 	address varchar(100)

-- );





-- CREATE TABLE reader(

-- 	rid char(10),

-- 	rname varchar(30),

-- 	dept varchar(20)

-- );



-- CREATE TABLE loan(

-- 	nid char(10),

-- 	bid char(10),

-- 	rid char(10),

-- 	loanDate char(50)

-- );






在这里插入图片描述

-- insert into book(bid, bname, price)

-- values(

-- 	'book001',

-- 	'ComputerBook',

-- 	500

-- );



-- insert into book(bid, bname, price)

-- values(

-- 	'book002',

-- 	'AB360',

-- 	360

-- );



-- insert into book(bid, bname, price)

-- values(

-- 	'book003',

-- 	'CBook',

-- 	25

-- );



-- insert into lib(lid, lname, address)

-- values(

-- 	'lib001',

-- 	'History',

-- 	'HuNanLouDi001'

-- );



-- insert into lib(lid, lname, address)

-- values(

-- 	'lib002',

-- 	'Math',

-- 	'HuNanLouDi002'

-- );



-- prompt finish demo data for book;

在这里插入图片描述

-- DROP TABLE book;

-- DROP TABLE lib;

-- DROP TABLE reader;

-- DROP TABLE loan;


-- drop table book cascade constraints;

– 二、修改表

– 1、为各表创建约束

– DBMS自动实现数据的完整性—借助于约束的作用:保证数据库中永久数据的正确性(主键唯一,不能引用不存在的对象,满足用户定义的条件)

– 创建主键约束(为图书表、读者表、借阅表创建主键)

-- ALTER TABLE book

-- add constraint pk_book primary key(bid);

-- ALTER TABLE reader

-- add constraint pk_reader primary key(rid);

-- ALTER TABLE loan

-- add constraint pk_loan primary key(nid);
-- select * from book;

-- select * from lib;

-- select * from reader;

-- select * from loan;

– 主键:唯一标识,该字段的值必须与别的实体必须是不一样的

– 由dbms保证数据的正确性

– 创建外键约束(为借阅表创建外键)

-- ALTER TABLE loan

-- add constraint fk1_loan foreign key(bid) REFERENCES book(bid);
-- ALTER TABLE loan

-- add constraint fk2_loan foreign key(rid) REFERENCES reader(rid);

– 创建用户自定义约束(指定图书表中价格必须为正值)

-- ALTER TABLE book

-- add constraint ck_book check (price>0);

– 2、对各表进行字段调整操作

– 添加新字段

– 在图书表中添加“是否热门”字段

-- alter table book

-- add (popular varchar2(30) default '是否热门' not null);

– 修改字段类型

-- alter table book

-- modify (popular varchar2(20) default 'IsPopular');

– 修改图书表中书名字段为变长字符串

-- alter table book 

-- modify (bname varchar2(30)); 



-- alter table book 

-- modify (bid char(10)); 



-- alter table book 

-- modify (bname varchar2(15)); 



-- alter table lib 

-- modify (lid varchar(10)); 



-- alter table lib 

-- modify (lname varchar(15)); 



-- alter table lib 

-- modify (address varchar(16)); 



-- alter table lib 

-- modify (address varchar(20)); 





– 删除不用的字段

– 删除图书表中“是否热门”字段

在这里插入图片描述

在这里插入图片描述

-- alter table book

-- drop column popular;

– 三、删除表

– 删除无关联表

-- DROP TABLE lib;

– 删除包含外键引用的表

-- DROP TABLE book cascade constraints;

-- DROP TABLE reader cascade constraints;

– 四、创建查询表

– 创建所有昂贵书籍表

-- CREATE TABLE expensivebook as 

-- select * 

-- from book 

-- where price>300;



在这里插入图片描述
– 五、对借阅情况表进行截断操作

-- delete * from loan

– dml 日志多

– ddl 日志少

-- truncate loan;

-- select * from book where bid in(

-- 	select bid

-- 	from book

-- 	group by bid

-- 	having count(bid)>1);

猜你喜欢

转载自blog.csdn.net/qq_41518597/article/details/83149835