mysql实例练习_第1页
mysql实例练习_第2页
mysql实例练习_第3页
mysql实例练习_第4页
mysql实例练习_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Sutdent表的定义字段名字段描述数据类型主键外键非空唯一自增Id学号INT(10)是否是是是Name姓名VARCHAR(20)否否是否否Sex性别VARCHAR(4)否否否否否Birth出生年份YEAR否否否否否Department院系VARCHAR(20)否否是否否Address家庭住址VARCHAR(50)否否否否否 Score表的定义字段名字段描述数据类型主键外键非空唯一自增Id编号INT(10)是否是是是Stu_id学号INT(10)否否是否否C_name课程名VARCHAR(20)否否否否否Grade分数INT(10)否否否否否 1.创建student和score表CREATE

2、TABLE student (id INT(10) NOT NULL UNIQUE PRIMARY KEY ,name VARCHAR(20) NOT NULL ,sex VARCHAR(4) ,birth YEAR,department VARCHAR(20) ,address VARCHAR(50) );创建score表。SQL代码如下:CREATE TABLE score (id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT ,stu_id INT(10) NOT NULL ,c_name VARCHAR(20) ,grade IN

3、T(10);2.为student表和score表增加记录向student表插入记录的INSERT语句如下:INSERT INTO student VALUES( 901,'张老大', '男',1985,'计算机系', '北京市海淀区');INSERT INTO student VALUES( 902,'张老二', '男',1986,'中文系', '北京市昌平区');INSERT INTO student VALUES( 903,'张三', '女

4、',1990,'中文系', '湖南省永州市');INSERT INTO student VALUES( 904,'李四', '男',1990,'英语系', '辽宁省阜新市');INSERT INTO student VALUES( 905,'王五', '女',1991,'英语系', '福建省厦门市');INSERT INTO student VALUES( 906,'王六', '男',1988,&

5、#39;计算机系', '湖南省衡阳市');向score表插入记录的INSERT语句如下:INSERT INTO score VALUES(NULL,901, '计算机',98);INSERT INTO score VALUES(NULL,901, '英语', 80);INSERT INTO score VALUES(NULL,902, '计算机',65);INSERT INTO score VALUES(NULL,902, '中文',88);INSERT INTO score VALUES(NULL,903

6、, '中文',95);INSERT INTO score VALUES(NULL,904, '计算机',70);INSERT INTO score VALUES(NULL,904, '英语',92);INSERT INTO score VALUES(NULL,905, '英语',94);INSERT INTO score VALUES(NULL,906, '计算机',90);INSERT INTO score VALUES(NULL,906, '英语',85); 3.查询student表的所有记录m

7、ysql> SELECT * FROM student;+-+-+-+-+-+-+| id | name | sex | birth | department | address |+-+-+-+-+-+-+| 901 | 张老大 | 男 | 1985 | 计算机系 | 北京市海淀区 | 902 | 张老二 | 男 | 1986 | 中文系 | 北京市昌平区 | 903 | 张三 | 女 | 1990 | 中文系 | 湖南省永州市 | 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 | 905 | 王五 | 女 | 1991 | 英语系 | 福建省厦门市 | 906

8、 | 王六 | 男 | 1988 | 计算机系 | 湖南省衡阳市 |+-+-+-+-+-+-+ 4.查询student表的第2条到4条记录mysql> SELECT * FROM student LIMIT 1,3;+-+-+-+-+-+-+| id | name | sex | birth | department | address |+-+-+-+-+-+-+| 902 | 张老二 | 男 | 1986 | 中文系 | 北京市昌平区 | 903 | 张三 | 女 | 1990 | 中文系 | 湖南省永州市 | 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 |

9、+-+-+-+-+-+-+ 5.从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息mysql> SELECT id,name,department FROM student;+-+-+-+| id | name | department |+-+-+-+| 901 | 张老大 | 计算机系 | 902 | 张老二 | 中文系 | 903 | 张三 | 中文系 | 904 | 李四 | 英语系 | 905 | 王五 | 英语系 | 906 | 王六 | 计算机系 |+-+-+-+ 6.从student表中查询计算机系和英语系的学生的信息mys

10、ql> SELECT * FROM student WHERE department IN ('计算机系','英语系');+-+-+-+-+-+-+| id | name | sex | birth | department | address |+-+-+-+-+-+-+| 901 | 张老大 | 男 | 1985 | 计算机系 | 北京市海淀区 | 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 | 905 | 王五 | 女 | 1991 | 英语系 | 福建省厦门市 | 906 | 王六 | 男 | 1988 | 计算机系 |

11、湖南省衡阳市 |+-+-+-+-+-+-+ 7.从student表中查询年龄1822岁的学生信息mysql> SELECT id,name,sex,2013-birth AS age,department,address -> FROM student WHERE 2013-birth BETWEEN 18 AND 22;+-+-+-+-+-+-+| id | name | sex | age | department | address |+-+-+-+-+-+-+| 905 | 王五 | 女 | 22 | 英语系 | 福建省厦门市 |+-+-+-+-+-+-+mysql>

12、 SELECT id,name,sex,2013-birth AS age,department,address -> FROM student -> WHERE 2013-birth>=18 AND 2013-birth<=22;+-+-+-+-+-+-+| id | name | sex | age | department | address |+-+-+-+-+-+-+| 905 | 王五 | 女 | 22 | 英语系 | 福建省厦门市 |+-+-+-+-+-+-+ 8.从student表中查询每个院系有多少人 mysql> SELECT departme

13、nt, COUNT(id) FROM student GROUP BY department;+-+-+| department | COUNT(id) |+-+-+| 计算机系 | 2 | 英语系 | 2 | 中文系 | 2 |+-+-+9.从score表中查询每个科目的最高分mysql> SELECT c_name,MAX(grade) FROM score GROUP BY c_name;+-+-+| c_name | MAX(grade) |+-+-+| 计算机 | 98 | 英语 | 94 | 中文 | 95 |+-+-+ 10.查询李四的考试科目(c_name)和考试成绩(g

14、rade)mysql> SELECT c_name, grade -> FROM score WHERE stu_id=(SELECT id FROM student WHERE name= '李四' );+-+-+| c_name | grade |+-+-+| 计算机 | 70 | 英语 | 92 |+-+-+ 11.用连接的方式查询所有学生的信息和考试信息mysql> SELECT student.id,name,sex,birth,department,address,c_name,grade -> FROM student,score WHER

15、E student.id=score.stu_id;+-+-+-+-+-+-+-+-+| id | name | sex | birth | department | address | c_name | grade |+-+-+-+-+-+-+-+-+| 901 | 张老大 | 男 | 1985 | 计算机系 | 北京市海淀区 | 计算机 | 98 | 901 | 张老大 | 男 | 1985 | 计算机系 | 北京市海淀区 | 英语 | 80 | 902 | 张老二 | 男 | 1986 | 中文系 | 北京市昌平区 | 计算机 | 65 | 902 | 张老二 | 男 | 1986 |

16、中文系 | 北京市昌平区 | 中文 | 88 | 903 | 张三 | 女 | 1990 | 中文系 | 湖南省永州市 | 中文 | 95 | 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 | 计算机 | 70 | 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 | 英语 | 92 | 905 | 王五 | 女 | 1991 | 英语系 | 福建省厦门市 | 英语 | 94 | 906 | 王六 | 男 | 1988 | 计算机系 | 湖南省衡阳市 | 计算机 | 90 | 906 | 王六 | 男 | 1988 | 计算机系 | 湖南省衡阳市 |

17、 英语 | 85 |+-+-+-+-+-+-+-+-+ 12.计算每个学生的总成绩mysql> SELECT student.id,name,SUM(grade) FROM student,score -> WHERE student.id=score.stu_id GROUP BY id;+-+-+-+| id | name | SUM(grade) |+-+-+-+| 901 | 张老大 | 178 | 902 | 张老二 | 153 | 903 | 张三 | 95 | 904 | 李四 | 162 | 905 | 王五 | 94 | 906 | 王六 | 175 |+-+-+

18、-+ 13.计算每个考试科目的平均成绩mysql> SELECT c_name,AVG(grade) FROM score GROUP BY c_name;+-+-+| c_name | AVG(grade) |+-+-+| 计算机 | 80.7500 | 英语 | 87.7500 | 中文 | 91.5000 |+-+-+ 14.查询计算机成绩低于95的学生信息mysql> SELECT * FROM student -> WHERE id IN -> (SELECT stu_id FROM score WHERE c_name="计算机" and

19、 grade<95);+-+-+-+-+-+-+| id | name | sex | birth | department | address |+-+-+-+-+-+-+| 902 | 张老二 | 男 | 1986 | 中文系 | 北京市昌平区 | 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 | 906 | 王六 | 男 | 1988 | 计算机系 | 湖南省衡阳市 |+-+-+-+-+-+-+ 15.查询同时参加计算机和英语考试的学生的信息mysql> SELECT * FROM student -> WHERE id =ANY -> (

20、 SELECT stu_id FROM score -> WHERE stu_id IN ( -> SELECT stu_id FROM -> score WHERE c_name= '计算机') AND c_name= '英语' );+-+-+-+-+-+-+| id | name | sex | birth | department | address |+-+-+-+-+-+-+| 901 | 张老大 | 男 | 1985 | 计算机系 | 北京市海淀区 | 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 | 906

21、 | 王六 | 男 | 1988 | 计算机系 | 湖南省衡阳市 |+-+-+-+-+-+-+mysql> SELECT a.* FROM student a ,score b ,score c -> WHERE a.id=b.stu_id -> AND b.c_name='计算机' -> AND a.id=c.stu_id -> AND c.c_name='英语'+-+-+-+-+-+-+| id | name | sex | birth | department | address |+-+-+-+-+-+-+| 901 | 张

22、老大 | 男 | 1985 | 计算机系 | 北京市海淀区 | 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 | 906 | 王六 | 男 | 1988 | 计算机系 | 湖南省衡阳市 |+-+-+-+-+-+-+ 16.将计算机考试成绩按从高到低进行排序mysql> SELECT stu_id, grade -> FROM score WHERE c_name= '计算机' -> ORDER BY grade DESC;+-+-+| stu_id | grade |+-+-+| 901 | 98 | 906 | 90 | 904 |

23、70 | 902 | 65 |+-+-+ 17.从student表和score表中查询出学生的学号,然后合并查询结果mysql> SELECT id FROM student -> UNION -> SELECT stu_id FROM score;+-+| id |+-+| 901 | 902 | 903 | 904 | 905 | 906 |+-+ 18.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩mysql> SELECT student.id, name,sex,birth,department, address, c_name,grade -> F

24、ROM student, score -> WHERE -> (name LIKE '张%' OR name LIKE '王%') -> AND -> student.id=score.stu_id ;+-+-+-+-+-+-+-+-+| id | name | sex | birth | department | address | c_name | grade |+-+-+-+-+-+-+-+-+| 901 | 张老大 | 男 | 1985 | 计算机系 | 北京市海淀区 | 计算机 | 98 | 901 | 张老大 | 男 | 1985 |

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论