select函数

MySQL凝练 二

ⅰ亾dé卋堺 提交于 2019-11-29 11:24:54
数据查询语言 1、查询表中某些字段 SELECT 字段1,字段2.。。 FROM 表名; 例:查询姓名与年龄 select name,age from Student; * 在SQL 中也是通配符,代表所有字段 2、SQL中的数学运算 + - * / 例:查询每个教师的日薪,按每月30天计算 select name,salary/30 from teacher; 例:查询每个教师的年薪,按每年12月计算 select name,salary*12 from teacher; 3、字段别名 为查询结果新取一个字段名 例:查询每个教师的年薪,并为查询结果设置的字段名为yearsal select name,salary*12 yearsal from teacher; 4、字符串操作 concat(s1,s2.。。); 返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL 例:显示所有教师名和所教科目中间有下划线连接 select concat(name,'_',subject) from teacher;-----name_subject concat_ws(x,s1,s2..); 返回多个字符串拼接之后的字符串,每个字符串之间有一个x 例:连接字符串,并使用空格分隔 select concat_ws(' ',name,subject,'he')

MySQL之聚合数据(AVG,COUNT,MAX,MIN,SUM)

别说谁变了你拦得住时间么 提交于 2019-11-29 09:04:06
1.首先我们需要了解下什么是聚合函数    聚合函数aggregation function又称为组函数。 认情况下 聚合函数会对当前所在表当做一个组进行统计。 2. 聚合函数的特点   1.每个组函数接收一个参数(字段名或者表达式) 统计结果中默认忽略字段为NULL的记录   2.要想列值为NULL的行也参与组函数的计算,必须使用IFNULL函数对NULL值做转换。   3. 不允许出现嵌套 比如 sum(max(xx)) 3.聚合函数 count(),求数据表的行数 1 select count (*/字段名) from 数据表 4.聚合函数 max(),求某列的最大数值 1 select max (字段名) from 数据表    5.聚合函数min(),求某列的最小值 1 select main(字段名) from 数据表    6.聚合函数sum(),对数据表的某列进行求和操作 1 select sum (字段名) from 数据表    7.聚合函数avg(),对数据表的某列进行求平均值操作 1 select avg (字段名) from 数据表    8.聚合函数和分组一起使用 1 select count (*),group_concat(age) from students group by age;       总结:  

MySQL聚合函数与数据分组

不打扰是莪最后的温柔 提交于 2019-11-29 09:03:09
  我们最常需要的是汇总数据而不是把他们实际检索出来 确定表中行数(或满足某个条件或包含某个特定值的行数) 确定表中行组的和 找出表列(或所有行或特定列)的最大值,最小值和平均值    聚集函数是运行在行组上,计算和返回单个值的函数。 AVG([distinct] expr) 求平均值 COUNT({*|[distinct] } expr) 统计行的数量 MAX([distinct] expr) 求最大值 MIN([distinct] expr) 求最小值 SUM([distinct] expr) 求累加和 AVG,SUM   只用于单个列,为获得多个列的平均值要使用多个AVG, 表中列值为null的行不参与计算    要想列值为NULL的行也参与组函数的计算,必须使用 IFNULL函数对NULL值做转换。 COUNT count(*):返回表中行的数量,不管列表中包含NULL值还是非NULL值, distinct不能用于count(*) count(列):返回列值 非空的行 的数量 count(distinct 列):返回列值非空的、并且列值不重复的行的数量 count(expr):根据表达式统计数据 select UNIT as '单位', -> COUNT(TO_DAYS(DATE)=TO_DAYS(NOW()) or null) as '今日统计', -> COUNT

mysql-聚合函数

拟墨画扇 提交于 2019-11-29 09:01:30
mysql-聚合函数 mysql中聚合函数其实只有5个, 1. COUNT() 函数:用来统计记录的条数; 2. SUM() 函数:是求和函数; 3. AVG() 函数:是求平均值的函数 ; 4. MAX() 函数是求最大值的函数 5. MIN() 函数是求最小值的函数 具体的实列: /* SQLyog 企业版 - MySQL GUI v8.14 MySQL - 5.1.49-community ********************************************************************* */ /*!40101 SET NAMES utf8 */; create table `t_grade` ( `id` int , `stuName` varchar (60), `course` varchar (60), `score` int ); insert into `t_grade` (`id`, `stuName`, `course`, `score`) values('1','张三','语文','91'); insert into `t_grade` (`id`, `stuName`, `course`, `score`) values('2','张三','数学','90'); insert into `t_grade` (`id`

mysql函数

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-29 08:45:02
控制流函数 IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。 mysql > select IFNULL( 1 , 0 ); -> 1 mysql > select IFNULL( 0 , 10 ); -> 0 mysql > select IFNULL( 1 / 0 , 10 ); -> 10 mysql > select IFNULL( 1 / 0 , ' yes ' ); -> ' yes ' IF(expr1,expr2,expr3) 如果expr1是TRUE(expr1 <> 0且expr1 <> NULL),那么IF()返回expr2,否则它返回expr3。IF()返回一个数字或字符串值,取决于它被使用的上下文。 mysql > select IF( 1 > 2 , 2 , 3 ); -> 3 mysql > select IF( 1 < 2 , ' yes ' , ' no ' ); -> ' yes ' mysql > select IF(strcmp( ' test ' , ' test1 ' ), ' yes ' , ' no ' ); -> ' no ' expr1作为整数值被计算,它意味着如果你正在测试浮点或字符串值

MySQL 时间函数

喜你入骨 提交于 2019-11-29 08:43:56
在说MySQL的时间函数之前,先把MySQL的时间类型字段大概熟悉一下,这样对于MySQL时间函数的理解就更好啦。 MySQL有以下的时间类型: datetime '0000-00-00 00:00:00' date '0000-00-00' timestamp '0000-00-00 00:00:00' time '00:00:00' year 0000 datetime 显示为'YYYY-MM-DD HH:MM:SS'格式,范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59' date 显示为'YYYY-MM-DD'格式,范围为'1001-01-01'到'9999-12-31' timestamp 范围从'1970-01-01 00:00:01'UTC 到'2038-01-09 03:14:07'UTC 指定datetime值时,可以用'2009-01-01 11:20:30','2009/01/01 11*20*30','2009*01*01 11^20^30','2009@01@01 11+20+30'等,效果是一样的。此外,如果使用字符串如'20090101112030'或'090101112030'或者使用数字也是可以的,如20090101112030或090101112030。 指定datetime

MYSQL常用函数

跟風遠走 提交于 2019-11-29 08:38:37
# 字符串函数    CONCAT(str1,str2,...,strn)   参数一:待拼接字符串   参数二:待拼接字符串   返回结构:一个完整的字符串    SELECT   CONCAT('MY','S','QL')   #    INSERT(str,pos,len,newstr)   参数一:字符串   参数二:开始的位置   参数三:从开始位置截取的长度   参数四:代替截取部分的新字符串   返回结构:一个新的字符串    SELECT   INSERT('这是SQL Server数据库',3,10,'MYSQL')   #    LOWER(str)   参数一:一个平凡而又普通的字符串   返回结构:将字符串中的字母全部变为小写    SELECT   LOWER('ABC')   #    UPPER(str)   参数一:一个平凡而又普通的字符串   返回结构:将字符串中的字母全部变为大写    SELECT   UPPER('ABC')   #    SUBSTRING(str,num,len)   参数一:一个平凡而又普通的字符串   参数二:起始位置(从1开始)   参数三:从起始位置开始截取的长度   返回结构:返回一段从num位置截取len长度的字符串    SELECT   SUBSTRING('123456789',5,3) # 时间日期函数

mysql 基本字符函数

半腔热情 提交于 2019-11-29 07:04:05
#查看当前字符集 SHOW VARIABLES LIKE '%char%'; #单行函数 USE myemployees; #字符函数 SELECT LENGTH('哈哈') #获取参数字节个数 SELECT CONCAT(last_name,'_',first_name) FROM employees; #字符串拼接 SELECT UPPER('aaa'); #转换成大写 SELECT LOWER('AAA'); #转换成小写 #mysql中索引位置从1开始,sbstr和substring效果一样 SELECT SUBSTR('李莫愁爱上了陆展元',7); #截取陆展元字符串,从7开始到之后所有 SELECT SUBSTR('李莫愁爱上了陆展元',1,3);#截取李莫愁,第二个数字表示长度 SELECT INSTR('杨不悔爱上了殷六侠','殷六侠') AS out_put;#返回子字符串在大字符串中第一次出现的起始索引位置,没有返回0 SELECT TRIM(' 张翠山 ') AS out_put; #去掉前后空格 SELECT TRIM('a' FROM 'aaaaa张aaa翠aaaaa山aaaaaa') AS out_put; #去掉前后指定字符,不能去掉中间的 SELECT LPAD('黄大侠',10,'*') AS out_put; #从左边填充*直到指定长度10

54.查表法按日期生成流水号的案例

ε祈祈猫儿з 提交于 2019-11-29 05:41:17
--以下代码生成的编号长度为12,前6位为日期信息,格式为YYMMDD,后6位为流水号。 --创建得到当前日期的视图 CREATE VIEW v_GetDate AS SELECT dt=CONVERT(CHAR(6),GETDATE(),12) GO --得到新编号的函数 CREATE FUNCTION f_NextBH() RETURNS char(12) AS BEGIN DECLARE @dt CHAR(6) SELECT @dt=dt FROM v_GetDate RETURN( SELECT @dt+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) FROM tb WITH(XLOCK,PAGLOCK) WHERE BH like @dt+'%') END GO --在表中应用函数 CREATE TABLE tb( BH char(12) PRIMARY KEY DEFAULT dbo.f_NextBH(), col int) --插入资料 INSERT tb(col) VALUES(1) INSERT tb(col) VALUES(2) INSERT tb(col) VALUES(3) DELETE tb WHERE col=3 INSERT tb(col) VALUES(4) INSERT tb(BH,col) VALUES

动态sql语句(即sql语句的拼接)

心不动则不痛 提交于 2019-11-29 03:22:49
10.1 if标签(属性:test(判断条件))   缺点:如果仅仅是第二个条件满足导致sql语句出错(故使用if+where) 1 <select id="select1" resultType="com.zhiyou.clg.bean.User"> 2 select *from user 3 <if test="name!=null"> 4 where name=#{name} 5 </if> 6 <if test="age!=null and age!=''"> 7 and age=#{age} 8 </if> 9 </select> 10.2 if+where ( where标签会知道如果它包含的标签中有返回值的话,就会插入where 若其以and或or开头会将and或or剔除) 1 <select id="select2" resultType="com.zhiyou.clg.bean.User"> 2 select *from user 3 <where> 4 <if test="name!=null"> 5 and name=#{name} 6 </if> 7 <if test="sex!=null"> 8 and sex=#{sex} 9 </if> 10 <if test="age!=null and age!=''"> 11 and age=#{age} 12