1.select concat(name, money) from account; :拼接字段
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、网站制作、桃源网络推广、小程序开发、桃源网络营销、桃源企业策划、桃源品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供桃源建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
2.select length(name) from account;:查询字节长度(根据编码集utf-8,一个汉字占三个字节)
3.select ifnull(money, 10) from account;:如果money为null,显示10
4.select round(money,1) from account;:保留一位小数四舍五入
5.select floor(money) from account; :向下取整
6.select ceil(money) from account;:向上取整
7.select truncate(money, 1) from account;:截断(截取一位小数)
8.select mod (10, 3);:取余(相当于select 10%3;)
9.select upper(name) from account; :将名字变成大写
10.select lower(name) from account;:将名字变成小写
11.select substring(name, 1) from account;:截取名字下标从1开始的所有字段(注意:mysql的下标都是从1开始)
12.select substring(name, 1, 4) from account;:截取名字下标从1开始,长度为4的字段
13.select now();:返回当前系统的日期和时间
14.select curdate();:返回当前系统的日期
15.select curtime();:返回当前系统的时间
16.select date_format(now(), '%Y年%m月%d日') as '当前时间';:将时间转换成字符串
17.select count(name) from account;:计算name的个数(忽略null)
18.select count( ) from account;:计算个数(不忽略null,类似:select count(1) from account;)
19.select lpad(name, 10, ' '), money from account;:指定字段在左边填充到指定长度(rpad:右边填充)
20.select replace(name, 'an', '*'), money from account;:替换指定字段
21.select * from user limit 0,5;:查询前5条数据(下标0开始,数量:(page - 1) * size, size)
22.select * from boy union select * from girl;:两个结果合成一个(会自动去重,不去重用:union all)
1.select sum(money) from account;:求和(忽略null,null和任何值相加都为null)
2.select sum(money) from account;:求平均数(忽略null)
3.select max(money) from account;:求最大值(忽略null)
4.select min(money) from account;:求最小值(忽略null)
5.select name, money, if(money is null, '呵呵', '哈哈') 备注 from account;:if语句
6.case条件语句
1.create table copy like user;:复制user表(只复制表的字段)
2.create table copy select * from user;:复制user表(字段数据一起复制)
3.create table copy select username,age from user;:复制user表(复制指定的字段,数据一起复制)
4.create table copy select username,age from user where 0;:复制user表(复制指定的字段,数据不复制)
5.alter table 表名 add|drop|modify|change column 列名【列类型 约束】;:修改表
1.等值连接:select s.studen, t.teacher from study s, teacher t where s.t_id = t.id;(求交集部分)
在开发中遇到如下问题:现地的OPC采集数据的频率是5分钟一次,通过数据同步的方式同步到业务库,以图表的形式展示给业务人员。因为数据量较大,把每一条数据都展示出来导致页面数据太多。业务人员提出按每半小时取一条数据,各项指标取这半小时内的平均值。
原数据展示
1,按半小时分组就是将半小时内的时间划为一组。即2020-05-01 00:00 --2020-05-01 00:25 这些数据将被分到2020-05-01 00:00 这一组
2,先利用UNIX_TIMESTAMP函数将tm字段转化成秒,其表示从1970-01-01 00:00:00到tm所经历的秒数,对其做半小时的向下取整,最后再做Group by。
1800秒:半小时
floor(t.tm/1800) : 对于半小时的个数做向下取整
floor(t.tm/1800) * 1800: 取得整半小时的时间
3,对具体的监测值再做处理。我这里只要对这个时间段内的取平均数就行了。经过调整,达到业务人员的需求。
MySQL 数字类型转换函数(concat/cast)。
1、将Int 转为varchar经常用 concat函数,比如concat(8,’0′) 得到字符串 ’80′。
2、将varchar 转为Int 用 cast(a as signed) a为varchar类型的字符串。
总结:类型转换和SQL Server一样,就是类型参数有点点不同 : CAST(xxx AS 类型) , CONVERT(xxx,类型)。
扩展资料:
可用的类型:
二进制,同带binary前缀的效果 : BINARY
字符型,可带参数 : CHAR()
日期 : DATE
时间: TIME
日期时间型 : DATETIME
浮点数 : DECIMAL
整数 : SIGNED
无符号整数 : UNSIGNED
cast函数运行示例
参考资料:mysql-百度百科
这样的需求的话,那么你需要把第一次查询到的结果保存下来。即通过 select * from my where name = 'xbxy'所查到的结果集合存为一个对象,然后要用它的数据时就可以直接读取该对象的属性而无需再次访问数据库了(当然前提是表里的数据没有改变)。但这样只局限于单次的事务操作,如果当前的事务操作完成了,后续操作不再需要它了,或后续进行的是其他类型的事务操作,那么很可能需要再次重新读取数据库。