赞
踩
限定显示多行
格式:select *from 表名 limit 从第几行开始,显示几行
说明:
[从第几行开始,] --可写可不写,不写是从第0行开始
1.分组介绍:用group by 结合合计函数,根据一个或多列对结果集进行分组 2.格式: select 列名1,聚合函数(计算的列名) from 表名 group by 列名1 3.分组操作: 求各个班的总分数 分析: 1.要显示的列名是class_id select class_id 2.要计算的列是语文+英语+数学 select class_id,sum(语文+英语+数学) 3.分组是要分班级 select class_id,sum(语文+英语+数学) from student group by class_id 4.分组条件:having 1.通常和group by一起使用,是分组的条件,类似于where,只不过where后面不能加聚合函数,having可以 2.格式: select 列名,聚合函数 from 表名 group by 列名 having 条件 例子:显示各个学号,总成绩小于600的学生总成绩 成绩表 SELECT 学号,SUM(成绩) FROM 成绩表 GROUP BY 学号 HAVING SUM(成绩)<600; 例子:求总成绩大于1300的班级 student表 select class_id,sum(语文+英语+数学) from student group by class_id having sum(语文+英语+数学)>1300
1.order by语句用于对指定的结果集进行排序
2.order by的默认排序是升序
3.如果要降序加上desc
4.格式:
select * from 表名 order by 列名 desc; --desc如果不写,默认是升序,如写了就是降序
5.操作
1.student表,以数学成绩排序,显示学生的信息
select *from student order by 数学
2.student表,以学生的总成绩排序,显示学生的信息
select 姓名,语文+英语+数学 from student order by 语文+英语+数学
1.Mysql有四大函数 1.字符串函数 2.数字函数 3.时间日期函数 4.控制流函数 2.字符串函数 1.length:获取字符串的字节长度 --注意:一个中文是三个字节 2.char_length:获取字符串的字符长度 操作: 显示姓名的字节长度 select 姓名,length(姓名) from student; 显示姓名的字符长度 select 姓名,char_length(姓名) from student; 3.MID 可以从某个位置获取某个长度的字符(不是字节) select 列名,mid(列名,开始截取的位置,截取的字符个数) from 表名 注意:开始的位置是从1开始,截取的位置包含写的数字 如:select 姓名,mid(姓名,2,1) from 表名 从第2个字符(包含第2个字符)开始截取1个字符 例子:把student学生的名打印出来 3.数学函数 1.round:四舍五入 格式:select round(23.4567,2) ---保留小数点后两位,不写,2表示不留小数点后的数字 注意:数据库管理系统,在上面的这种情况下会提供一张虚表来显示函数得出的结果 2.求数据的最小值和最大值 格式:SELECT LEAST(1,2,3,4,5,6); --最小,结果是1 格式:SELECT GREATEST(4,8,5,6,7); --最大,结果是8 4.时间日期函数 1.获取日期时间(now()) select now(); --2020-07-16 14:06:25 2.获取日期(current_date()) SELECT CURRENT_DATE(); --2020-07-16 3.获取当前的时间(current_time()) select current_time() --14:06:26 4.将日期转换为天数,从1970年1月1日开始计算 (to_days) select to_days('xxxx-xx-xx') 5.获取该年过去了多少天(dayofyear()) SELECT DAYOFYEAR(NOW()); 如果dayofyear要填写日期那么要用xxxx-xx-xx格式 6.返回当前日期是今年的第几周 week() SELECT WEEK (NOW());如果WEEK要填写日期那么要用xxxx-xx-xx格式 5.控制流函数 if是控制流函数,有三个参数,如果第一个参数为空,输出第三个参数,否则输出第二个参数 ifnull是控制流函数,有两个参数,如果第一个参数为空,那么输出第二个参数,否则输出第一个参数 1.select if(true,'bbb','ccc') --输出第二个参数,其他输出第三个参数,0表示false,其他数字表示true 2.select ifnull(null,'222')
1.表连接:在多个表中获取数据,这时要连接表 2.内连接:只有两个表中匹配到的数据才会有查询结果 1.where:用来连接表 格式: select 表名1.列名,表名2.列名 from 表1,表2 where 表1.列1=表2.列1 显示学号,姓名,性别,籍贯,成绩 select 学生信息.学号,学生信息.姓名,学生信息.性别,学生信息.籍贯,成绩表.成绩 from 学生信息,`成绩表` where 学生信息.学号=成绩表.学号 连接操作时遵守的原则 1.select 子句列表中,每个目标列前都要加上基表名称 2.from 子句应包括所有使用的基表 3.where 子句应定义一个连接 注意:连接时,最核心的是找到表与表之间能关联的列,这个关联的列,列名可以不一致,但是数据和数据类型要一致 2.用 inner join on来连接 格式:select 表1.列,表2.列 from 表1 inner join 表2 on 表1.列=表2.列 注意:如果显示的列是唯一的,那么可以不写基表 3.给表取别名 格式: select 别名1.列,别名1.列,别名2.列 from 表1 别名1,表2 别名2 where 别1.列1=别2.列 显示学生的姓名,性别,籍贯,班级编号,年级,人数 -- 要给表取别名 select s.姓名,s.性别,s.籍贯,s.班级编号,b.年级,b.人数 from 学生信息 s,班级信息 b --注意,别名不取数字,要取有意义的字符 where s.班级编号=b.班级编号 4.用join on来连接表,可以分为等值连接和非等值连接 1.等值连接,就是条件连接是等号 格式:elect 表1.列,表2.列 from 表1 inner join 表2 on 表1.列=表2.列 2.非等值连接,就是条件不是等号 格式:elect 表1.列,表2.列 from 表1 inner join 表2 on 表1.列>表2.列 5.表连接后面可以添加条件 格式一:select 表1.列,表1.列,表2.列 from 表1,表2 where 表1.列=表2.列 and 条件 and 条件 格式二: select 表1.列,表2.列 from 表1 inner join 表2 on 表1.列=表2.列 and 条件 and 条件 格式三: select 表1.列,表2.列 from 表1 inner join 表2 on 表1.列=表2.列 where 条件 6.针对多表(>2)的表进行连接 1.where 格式: select 表1.列,表2.列,表3.列 from 表1,表2,表3 where 表1.列=表2.列 and 表2.列=表3.列 and ... 2.inner join on select 表1.列,表2.列,表3.列 from 表1 inner join 表2 on 表1.列=表2.列 inner join 表3 on 表2.列=表3.列 ...
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。