思路:
一、根据提问或者需求分析想要的结果是什么
Select XXXXX
二、肯定想要获得XXXXX的话须要涉及到哪些表
Select XXX from YYYY
三、分析是否须要条件 where > ,< ,= ,<> , >=, <=,in,between,and,or
Select XXX from YYY where ZZZZ
四、是否须要函数
时间函数,数学函数
五、分组
看到(“每一个??”)通常状况下都须要group by.
六、若是想要的结果不能一步到位
须要多个步骤的,那么此时咱们使用的就是子查询,子查询咱们能够按照单个步骤进行查询,而后把多个步骤组装起来
七、表链接,关联查询,联合查询。
明显特征:结果集中的列涉及到多张表。表链接去除笛卡尔积中的错误数据
1.需求2.表格3.条件4.函数5.分组6.步骤7.关联web
问题:
1.建立student和score表
2.为student表和score表增长记录
3.查询student表的全部记录
4.查询student表的第2条到4条记录
5.从student表查询全部学生的学号(id)、姓名(name)和院系(department)的信息
6.从student表中查询计算机系和英语系的学生的信息
7.从student表中查询年龄18~35岁的学生信息
8.查询每一个院系有多少人
9.查询每一个科目的最高分
10.查询李四的考试科目(c_name)和考试成绩(grade)
11.全部学生的信息和考试信息
12.计算每一个学生的总成绩
13.计算每一个考试科目的平均成绩
14.查询计算机成绩低于95的学生信息
15.查询同时参加计算机和英语考试的学生的信息
16.将计算机考试成绩按从高到低进行排序
17.查询姓张或者姓王的同窗的姓名、院系和考试科目及成绩
18.查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩sql
Mysql练习 (select)
------学生资料与成绩查询
1.建立student和score表svg
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL,
`sex` char(20) DEFAULT NULL,
`birth` year(4) DEFAULT NULL,
`department` char(10) DEFAULT NULL,
`address` char(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
建立score表。SQL代码以下:函数
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`stu_id` int(10) NOT NULL,
`c_name` char(20) DEFAULT NULL,
`grade` int(10) DEFAULT NULL,
PRIMARY KEY (`id`),