数据库实验2 MYSQL语句查询

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二:SQL语言的使用

李建中高宏邹兆年

1. 实验目的

在熟练运用MySQL基本命令的基础上,掌握SQL语言的使用方法,学会使用SQL语言进行关系数据库查询,特别是聚集查询、连接查询和嵌套查询。

2. 实验环境

Windows XP上安装的MySQL 5.1.41

3. 实验步骤

3.1 创建数据库

创建关系数据库COMPANY,其模式如下(下划线表示关系的主键):

关系EMPLOYEE (ENAME, ESSN, BDATE, ADDRESS, SEX, SALARY, SUPERSSN, DNO)

ENAME: 工作人员名字,

ESSN: 工作人员身份证号,

BDATE: 工作人员生日,

ADDRESS: 工作人员住址,

SEX: 工作人员性别,

SALARY: 工作人员工资,

SUPERSSN: 工作人员直接领导的身份证号,

DNO: 所属部门号

关系DEPARTMENT (DNAME, DNO, MGRSSN, MGRSTARTDATE)

DNAME: 部门名,

DNEMBER: 部门号,

MGRSSN: 部门领导身份证号,

MGRSTARTDATE: 部门领导开始领导工作的日期

关系DEPART_LOCATION (DNO, DLOCATION)

DNO: 部门号,

DLOCATION: 部门所在地

关系PROJECT (PNAME, PNO, PLOCATION, DNO)

PNAME: 工程项目名,

PNO: 工程项目号,

PLOCATION: 工程项目所在地,

DNO: 工程项目所属部门号

关系WORKS_ON (ESSN, PNO, HOURS)

ESSN: 工作人员身份证号,

PNO: 工程项目号,

HOURS: 工作小时数

关系DEPENDENT (ESSN, SEX, BDATE, RELATIONSHIP)

ESSN: 工作人员身份证号,

SEX: 家属性别,

BDATE: 家属生日,

RELATIONSHIP: 与工作人员关系

3.2 向数据库中添加数据

向数据库COMPANY中添加数据,以备后续查询使用。

要求数据库中至少包含50个员工,5个部门,10项工程,并且必须包含“研发部”、编号为P1和P2的项目、名叫张红的员工。

3.3 使用SQL语言进行查询

使用SQL语言完成如下查询:

1:参加了项目编号为P2的项目的员工号;

2:参加了项目名为“哈同公路”的员工名字;

3:在“研发部”工作的所有工作人员的名字;

4:在“研发部”工作的所有工作人员的名字和地址;

5:在“研发部”工作且工资低于3000元的员工名字和地址;

6:没有参加项目编号为P1的项目的员工姓名;

7:没有家属的工作人员的名字;

8:由张红领导的工作人员的姓名和所在部门的名字;9:至少参加了项目编号为P1和P2的项目的员工号;

10:参加了全部项目的员工号码和姓名;

11:每个部门的员工数;

12:每个部门员工的平均工资、最高工资和最低工资;

13:员工平均工资低于3000元的部门名称;

14:每个项目参与员工的平均年龄;

15:至少参与了3个项目的员工名字;

17:至少参与了2个大项目的员工名字,其中大项目的定义是参与员工数超过10人的项目;

18:每个部门的员工小时平均工资;

19:每个部门男、女员工的小时平均工资;

20:居住地、所在部门和所参与项目均不在同一地点的员工姓名。

4. 实验遇到的问题与体会

1.指令较长,容易打错,问题一方面出在那么长的指令,打错字是正常的。

解决方法:在输入一行指令之后就进行检查,及时发现漏洞;而指令过长时,最好将指令分成几行输入,这样能够使得指令更容易检查和分析,而且正确的指令行也能够重复利用。

2.SQL语句种类不少,而这些语句的互相叠加使用之后变化更多,让使用在苦恼于该用什么指令,而这个指令又可以和哪些语句搭配,而胡乱使用又担心语法出错。

解决方法:首先是看书,对SQL语句有大致了解,知道哥哥语句的功能;然后参照例题去完成实验布置的题目;对于担心出错的问题,可以参照SQL查询语句的语法结构:

SELECT

[ALL | DISTINCT | DISTINCTROW ]

[HIGH_PRIORITY]

[STRAIGHT_JOIN]

[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]

[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]

select_expr, ...

[INTO OUTFILE 'file_name' export_options

| INTO DUMPFILE 'file_name']

[FROM table_references

[WHERE where_definition]

[GROUP BY {col_name | expr | position}

[ASC | DESC], ... [WITH ROLLUP]]

[HAVING where_definition]

[ORDER BY {col_name | expr | position}

[ASC | DESC] , ...]

相关文档
最新文档