当前位置:文档之家› 数据库实验三报告

数据库实验三报告

江西师范大学计算机信息工程学院学生实验报告专业___计算机科学与技术__ 姓名___燕悦__ 学号__1408091077_ 日期__ __
四.程序及运行结果(或实验数据记录及分析)
针对S_T数据库:
1)创建三个表:student course sc。

程序: use S_T go
/*创建Student表*/
create table student(
Sno char(5) primary key not null check(Sno like '[0-9][0-9][0-9][0-9][0-9]'), Sname char(20) not null,
Ssex char(2) not null check(Ssex in ('男','女')),
Sage smallint not null check(Sage between 14 and 38), Sdept char(20) not null );
/*创建Course表*/
create table course(
Cno char(4) not null primary key check(Cno like '[0-9][0-9][0-9][0-9]'),
Cname char(40) not null,
Cpno char(4),
Ccredit smallint not null );
/*创建SC表*/
create table sc(
Sno char(5) not null , Cno char(4) not null,
Grade smallint check(Grade between 0 and 100), primary key(Sno,Cno));
执行结果:
2)对course表进行修改。

程序:
/*修改course表,为Cpno列添加一个外键约束*/
alter table course
add foreign key (Cpno) references course(Cno);
执行结果:
3) 修改sc表,为Sno和Cno列添加一个外键约束
/*修改sc表,为Sno和Cno列添加一个外键约束*/ alter table sc
add foreign key (Sno) references student (Sno);
alter table sc
add foreign key (Cno) references course(Cno);
针对company数据库:
/*创建customer表*/
create table customer(
cust_id char(5) not null primary key check(cust_id like '[E-F][0-9][0-9][0-9][0-9]'), cust_name varchar(20) not null,
cust_addr varchar(40) not null,
cust_tel_no varchar(20) not null,
cust_zip char(6) not null,
)
/*创建表sales*/
create table sales(
order_no int not null primary key check(order_no like '[E-F][0-9][0-9][0-9][0-9]'), cust_id char(5) not null,
sale_id char(5) not null,
tot_amt numeric(9,2) not null,
order_date datetime not null,
)
/*创建表sale_item*/
create table sale_item(
order_no int not null check(order_no like '[E-F][0-9][0-9][0-9][0-9]'),
prod_id char(5) not null check(prod_id like '[E-F][0-9][0-9][0-9][0-9]'),
qty int not null,
unit_price numeric(7,2) not null,
order_date datetime null,
primary key(order_no,prod_id)
)
/*创建表product*/
create table product(
prod_id char(5) not null primary key check(prod_id like '[E-F][0-9][0-9][0-9][0-9]'),
prod_name varchar(20) not null,
)
执行结果:
2)sales中添加字段“发票号码” invoice_no,char(10),NOT NULL。

/*sales中添加字段“发票号码”*/
alter table sales
add invoice_no char(10) not null;
3)添加外键约束程序:
/*为sales表中的sales_id、cust_id添加外键约束*/
alter table sales
add foreign key(sale_id) references employee(emp_no), foreign key(cust_id) references customer(cust_id);
执行结果:
/*为sale_item表中的order_no、prod_id添加外键约束*/
alter table sale_item
add foreign key(order_no) references sales(order_no),
foreign key(prod_id) references product(prod_id);
4)添加核查约束:
/*将employee中的salary值限定在至之间*/
alter table employee
add check(salary between 1000 and 10000);
/*将employee中的emp_no设定为以“E"开头,后面跟位数字*/
alter table employee
add check(emp_no like '[E] [0-9] [0-9] [0-9] [0-9]');
/*将employee中的sex值限定取“男”和“女”*/
alter table employee
add check(sex in('男','女'));
/*将sales中的invoice_no设定以“I”字母开头,后面位数字*/
alter table sales
add check(invoice_no like ('[I] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]')) ;
执行结果:
5)把sales表中的invoice_no设置为唯一约束 alter table sales
add unique(invoice_no);
执行结果:。

相关主题