浏览量:43

1 Mysql基础(命令行)


链接:https://pan.baidu.com/s/1I6fqA6gIBt4L6cTRm4hTnA
提取码:kxb5


数据表.sql文件:恢复方式新建数据库class6test,再导入sql

http://www.xuexianswer.com/mengyun/?dl=cd60b19bc71263f3dfba20eab1e8eeec

链接:https://pan.baidu.com/s/1GYai9mKj65akr9yeGpXjRQ
提取码:ktwl


dos命令:

进入phpStudy下的mysql所在的bin目录

dos命令:

显示数据库,选择数据库,显示数据表,查数据表


创建数据表

插入数据:

插入多条数据:


 

数据查询:

1.小明同学想知道学生中所有男生的学生信息?


2.小明同学想知道学生中是男生并且是class1班的学生信息?


3.小明同学想知道学生中是男生并且是class1班并且年龄大于16岁的学生信息?


4.小明同学想知道学生中是class1班或者class2班的学生的女生信息?


like查询

MySQL 查询语句
1.小明同学想知道学生中名字是以’li’开头的学员信息?


2.小明同学想知道学生中名字是以’zhang’结尾的学员信息?


3.小明同学想知道学生中名字中包含’li’的学员信息?


4.小明同学想知道学生中名字中包含’li’并且是class3班的学员信息?


5.小明同学想知道学生中名字中不包含’li’并且是class3班的学员信息?


聚合查询

1.小明同学想知道学生表中最大年龄是多少?

查询一班中最大的年龄


2.小明同学想知道学生表中最小年龄是多少?


3.小明同学想知道学生表中学生年龄之和是多少?


4.小明同学想知道学生表中学生的平均年龄是多少?


5.小明同学想知道学生表中共有多少学生?

或者查id  然后对id进行计数


分组函数group by

查询全部信息

有多少个组就有多少条数据(只显示未经处理的第一条数据):

因此聚合函数是有要求的:要筛选一个组中的某一个数据用于显示如max或min

1.小明同学想知道学生表中每个班最大年龄的学生的年龄信息?


2.小明同学想知道学生表中每班平均年龄的学生的班级信息?


3.小明同学想知道学生表中每班最大年龄的学生的班级、年龄信息?、


4.小明同学想知道学生表中同一个地方的有多少人?


5.小明同学想知道学生表中每个班有多少个人?

goroup by 可以简单粗暴的认为将表按照分组的条件划分为多张表,在对这些表分别按照条件查询

6.小明同学想知道学生表中class1班同一个地方的有多少人?

7.小明同学想知道学生表中class1班,class2班同一个地方的有多少人?

8小明同学想知道学生表中所有男同学同一个地方的有多少人?


having主要对group by 查询生成的数据进行再次查询:


1.小明同学想知道学生表中每班平均年龄大于16岁的班级、年龄信息?


2.小明同学想知道学生表中每班最大年龄大于17岁的班级、年龄信息?



初始查询:

按照年龄排序:

可以看到并没有按照理论上的以年龄升序排列,这是因为排序是按照原始数据表中的age进行的排序

正确的写法:


1.小明同学想知道学生表中每班平均年龄大于16岁的学生的姓名、班级、年龄信息并按
照年龄降序排列?


2.小明同学想知道学生表中每班最大年龄大于17岁的学生的姓名、班级、年龄信息并按
照年龄降序排列?


3.小明同学想根据年龄从小到大顺序排出学生的相关信息?


4.小明同学想按照学号升序排列学生的信息?

5:

6:

7:

8:


1.小明同学想知道学生表中每班平均年龄大于16岁的学生的班级、年龄信息并按照年龄降
序排列并取得前两行数据?


2.小明同学想知道学生表中每班最大年龄大于17岁的学生的班级、年龄信息并按照平均年
龄降序排列并从第二行开始取得三行数据?


3.小明同学想根据年龄从小到大顺序排出学生的相关信息并取得前五行数据?


describe 表名:查看表结构


1. 列出performance表中,各班级名以及班级最高分和最低分。


2. 列出performance表中,课程名为develop的各班级名以及班级的最高分和最低分。


3. 列出performance表中,课程名为test的班级名,最低分数和最高分数,并且最低分数小于80的班级。


4. 列出performance表中姓名不包含’li1’信息的所在班级中的每个学员的学号、姓名和
班级名


5. 列出performance表中test成绩大于平均成绩的学员的相关信息

其中第5题即有多表联合查询的样子


笛卡尔积即:交叉连接,十分混乱,实际工作中并不会使用

共计查询了480条数据


union查询,重复数据只显示一次:

union all重复数据全部显示:

当查询的字段名不一致(字段数一致)时,只会显示第一次查询的字段

当union查询的字段数不一致时,则不会执行:

nuion多用于多个班级的表连接起来 其他的用得较少


左右连接原理如下图所示:

当需要查询student表学生的成绩时,是左连接,当需要查询core表中所有人的电话号码时,是右连接。左右连接并没有什么区别,只是存在着表的前后关系而已。

查询student表中所有学生的成绩

首先查询studen表中的所有学生用来对比

查询Student表中所有学生的成绩:

2. Student表中所有男生的成绩


查询:2. Student表中所有男生的成绩,剔除为NULL的情况:

将student表查询时命名为S1表,将performance表查询是命名为S2表,并查询出
student表中与performance表中都存在的学生的成绩,并且是class2班的学生。