实验名称 | 实验四 SQL的数据定义语句 | 实验室 |
| |||||
实验 目的 或 要求 |
| |||||||
实验 环境 | SQL Server 2014 | |||||||
实验内容或 实验题目 |
CREATE DATABASE ecommerce1 2、在数据库ecommerce1中练习模式的创建和删除语句(如给用户li创建一个学生管理模式“S-T”)(需要先添加一个用户li) 3、在数据库ecommerce1中执行SQL语句操作,创建如下表: 商品类别表:category(catno,catname,describe),主码为catno 商品表:product(prono,proname,brand,stock,supno,price,cost,picture,catno,ontime,status),要求proname不能取空值 供应商表:supplier(supno,supname,contactname,address,telephone),主码为(supno),属性supname不能取空值 订单表:orders(orderno,memno,prono,qty,discount,totalmoney,orderdate,paydate), 属性prono参照商品表product的属性prono,memno参照会员表member的属性memno 会员表:member(memno,memname,address,telephone,username,userpwd) 员工表:employee(empno,empname,depno,sex,telephone,username,userpwd) 部门表:department(depno,depname,manager,deptotal) (说明:表的属性设置具体参照实验二即可) 4、使用sql语句修改表: (1)为订单表增加一属性deliverdate(发货日期),数据类型为datetime,允许取空值。 (2)修改商品表中属性列ontime的数据类型为date (3)为商品类别表中属性列catname增加不能取空值(not null)的约束 (4)为商品表增加一个主码约束,约束名为pk1,主码为prono (5)为员工表employee的属性userpwd增加一个默认值约束,默认值为123456,约束名为DF1 (6)删除约束DF1 (7)为会员表member属性列username添加取唯一值的约束,约束名为UK1 (8)删除订单表中新增的属性deliverdate (9)为商品表中属性列catno增加一个外码约束,约束名为FK1,要求其参照商品类别表中主码catno的值 (10)删除会员表、员工表和部门表 | |||||||
实 验 原 理 ( 操 作 步 骤 ) | 步骤如下: 1.通过SQL语句创建名为ecommerce1的数据库: CREATE DATABASE ecommerce1 2.在数据库ecommerce1中练习模式的创建和删除语句(如给用户li创建一个学生管理模式“S-T”)(需要先添加一个用户li) 通过GUI创建用户li后,输入SQL命令: CREATE SCHEMA S_T AUTHORIZATION li; 3.在数据库ecommerce1中执行SQL语句操作,创建如下表:
create table category ( catno int not null, catname varchar(30) not null, describe text, primary key (catno) );
注:需先完成供应商表才可执行此sql命令 create table product ( prono int not null, proname varchar(30) not null, brand varchar(30), stock int, supno int, price smallmoney, cost smallmoney, picture varchar(30), catno int, ontime datetime default getdate(), satus smallint not null default 0 check (satus in (0, 1, 2)), primary key (prono), foreign key (supno) references supplier(supno), foreign key (catno) references category(catno) );
create table supplier ( supno int not null, supname varchar(30) not null, contactname varchar(20), address varchar(30), telephone varchar(15), primary key (supno) );
注:需先创建下面的会员表 create table orders ( orderno int not null, memno int, prono int, qty int not null, discount money not null default 0, totalmoney money not null, orderdate datetime not null, paydate datetime, primary key (orderno), foreign key (memno) references member(memno), foreign key (prono) references product(prono) );
create table member ( memno int not null, memname varchar(30) not null, address varchar(50), telephone varchar(15), username varchar(30) not null unique, userpwd varchar(30) not null, primary key (memno) );
先创建没有外键约束的department表 CREATE TABLE department ( depno INT NOT NULL, depname VARCHAR(30) NOT NULL, manager INT, deptotal INT, PRIMARY KEY (depno) ); 再正常创建employee表 create table employee ( empno int not null, empname varchar(30) not null, depno int, sex varchar(4), telephone varchar(15), username varchar(30) not null, userpwd varchar(30) not null, primary key (empno), foreign key (depno) references department(depno) ); 创建员工表后,再修改department的外键关系 alter table department add constaint manager_department foreign key (manager) references employee(empno); 4.使用sql语句修改表: (1)为订单表增加一属性deliverdate(发货日期),数据类型为datetime,允许取空值。 alter table orders add deliverdate datetime null; (2)修改商品表中属性列ontime的数据类型为date alter table product alter column ontime date; (3)为商品类别表中属性列catname增加不能取空值(not null)的约束 alter table category alter column catname varchar(30) not null; (4)为商品表增加一个主码约束,约束名为pk1,主码为prono alter table product add constraint pk1 primary key (prono); (5)为员工表employee的属性userpwd增加一个默认值约束,默认值为123456,约束名为DF1 alter table employee add constraint df1 default '123456' for userpwd; (6)删除约束DF1 alter table employee drop constraint df1; (7)为会员表member属性列username添加取唯一值的约束,约束名为UK1 alter table member add constraint UK1 unique (username); (8)删除订单表中新增的属性deliverdate alter table orders drop column deliverdate (9)为商品表中属性列catno增加一个外码约束,约束名为FK1,要求其参照商品类别表中主码catno的值 alter table product add constraint FK1 foreign key(catno) references category(catno); (10)删除会员表、员工表和部门表 drop table member; drop table employee; drop table department; |
组内 分工 ( 可选 ) |
|
实 验 结 果 分 析 及 心 得 体 会 | 实验运行结果或者是验证性的结果: 分析结果以及在试验中应注意的问题:
|