数据库上机实验04700.docx

上传人:b****1 文档编号:474445 上传时间:2022-10-10 格式:DOCX 页数:31 大小:2.14MB
下载 相关 举报
数据库上机实验04700.docx_第1页
第1页 / 共31页
数据库上机实验04700.docx_第2页
第2页 / 共31页
数据库上机实验04700.docx_第3页
第3页 / 共31页
数据库上机实验04700.docx_第4页
第4页 / 共31页
数据库上机实验04700.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

数据库上机实验04700.docx

《数据库上机实验04700.docx》由会员分享,可在线阅读,更多相关《数据库上机实验04700.docx(31页珍藏版)》请在冰豆网上搜索。

数据库上机实验04700.docx

数据库上机实验04700

 

《数据库原理》上机实验报告

 

学号:

201410401226

姓名:

易磊

班级:

自动化142

指导教师:

张光辉

 

昆明理工大学信息工程与自动化学院

2006年12月

一、实验目的与要求:

●熟练使用SQL定义子语言、操纵子语言命令语句

●掌握关系模型上的完整性约束机制

●掌握一定的数据库管理技术

●能完成简单的数据库应用开发

二、实验内容及学时安排(总学时:

8)

(一)数据定义子语言实验(2学时)

实验1:

利用SQL语句创建Employee数据库

CREATEDATABASEEmployee;

实验2:

利用SQL语句在Employee数据库中创建人员表person、月薪表salary及部门表dept。

要求:

按表1、表达、表3中的字段说明创建

表1person表结构

字段名

数据类型

字段长度

允许空否

字段说明及备注

备注

P_no

Char

6

NotNull

工号,主键

P_name

Varchar

10

NotNull

姓名

Sex

Char

2

NotNull

性别

Birthdate

Datetime

8

Null

出生日期

Prof

Varchar

10

Null

职称

Deptno

Char

4

NotNull

部门代码

实验12以后作为外键(参照dept表)

表2salary表结构

字段名

数据类型

字段长度

允许空否

字段说明及备注

P_no

Char

6

NotNull

工号,主键

实验12以后作为外键(参照person表)

Base

Dec

5

Null

基本工资

Bonus

Dec

5

Null

奖金,要求>50

Fact

Dec

5

Null

实发工资=基本工资+奖金

Month

Int

2

NotNull

月份

表3dept表结构

字段名

数据类型

字段长度

允许空否

字段说明

Deptno

Char

4

NotNull

部门代码,主键,

Dname

Varchar

10

NotNull

部门名称

CREATETABLEdept

(DeptnoCHAR(4)NOTNULLPRIMARYKEY,

DnameVARCHAR(10)NOTNULL

);

CREATETABLEperson

(P_noCHAR(6)NOTNULLPRIMARYKEY,

P_nameVARCHAR(10)NOTNULL,

SexCHAR

(2)NOTNULL,

BirthdayDatetime,

ProfVARCHAR(10),

DeptnoCHAR(4)NOTNULL

);

CREATETABLEsalary

(P_noCHAR(6)NOTNULLPRIMARYKEY,

BaseDec(5),

BonusDec(5)CHECK(Bonus>50),

FactASBase+Bonus,

Monthint,

);

 

(二)数据操纵子语言实验(4学时)

实验3:

利用SQL语句向表person、salary和dept中插入数据。

要求:

按表4、表5、表6中的数据插入。

表4表person中的数据

P_no

P_name

Sex

BirthDate

Prof

Deptno

000001

磊少

1973-4-7

中级

0001

000002

谢文东

1975-2-14

中级

0001

000003

李勇

1970-8-25

高级

0002

000004

廖小灵

1979-8-6

初级

0002

000005

梁晨晨

1970-8-25

中级

0003

000006

罗向冬

1979-5-11

初级

0003

000007

肖家寨

1963-7-14

高级

0003

/*CREATEDATABASEEmployee;*/

/*CREATETABLEperson

(P_noCHAR(6)NOTNULLPRIMARYKEY,

P_nameVARCHAR(10)NOTNULL,

SexCHAR

(2)NOTNULL,

BirthdayDatetime,

ProfVARCHAR(10),

DeptnoCHAR(4)NOTNULL

);

CREATETABLEsalary

(P_noCHAR(6)NOTNULLPRIMARYKEY,

BaseDec(5),

BonusDec(5)CHECK(Bonus>50),

FactASBase+Bonus,

Monthint,

);

CREATETABLEdept

(DeptnoCHAR(4)NOTNULLPRIMARYKEY,

DnameVARCHAR(10)NOTNULL

);*/

INSERTINTOperson(P_no,P_name,Sex,BirthDate,Prof,Deptno)

VALUES('000001','磊少','男','1973-4-7','中级','0001');

INSERTINTOperson(P_no,P_name,Sex,BirthDate,Prof,Deptno)

VALUES('000002','谢文东','男','1975-2-14','中级','0001');

INSERTINTOperson(P_no,P_name,Sex,BirthDate,Prof,Deptno)

VALUES('000003','李勇','男','1970-8-25','高级','0002');

INSERTINTOperson(P_no,P_name,Sex,BirthDate,Prof,Deptno)

VALUES('000004','廖小灵','女','1979-8-6','初级','0002');

INSERTINTOperson(P_no,P_name,Sex,BirthDate,Prof,Deptno)

VALUES('000005','梁晨晨','女','1970-8-25','中级','0003');

INSERTINTOperson(P_no,P_name,Sex,BirthDate,Prof,Deptno)

VALUES('000006','罗向冬','男','1979-5-11','初级','0003');

INSERTINTOperson(P_no,P_name,Sex,BirthDate,Prof,Deptno)

VALUES('000007','肖家寨','男','1963-7-14','高级','0003');

 

答案1:

INSERTINTOperson(P_no,P_name,Sex,BirthDate,Prof,Deptno)

VALUES(‘000001’,‘磊少’,‘男’,‘1973-4-7’,‘中级’,‘0001’);

答案2:

INSERTINTOperson

VALUES(‘000001’,‘磊少’,‘男’,‘1973-4-7’,‘中级’,‘0001’);

 

表5表salary中的数据

P_no

Base

Bonus

Fact

S_month

000001

2100

300

1

000002

1800

300

1

000003

2800

280

1

000004

2500

250

1

000005

2300

275

1

000006

1750

130

1

000007

2400

210

1

答案1:

INSERTINTOsalary(P_no,Base,Bonus,Fact,Month)

VALUES(‘000001’,2100,300,NULL,1);

答案2:

INSERTINTOsalary

VALUES(‘000001’,2100,300,NULL,1);

答案3:

INSERTINTOsalary(P_no,Base,Bonus,Month)

VALUES(‘000001’,2100,300,1);

表6表dept中的数据

Deptno

Dname

0001

人事部

0002

财务部

0003

市场部

答案1:

INSERTINTOdept(Deptno,Dname)

VALUES(‘001’,‘人事部’);

答案2:

INSERTINTOdept

VALUES(‘001’,‘人事部’);

 

 

实验4:

(1)利用SQL语句修改表中的数据。

要求:

将salary表中工号为000006的员工工资增加为1800元,奖金增加为160元。

UPDATEsalarySETBase=1800,Bonus=160WHEREP_no=‘000006’;

(2)利用SQL语句删除表中的数据。

要求:

删除 person表中工号为000007的员工数据。

DELETEFROMpersonWHEREP_no=‘000007’;

(3)利用SQL语句查询person表中的所有数据。

SELECT*FROMperson;

实验5:

(1)更新视图

要求:

将员工视图PersonView中姓名为王云的员工职称改为高职

CREATEVIEWPersonView

AS

SELECT*

FROMperson

UPDATEPersonView

SETprof=’高职’

WHEREP_name=‘磊少’;

(2)向视图中插入数据

要求:

向视图PersonView中插入一行数据(‘000008’,‘刘美萍’,‘中级’,‘00002’)

INSERT

INTOPersonView(P_no,P_name,prof,Deptno)

VALUES(‘000008’,‘女’,‘中级’,‘00002’);

 

 

(3)删除视图

要求:

将视图PersonView删除

DROPVIEWPersonView;

实验6:

条件查询

要求:

(1)查询person表中所有不重复的职称。

SELECTDISTINCTprofFROMPerson;

(2)查询person表中职称为中级的所有员工数据。

SELECT*FROMpersonWHEREProf=‘中级’;

(3)查询person表中具有高级职称的男员工信息。

SELECT*FROMpersonWHEREProf=‘高级’ANDSex=‘男’;

(4)查询person表中姓名为王云、谢志文、罗向东的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1