第10章上机练习

更新时间:2023-10-26 00:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

习题一

在student表和score表上进行查询 Student 表的定义 字段名 Id name sex birth 字段描述 学号 姓名 性别 出生年份 家庭住址 字段描述 编号 学号 课程名 分数 数据类型 Int(10) Varchar(4) year 主键 是 否 否 外键 否 否 否 否 否 否 非空 是 是 否 否 否 否 唯一 是 否 否 否 否 否 自增 否 否 否 否 否 否 Varchar(20) 否 department 院系 address Varchar(20) 否 Varchar(50) 否 Score表的定义 字段名 id Stu_id C_name grade 数据类型 Int(10) Int(10) Int(10) 主键 是 否 否 外键 否 否 否 否 非空 是 是 否 否 唯一 是 否 否 否 自增 是 否 否 否 Varchar(20) 否 use test;

create table student(

id int(10) primary key not null unique, name varchar(20) not null, sex varchar(4), birth year,

department varchar(20), address varchar(50) );

create table score(

id int(10) primary key not null unique auto_increment, stu_id int(10) not null, c_name varchar(20), grade int(10) );

Student表的记录 id 901 902 903 904 905 name 张老大 张老二 张三 李四 王五 sex 男 男 女 男 女 birth 1985 1986 1990 1990 1991 department 计算机系 中文系 中文系 英语系 英语系 address 北京市海淀区 北京市昌平区 湖南省永州市 辽宁省长春市 福建省厦门市 906 王六 男 1988 计算机系 湖南省衡阳市 Score表的记录 id 1 2 3 4 5 6 7 8 9 10 Stu_id 901 901 902 902 903 904 904 905 906 906 C_name 计算机 英语 计算机 中文 中文 计算机 英语 英语 计算机 英语 grade 98 80 65 83 95 70 92 94 90 85 执行下列操作: 1. 在查询之前,先创建student表和score表。 2. 按照表格增加记录

insert into student values(901,'张老大','男',1985,'计算机系','北京市海淀区'); insert into student values(902,'张老二','男',1986,'中文系','北京市昌平区'); insert into student values(903,'张三','女',1990,'中文系','湖南省永州市'); insert into student values(904,'李四','男',1990,'英语系','辽宁省长春市'); insert into student values(905,'王五','女',1991,'英语系','福建省厦门市'); insert into student values(906,'王六','男',1988,'计算机','系湖南省衡阳市'); select*from student;

insert into score values(1,901,'计算机',98); insert into score values(2,901,'英语',80); insert into score values(3,902,'计算机',65); insert into score values(4,902,'中文',83); insert into score values(5,903,'中文',95); insert into score values(6,904,'计算机',70); insert into score values(7,904,'英语',92); insert into score values(8,905,'英语',94); insert into score values(9,906,'计算机',90); insert into score values(10,906,'英语',85); select*from score;

3. 查询student表的所有记录 Select*from student;

4. 查询student 表的第2条和第4条记录 Select*from student limit 1,1; Select*from student limit 3,1;

5. 从student 表查询所有学生的学号id,姓名name,院系department的信息 Select id,name,department from student;

6. 从student表查询计算机系和英语系学生的信息

Select*from student where department='计算机系'; Select*from student where department='英语系';

7. 从student表查询年龄为18到22岁的学生信息 Select*from student where age between 18 and 22; 8. 从student表查询每个院系有多少人

Select department ,count(department)from student group by department; 9. 从score表中查询每个科目的最高分

Select c_name, max(grade)from score group by c_name; 10. 查询李四的考试科目(c_name)和考试成绩(grade) Select c_name,grade from score where stu_id=904;

11. 用连接查询方式查询所有学生的信息和考试信息。 Select c_name,student.id,name,sex,birth,address,grade from student,score score,stu_id=student.id and c_name; 12. 计算每个学生的总成绩

Select stu_id,sum(grade)from score group by stu_id; 13. 计算每个考试科目的平均成绩

Select c_name,avg(grade) from score group by c_name;

14. 查询计算机成绩低于95的学生信息 Select * from score where grade<95;

15. 查询同时参加计算机和英语考试的学生的信息

16. 将计算机成绩按从高到低进行排序

Select*from score where c_name= '计算机' order by grade DESC;

17. 从student表和score表中查询出学生的学号,然后合并查询结果 Select id from student union select stu_id from score;

18. 查询姓张和姓王的同学的姓名、院系、考试科目和成绩 Select*from info where name regexp '张|王';

19. 查询都是湖南的同学的姓名、年龄、院系、考试科目和成绩

习题二

创建数据库test,在数据库内创建表department和employee表 Department表的定义 字段名 D_id D_name function 字段描述 部门号 部门名称 部门职责 数据类型 Int(10) Varchar(20) Varchar(20) 主键 外键 是 否 否 否 否 否 非空 是 是 否 唯一 是 是 否 否 否 否 where

自增 address 字段名 id name sex Age D_id salary address 工作地点 字段描述 学号 姓名 性别 年龄 部门号 工资 工作地点 Varchar(30) 数据类型 Int(10) Varchar(20) Varchar(4) Int(5) Int(10) float Varchar(50) 否 否 否 非空 是 是 否 否 否 否 否 否 唯一 是 是 否 否 否 否 否 否 自增 否 否 否 否 否 否 否 Employee表的定义 主键 外键 是 否 否 否 否 否 否 否 否 否 否 否 否 否 Department表的记录 D_id 1001 1002 1003 1004

Employee表的记录 id 9001 9002 9003 9004 9005 9006 name Alex Jim Tom Eric Lily Jack sex 男 男 男 男 女 男 age 25 26 20 30 21 28 D_id 1002 1001 1003 1001 1002 1003 salary 4000 2500 1500 3500 3000 1800 address 北京市海淀区 北京市昌平区 湖南省永州市 北京市顺义区 北京市昌平区 天津市难开区 D_name 人事部 科研部 生产部 销售部 Function 人事管理 研发产品 产品生产 产品销售 address 北京 北京 天津 上海 执行如下操作:

1. 查询employee表的所有记录i

2. 查询employee表的第4条到第5条记录 3. select * from employee limit 3,2;

4. 从department表查询部门号(d_id),部门名称(d_name)和部门职能(function) 5. select d_id,d_name,function from department;

6. 从employee表中查询人事部和科研部的员工的信息

7. select * from employee where d_id in(select d_id from department where d_ 8. id='1001' or d_id='1002');

9. 从employee表中查询年龄在25到30之间的员工信息 10. 查询每个部门有多少员工;

11. select d_id ,count(name) from employee group by d_id; 12. 查询每个部门的最高工资

13. select department.d_id, d_name,max(salary) from department, employee wher 14. e department.d_id=employee.d_id group by d_name; 15. 用左连接的方式查询department表和employee表

16. select * from department left join employee on department.d_id=employee.d_id;

17. 计算每个部门的总工资

18. select d_name,sum(salary) from department,employee where department.d_id= 19. employee.d_id group by d_name;

20. 查询employee表,按照工资从高到低的顺序排列 21. select * from employee order by salary ASC;

22. 从department表和employee表中查询出部门号,然后合并查询结果 23. select d_id from department union select d_id from employee; 24. 查询家是北京市员工的姓名,年龄,家庭住址

25. select name ,age,address from employee where address like'北京%'; 26. 查询名字由四个字母组成,而且最后三个字母是’ric’的员工的信息

27. select name ,age,employee.address,employee.d_id,sex,salary from departmen 28. t, employee where department.d_id=employee.d_id and name like'_ric'; 29. 查询名字由四个字母组成,以’L’开头,字母’y’结尾的员工的信息。 select name ,age,employee.address,employee.d_id,sex,salary from departmen t, employee where department.d_id=employee.d_id and name like'L__y'; 简答题

1. MYSQL中通配符与正则表达式的区别

2. 什么情况下使用LIMIT来限制查询结果的数量 3. 集合函数必须要用GROUP BY关键字吗 4. 给表和字段取别名有什么用

本文来源:https://www.bwwdw.com/article/2u02.html

Top