数据库基础知识点(系列五)
创建表,设置约束,修改表,删除表,表中数据的操作(insert,修改,删除)
1.在第5章习题创建的 “仓库库存”数据库中完成下列操作。
(1)创建“商品”表,表结构如表6-4:
表6-4 “goods”商品表
(2)创建“store”仓库表,表结构如表6-5:
表6-5 “store”仓库表
(3)创建“invent”库存情况表,表结构如表6-6:
表6-6 “invent”库存情况表
(3)创建“manager”管理员表,表结构如表6-7:
表6-7 “manager”管理员表
答:(1)
USE仓库库存
GO
CREATE TABLE goods
(gno char(6) PRIMARY KEY, //主键
gname nvarchar(10) NOT NULL, //不能为空值
price float NOT NULL,
producer nvarchar(30) NOT NULL
)
CREATE TABLE store
(stno char(3) PRIMARY KEY,
address nvarchar(30) NOT NULL,
telephone varchar(11) check(telephone like '[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]' ),
capacity smallint
)
CREATE TABLE invent
(stno char(3) foreign key references store(stno),
gno char(6) foreign key references goods(gno),
number int,
primary key(stno,gno)
)
CREATE TABLE manager
(mno char(3) PRIMARY KEY,
mname nvarchar(10) NOT NULL,
sex nchar(1) check(sex in ('男','女')),
birthday date check(birthday between '19570101' and '20100101'),
stno char(3) foreign key references store(stno)
)
Alter table store
Add check(capacity>=sum(number))
2.建立商品表、仓库表、库存情况表和管理员表四表之间的关系图。
答:略。
3.分别给商品表、仓库表、库存情况表和管理员表添加数据。
答:例如,
INSERT INTO goods VALUES('bx-179','冰箱',3200,'青岛海尔')
INSERT INTO store VALUES('001','1号楼','89000001',69)
INSERT INTO invent VALUES('004','bx-179',5)
INSERT INTO manager VALUES('101','张力','男','1989-2-3','001')
4. 在teaching教学库创建一个student1表,包含“学号”、“姓名”和“年级”列,要求能够与student表同步插入、修改和删除数据。
答:CREATE TABLE student1
( sno char(7) PRIMARY KEY,
sname nvarchar(10) NOT NULL,
grade nchar(3) NULL,
)
MERGE student1 AS d USING student AS s
ON s.ProductID=d.ProductId WHEN NOT MATCHED BY TARGET
THEN INSERT(sno,sname,grade) VALUES(s.sno, s.sname, s.grade)
WHEN NOT MATCHED BY SOURCE THEN DELETE
WHEN MATCHED THEN
UPDATE SET d.sname = s.sname, d.grade = s.grade;