任务描述:
- 关系模型
1、代理商(代理商编号、姓名、地址、邮政编码、提成金额、提成比例)
其中代理商编号为primary key(主码)
2、客户(客户编号、姓名、地址、邮政编码、收支差额、贷款限额、代理商编号)
其中客户编号为primary key(主码)
3.产品(产品编号、描述信息、库存量、类别、仓库的编号、价格)
其中产品的编号为primary key(主码)
4.订单(订单编号、订货日期、客户编号)
5.订货项目(订单编号、产品编号、订购数量、订购单价)
- 原始数据
1.对于代理商(代理商编号、姓名、地址、邮政编码、提成金额、提成比例)
01、联邦、东环路1号、541001、30000.00、40
02、惠普、东环路2号、541002、4000.00、10
03、三洋、东环路3号、541003、10000.00、30
04、联想、东环路4号、541004、100000.00、60
05、海尔、东环路5号、541005、200000.00、60
2.客户(客户编号、姓名、地址、邮政编码、收支差额、贷款限额、代理商编号)
100、张三、西环路1号、100001、10.00、100.00、02
200、李四、西环路2号、100001、-10.00、10.00、04
300、王五、西环路3号、100001、100.00、1000.00、02
400、赵六、西环路4号、100001、600.00、2000.00、01
500、洪七、西环路5号、100001、300.00、900.00、05
600、李明、西环路6号、100001、20.00、300.00、03
700、张进、西环路7号、100001、400.00、1000.00、03
3.产品(产品的编号、描述信息、库存量、类别、仓库的编号、价格)
0011、药物,单位(瓶)、1000、12、1001、40.00
0022、机器,单位(件)、300、3、1002、50000.00
0033、中药,单位(包)、800、12、1001、300.00
0044、软件,单位(套)、1500、10、1003、2000.00
0055、家具,单位(件)、6000、3、1002、1000.00
0066、小型机,单位(台)、10000、3、1002、200000.00
4.订单(订单编号、订货日期、客户编号)
111、2000-10-01、200
222、2000-09-01、200
333、2001-01-01、500
444、2002-02-02、300
555、2003-03-03、100
5.订货项目(订单编号、产品编号、订购数量、订购单价)
111、0033、200、280.00
222、0066、6000、150000.00
333、0033、100、280.00
444、0011、300、39.00
555、0055、5500、950.00
444、0044、1000、1900.00
5、创建如下两个表
表1 部门表 bm
部门编号 bmbh int pk主键 从1开始每次增长1
部门名称 bmmc nvarchar(50) 不为空 唯一键(不重复)
表2 员工表 yg
工号 gh int pk 从100001开始每次增长1
姓名 xm nvarchar(30) 不为空
性别 xb nvarchar(1) 不为空,默认为“男”
入职日期 rzrq datetime 默认为当前日期 getdate()
工资 gz numeric(10,2) 约束必须是0-999999之间
部门号 bmh int 可空 外键
sql脚本:
--创建数据库 drop database Empdb; go create database EmpDB on ( name='EmpDB', --数据库名称 filename='e:\data\empdb.mdf' ) go use EmpDB go --表1 部门表 bm --部门编号 bmbh int pk主键 从1开始每次增长1 --部门名称 bmmc nvarchar(50) 不为空 唯一键(不重复) if OBJECT_ID('bm') is not null --根据名称查找对象的编号,如果不为空则对象存在 drop table bm go create table bm --创建名称为bm的表 ( bmbh int identity(1,1) primary key, --部门编号 数字类型 从1开始每次增长1 主键 bmmc nvarchar(50) unique not null --部门名称 字符类型 长度50 唯一键 不为空 ) go --表2 员工表 yg --工号 gh int pk 从100001开始每次增长1 --姓名 xm nvarchar(30) 不为空 --性别 xb nvarchar(1) 不为空,默认为“男” --入职日期 rzrq datetime 默认为当前日期 getdate() --工资 gz numeric(10,2) 约束必须是0-999999之间 --部门号 bmh int 可空 外键 if OBJECT_ID('yg') is not null --根据名称查找对象的编号,如果不为空则对象存在 drop table yg go create table yg --创建名称为bm的表 ( gh int identity(100001,1) primary key, --工号 数字类型 从100001开始每次增长1 主键 xm nvarchar(30) not null, --姓名 字符类型 长度30 不为空 xb nvarchar(1) default('男'), --性别 字符类型 长度1 默认值为男 rzrq datetime default(getdate()), --入职日期 日期时间类型 默认值为当前系统时间 gc numeric(10,2), bmh int references bm(bmbh) --外键引用主键表的字段 ) go --加check约束 ALTER TABLE yg ADD CONSTRAINT ck_yg_gc CHECK (gc >= 0 AND gc <= 999999) --添加数据 insert into bm(bmmc) values('人事部'); insert into bm(bmmc) values('财务部'); insert into bm(bmmc) values('技术部'); insert into yg(xm,xb, gc,bmh) values('张学友','男',18952.88,1); insert into yg(xm,xb, gc,bmh) values('刘德华','男',16952.53,2); insert into yg(xm,xb, gc,bmh) values('李焕英','女',13678.79,3); --查询数据 select bmbh,bmmc from bm; --查询bm表中的bmbh,bmmc列 select * from yg where xb='男' --查询yg表中xb='男'的所有列 --更新数据 update yg set gc=gc+10000 where xb='女'; --更新yg表,将xb=女的gc增加10000 --删除 delete from bm; --删除bm表中的所有数据 delete from yg where gc>20000 --删除yg表中工资超过20000的员工
6、创建如下两个表
1、创建数据库CarDB,存放到d:\data目录下
2、创建类型表,CarType,字段如上
bh 编号 int 自动增加(1001-9999)主键
mc 名称 nvarchar(50) 不允许为空 唯一键
3、创建汽车表 Car
qcbh 汽车编号 int 自动增长 主键
qcmc 汽车名称 nvarchar(50) 不允许为空
qcnb 汽车类别 int 外键,链接到CarType表
zdss 最大时速 int 检查约束只能取值在20-1000之间
scrq 生产日期 datetime 默认为当前日期 getdate()