数据库——MySQL(三)(常用函数、聚合函数、内链接、外链接、子查询)
2018-03-03 23:15
609 查看
常用函数:(当取固定值时,使用数据库自带的虚表,可以不写表名称,取表记录时,正常写法既可)
● 把字符转化成ASCII值:select ascii ('a');
● 把ASCII值转化成字符:select char (97);
● 取字符串的长度: select char_length ("中国");
● 取占位符: select length ("中");(utf8编码下,一个中文字占3个字符长度)
● 拼接字符串: select concat ('My', 'S', 'QL');(字段个数没有限制)
● 大写转小写: select lower ("ABC");(upper:小写转大写)
● 字符串替换: select replace (原字符,需要替换字符串,新字符串);
● 取指定方向指定长度的值:select right ('adfnvadfa',1);(left)
● 取整数部分: select floor (4.9);
● 四舍五入: select round (4.99999999,2);
注意:四舍五入第二个函数,如果为正整数,表示保留多少位小数。如果为0或者不写,表示不保留小数。如果为负整数,表示从小数点前的第几位进行四舍五入
● 查询当前日期时间: select now();
● 查询当前日期: select curdate();
● 查询当前时间: select curtime();
注意:返回的是数据库安装那台电脑的系统时间。只返回年份year(now( )),月份与天数方法相同
------------------------------------------------------------------------------------------------------------------
聚合函数:(count:统计记录数)
● 语法:select count(列名) from 表名称;
● 例子:select count(*) from user;
注意:如果指定了列名,那么列的个数有且只能有一个。如果不知道列名可以使 * 代替
------------------------------------------------------------------------------------------------------------------
聚合函数:(sum:求和)
● 语法:select sum(列名) from 表名称;
● 例子:select sum(age) from user;
注意:只能作用在数值类型的列上,不能作用在字符串列上,作用在日期字段上无意义
------------------------------------------------------------------------------------------------------------------
聚合函数:(avg:求平均)
● 语法:select avg(列名) from 表名称;
● 例子:select avg(age) from user;
注意:只能作用在数值类型的列上,不能作用在字符串列上,作用在日期字段上无意义。不会统计值为null的数,avg(ifnull(列名,0))把null的值换成0
------------------------------------------------------------------------------------------------------------------
聚合函数:(max:求最大值。min:求最小值)
● 语法:select max(列名) from 表名称;
● 例子:select max(age) from user;
注意:字符串根据ASCII值
------------------------------------------------------------------------------------------------------------------
聚合函数:(group by:分组)
● 语法: select 列名 from 表名 group by 列名;
● 例子: select age from user group by age;
注意:使用了group by。那么在select后未使用聚合函数出现的列,必须出现在group by子句中,否则没意义
------------------------------------------------------------------------------------------------------------------
聚合函数:(having:过滤)
● 语法: select 列名 from 表名 group by 列名 having 条件;
● 例子: select age,count(*) from user group by age having count(*)>5;
注意:having是对分组之后的结果进行过滤。having关键字必须和group by一起使用,不能单独使用
------------------------------------------------------------------------------------------------------------------
聚合函数:(综合使用)
注意:聚合函数都不会处理null的值
------------------------------------------------------------------------------------------------------------------
内链接:(取多个表中同时满足条件的记录(取公共部分))
一种写法:
● 语法: select * from 表名1,表名2...表名n;
● 例子: select * from user u,student s where u.id = s.id;
另一种写法:(inner join、inner outer join两种写法)
● 语法: select * from 表名1 inner join 表名2 on 条件... inner join 表名n on 条件;
● 例子: select * from user u inner join student s on u.id = s.id ;
注意:如果使用的列名在多个表中存在,那么必须指明当前使用的是哪一个表中的列,给表取一个别名,取了别名就不能在使用表名
------------------------------------------------------------------------------------------------------------------
外链接:(取出指定方向外链接表的全部信息和指定条件中多表公共的信息)
左外链接:(left join、left outer join两种写法)
● 语法: select * from 表名1 left join 表名2 on 条件... left join 表名n on 条件;
● 例子: select * from user u left join student s on u.id = s.id ;
右外链接:(right join、left outer join两种写法)
● 语法: select * from 表名1 right join 表名2 on 条件... right join 表名n on 条件;
● 例子: select * from user u right join student s on u.id = s.id ;
注意:如果被关联的表按照条件未查询到关联的记录则把这个表的值用null代替。外链接必须指明关联关系
------------------------------------------------------------------------------------------------------------------
子查询:(当前一个select的条件或者显示的值,需来源于其他查询的结果,那么这种情况就可以使用子查询)
● 例子: select * from user where id in(select id from student group by id having avg(ifnull(score,0))>80);
注意:每个查询出来的结果都相当于一个临时表。子查询返回的数据类型需和主查询列的数据类型一致。子查询返回列的数量必须和主查询列的数量一致。子查询可以使用在任意的地方(如果子查询放在列上,那么返回的值最多只能是一行记录。如果子查询在where条件上(可能返回多行记录),那么建议使用in关键字进行链接)
-----------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知
● 把字符转化成ASCII值:select ascii ('a');
● 把ASCII值转化成字符:select char (97);
● 取字符串的长度: select char_length ("中国");
● 取占位符: select length ("中");(utf8编码下,一个中文字占3个字符长度)
● 拼接字符串: select concat ('My', 'S', 'QL');(字段个数没有限制)
● 大写转小写: select lower ("ABC");(upper:小写转大写)
● 字符串替换: select replace (原字符,需要替换字符串,新字符串);
● 取指定方向指定长度的值:select right ('adfnvadfa',1);(left)
● 取整数部分: select floor (4.9);
● 四舍五入: select round (4.99999999,2);
注意:四舍五入第二个函数,如果为正整数,表示保留多少位小数。如果为0或者不写,表示不保留小数。如果为负整数,表示从小数点前的第几位进行四舍五入
● 查询当前日期时间: select now();
● 查询当前日期: select curdate();
● 查询当前时间: select curtime();
注意:返回的是数据库安装那台电脑的系统时间。只返回年份year(now( )),月份与天数方法相同
------------------------------------------------------------------------------------------------------------------
聚合函数:(count:统计记录数)
● 语法:select count(列名) from 表名称;
● 例子:select count(*) from user;
注意:如果指定了列名,那么列的个数有且只能有一个。如果不知道列名可以使 * 代替
------------------------------------------------------------------------------------------------------------------
聚合函数:(sum:求和)
● 语法:select sum(列名) from 表名称;
● 例子:select sum(age) from user;
注意:只能作用在数值类型的列上,不能作用在字符串列上,作用在日期字段上无意义
------------------------------------------------------------------------------------------------------------------
聚合函数:(avg:求平均)
● 语法:select avg(列名) from 表名称;
● 例子:select avg(age) from user;
注意:只能作用在数值类型的列上,不能作用在字符串列上,作用在日期字段上无意义。不会统计值为null的数,avg(ifnull(列名,0))把null的值换成0
------------------------------------------------------------------------------------------------------------------
聚合函数:(max:求最大值。min:求最小值)
● 语法:select max(列名) from 表名称;
● 例子:select max(age) from user;
注意:字符串根据ASCII值
------------------------------------------------------------------------------------------------------------------
聚合函数:(group by:分组)
● 语法: select 列名 from 表名 group by 列名;
● 例子: select age from user group by age;
注意:使用了group by。那么在select后未使用聚合函数出现的列,必须出现在group by子句中,否则没意义
------------------------------------------------------------------------------------------------------------------
聚合函数:(having:过滤)
● 语法: select 列名 from 表名 group by 列名 having 条件;
● 例子: select age,count(*) from user group by age having count(*)>5;
注意:having是对分组之后的结果进行过滤。having关键字必须和group by一起使用,不能单独使用
------------------------------------------------------------------------------------------------------------------
聚合函数:(综合使用)
注意:聚合函数都不会处理null的值
------------------------------------------------------------------------------------------------------------------
内链接:(取多个表中同时满足条件的记录(取公共部分))
一种写法:
● 语法: select * from 表名1,表名2...表名n;
● 例子: select * from user u,student s where u.id = s.id;
另一种写法:(inner join、inner outer join两种写法)
● 语法: select * from 表名1 inner join 表名2 on 条件... inner join 表名n on 条件;
● 例子: select * from user u inner join student s on u.id = s.id ;
注意:如果使用的列名在多个表中存在,那么必须指明当前使用的是哪一个表中的列,给表取一个别名,取了别名就不能在使用表名
------------------------------------------------------------------------------------------------------------------
外链接:(取出指定方向外链接表的全部信息和指定条件中多表公共的信息)
左外链接:(left join、left outer join两种写法)
● 语法: select * from 表名1 left join 表名2 on 条件... left join 表名n on 条件;
● 例子: select * from user u left join student s on u.id = s.id ;
右外链接:(right join、left outer join两种写法)
● 语法: select * from 表名1 right join 表名2 on 条件... right join 表名n on 条件;
● 例子: select * from user u right join student s on u.id = s.id ;
注意:如果被关联的表按照条件未查询到关联的记录则把这个表的值用null代替。外链接必须指明关联关系
------------------------------------------------------------------------------------------------------------------
子查询:(当前一个select的条件或者显示的值,需来源于其他查询的结果,那么这种情况就可以使用子查询)
● 例子: select * from user where id in(select id from student group by id having avg(ifnull(score,0))>80);
注意:每个查询出来的结果都相当于一个临时表。子查询返回的数据类型需和主查询列的数据类型一致。子查询返回列的数量必须和主查询列的数量一致。子查询可以使用在任意的地方(如果子查询放在列上,那么返回的值最多只能是一行记录。如果子查询在where条件上(可能返回多行记录),那么建议使用in关键字进行链接)
-----------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知
相关文章推荐
- 关于mysql 简单的查询语句 以及常用函数的 总结
- 【数据库开发】 C连接mysql——常用的函数
- 关于mysql 简单的查询语句 以及常用函数的 总结
- 数据库能链接成功,但是mysql_query 无法查询表格
- Mysql之查询、where、常用函数、having
- 数据库---MySQL常用函数总结
- mysql 数据库 的一些常用函数
- 数据库中mysql常用函数使用总结
- PHP链接MySQL的常用扩展函数
- mysql 常用函数以及常见查询语句
- 关于mysql 简单的查询语句 以及常用函数的 总结
- mysql 查询数据库中的存储过程与函数的语句
- php常用代码剪辑(mysql连接数据库,web常用查询,分页,读取,js)
- Vertica的这些事<六>—— SQL Server、Oracle、MySQL和Vertica数据库常用函数对比
- 关于mysql 简单的查询语句 以及常用函数的 总结
- 关于mysql 简单的查询语句 以及常用函数的 总结
- 常用数据库(MsSql,Oralce,MySql)用SQL实现分页查询
- mysql查询语句常用处理函数
- 关于mysql 简单的查询语句 以及常用函数的 总结
- 关于mysql 简单的查询语句 以及常用函数的 总结