SQL SEVER以命令行的方式建立数据库

给出数据:

(1)Employee表

列名

数据类型

长度

是否允许为空

说明

EmployeeID

Char

4

员工编号,主键

Name

Char

10

姓名

Birthday

Date

3

出生日期

Sex

Bit

1

性别

Address

Char

20

地址

Zip

Char

6

邮编

PhoneNumber

Char

12

电话号码(唯一)

EmailAddress

Char

30

电子邮件地址(唯一)

DepartmentID

Char

3

员工部门号,外键

(2)Departments表

列名

数据类型

长度

是否允许为空

说明

DepartmentID

Char

3

员工部门号,主键

DepartmentName

Char

20

部门名(唯一)

Note

Text

16

备注

(3)Salary表

列名

数据类型

长度

是否允许为空

说明

EmployeeID

Char

4

员工编号,外键, 主键

Income

Float

8

收入

OutCome

Float

8

支出

Sdate

Date

3

主键

3. 对以上建立的3个表输入如下数据:

Departments表:

DepartmentID

DepartmentName

Note

1

财务部

财务部

2

研发部

研发部

3

人力资源部

人力资源部

Employee表:(性别“1”表示女,性别“0”表示男,)

EmployeeID

Name

Birthday

Sex

Address

Zip

PhoneNumber

EmailAddress

DepartmentID

1001

李勇

1978-3-12

0

河南郑州

475001

3880378

ly@henu.edu.cn

1

1002

王敏

1980-11-2

1

河南新乡

475002

0378311

wm@henu.edu.cn

1

1003

刘晨

1978-6-22

0

北京

475003

0378322

lc@henu.edu.cn

1

1004

周宏

1983-10-3

1

河北廊坊

475004

7865987

zh@ henu.edu.cn

1

2001

张立

1998-8-1

0

北京

475005

0378333

zl@henu.edu.cn

2

2002

刘毅

1988-1-23

0

江苏南京

475006

0378344

lyy@henu.edu.cn

2

2003

张玫

1981-3-15

1

陕西西安

475007

0378355

zm@henu.edu.cn

2

2004

王军

1979-5-12

0

山东威海

475008

5687967

wj@henu.edu.cn

2

3001

徐静

1990-8-12

1

山东青岛

475009

0378366

xj@henu.edu.cn

3

3002

赵军

1979-2-19

0

陕西榆林

475010

0378377

zj@henu.edu.cn

3

3003

王霞

1982-8-18

1

陕西延安

475011

7556677

wx@henu.edu.cn

3

Salary表:

EmployeeID

Income

OutCome

Sdaate

1001

3600

1500

2020-01-01

1002

3300

1000

2020-01-01

1001

3700

1200

2020-02-01

1002

4500

1600

2020-02-01

2001

4000

1600

2020-01-01

2002

3800

1800

2020-01-01

2003

3800

1500

2020-01-01

2004

5100

1800

2020-01-01

3001

4200

2000

2020-03-01

3002

4100

1800

2020-03-01

3003

4600

1400

2020-03-01

实现代码:

CREATE DATABASE s2131051217
USE TEST
CREATE TABLE Departments          
      (DepartmentID   CHAR(3) PRIMARY KEY not null, 
         /* 员工部门号,主键*/                  
        DepartmentName CHAR(20) UNIQUE not null,              /* 部门名(唯一)*/
        Note    TEXT                                 /* 备注*/
      ); 
CREATE TABLE Employee   ( EmployeeID CHAR(4) PRIMARY KEY not null, /*员工编号,主键*/
                                            Name CHAR(10) not null,        /*姓名*/
                                            Birthday DATE not null,        /*出生日期*/
                                            SEX BIT not null,              /*性别*/
                                            Address CHAR(20),     /*地址*/
                                            Zip CHAR(6),          /*邮编*/
                                            PhoneNumber CHAR(12) UNIQUE, /*电话号码(唯一)*/
                                            EmailAddress CHAR(30) UNIQUE not null,/*电子邮件地址(唯一)*/
                                            DepartmentID CHAR(3) FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID),/*员工部门号,外键*/
                                          );

 CREATE TABLE Salary          
      (EmployeeID   CHAR(4) not null, 
                    /* 员工编号,外键, 主键*/                  
       Income Float(8) not null,                     /* 收入*/
       OutCome  Float(8) not null,                          /* 支出*/
       Sdate  Date not null,                                /*主键*/
       PRIMARY KEY(EmployeeID,Sdate),
       FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID)
      ); 
      insert into Departments values
      ('1','财务部','财务部'),
      ('2','研发部','研发部'),
      ('3','人力资源部','人力资源部');
      insert into Employee values
      ('1001','李勇','1978-3-12','0','河南郑州','475001','3880378','ly@henu.edu.cn','1'),
      ('1002','王敏','1980-11-2','1','河南新乡','475002','0378311','wm@henu.edu.cn','1'),
      ('1003','刘晨','1978-6-22','0','北京','475003','0378322','lc@henu.edu.cn','1'),
      ('1004','周宏','1983-10-3','1','河北廊坊','475004','7865987','zh@ henu.edu.cn','1'),
      ('2001','张立','1998-8-1','0','北京','475005','0378333','zl@henu.edu.cn','2'),
      ('2002','刘毅','1988-1-23','0','江苏南京','475006','0378344','lyy@henu.edu.cn','2'),
      ('2003','张玫','1981-3-15','1','陕西西安','475007','0378355','zm@henu.edu.cn','2'),
      ('2004','王军','1979-5-12','0','山东威海','475008','5687967','wj@henu.edu.cn','2'),
      ('3001','徐静','1990-8-12','1','山东青岛','475009','0378366','xj@henu.edu.cn','3'),
      ('3002','赵军','1979-2-19','0','陕西榆林','475010','0378377','zj@henu.edu.cn','3'),
      ('3003','王霞','1982-8-18','1','陕西延安','475011','7556677','wx@henu.edu.cn','3');
       insert into Salary values
      ('1001','3600','1500','2020-01-01'),
      ('1002','3300','1000','2020-01-01'),
      ('1001','3700','1200','2020-02-01'),
      ('1002','4500','1600','2020-02-01'),
      ('2001','4000','1600','2020-01-01'),
      ('2002','3800','1800','2020-01-01'),
      ('2003','3800','1500','2020-01-01'),
      ('2004','5100','1800','2020-01-01'),
      ('3001','4200','2000','2020-03-01'),
      ('3002','4100','1800','2020-03-01'),
      ('3003','4600','1400','2020-03-01');

遇到问题:

在建表的过程中,我发现一个表中不能同时有两个主键,但是有时候,一个主键往往是没有办法确定它的唯一性的,所以这时候,我们就可以设置一个或者多个联合主键,就可以解决这样的问题。

在录入数据时,我曾遇到了两个问题:

①问题分析:在输入职员的发放工资日期时,编译器报错:违反了PRIMARY KEY 约束”PK_Salary_E25911A67ED375E5",不能在对象"dbo.Salary"中插入重复键。重复键值为 (2020-01-01).

解决问题:没有将联合主键弄好,导致输入主键相关数据时出现问题。

②问题分析:在输入职员的工资时,由于我输入有误,我在建表时将工资设置为唯一值,导致2003号员工张玫的工资也为3800时,就会出现错误。

解决问题:最后我想工资按理来说是可以重复的,后来我又对照作业里的数据表,才改正了我的错误,将工资那一列UNIQUE这一约束条件删除。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值