数据库基础知识点(系列五)

创建表,设置约束,修改表,删除表,表中数据的操作(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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值