一、AVG
AVG(col):返回指定列的平均值
二、COUNT
COUNT(col):返回指定列中非NULL值的个数
三、MIN/MAX
MIN(col):返回指定列的最小值
MAX(col):返回指定列的最大值
四、SUM
SUM(col):返回指定列的所有值之和
五、GROUP_CONCAT
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
返回由属于一组的列值连接组合而成的结果
扩展资料
增加新用户
(注意:和上面不同,下面的因为是 MySQL 环境中的命令,所以后面都带一个分号作为命令结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
例1、增加一个用户 test1 密码为 abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以 root 用户连入 MySQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@“%” Identified by “abc”
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户 test2 密码为 abc,让他只可以在 localhost 上登录,并可以对数据库 mydb 进行查询、插入、修改、删除的 *** 作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select, insert, update, delete on mydb.* to test2@localhost identified by “abc”
如果你不想 test2 有密码,可以再打一个命令将密码消掉。
grant select, insert, update, delete on mydb.* to test2@localhost identified by “”
下面来看看 MySQL 中有关数据库方面的 *** 作。注意:必须首先登录到 MySQL 中,以下 *** 作都是在 MySQL 的提示符下进行的,而且每个命令以分号结束。
MySql计算两个日期的时间差函数TIMESTAMPDIFF用法:语法:
TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)
说明:
返回日期或日期时间表达式datetime_expr1
和datetime_expr2the
之间的整数差。其结果的
单位由interval
参数给出。interval
的法定值同TIMESTAMPADD()函数说明中所列出的相同。
复制代码
代码如下:
SELECT
TIMESTAMPDIFF(MONTH,'2009-10-01','2009-09-01')
interval可是:
SECOND
秒
SECONDS
MINUTE
分钟
MINUTES
HOUR
时间
HOURS
DAY
天
DAYS
MONTH
月
MONTHS
YEAR
年
YEARS
用户函数?那应该是自己定义的函数吧常用的函数有
1、MySQL 提供几个处理null的函数
1)、ifnull(expr1,expr2):如果expr1不为null,则返回expr1,否则返回expr2;
2)、nullif(expr1,expr2):expr1与expr2相等,则返回null,否则返回expr1;
3)、if(expr1,expr2,expr3):类似于三目运算符,expr1为true,返回expr2,否则返回expr3;
4)、isnull(expr1):判断expr1是否为null,expr1为null,返回true,否则返回false。
2、MySQL case函数
CASE 函数是一个流程控制函数,作用同c++中switch语句。有如下两种使用方法:
1)、用值比较
case value
when compareValue1 then result1
when compareValue2 then result2
……
else result
end
用value依次与各compareValue比较,相等则返回对应的result,并退出case函数。
2)、用条件判断
case
when condition1 then result1
when condition2 then result2
……
else result
end
各condition都为布尔表达式,从上到下判断,为true则返回对应的result,并退出case函数。
使用示例:
SELECT student_name,CASE
WHEN student_id<3 THEN ‘初级班’
WHEN student_id<=6 THEN '中级班'
ELSE ‘高级版'
END
FROM student_table
说明:上面语句选择student_name与student_id两列,只是student_id用CASE 函数替换为对应的文字说明。
3、部分时间日期函数
1)、CURTIME():返回完整的时间类型值,如:’2016-08-10 22:13:30‘;
2)、CURDATE():返回当前日期,时间部分为0,如:’2013-08-10 00:00:00‘;
3)、ADDTIME(time1,time2):time1为time或datetime表达式,time2为time表达式,如:
addtime(’2016-08-10 22:20:00‘,’10:10:10')返回2016-08-11 08:30:10
addtime(’2016-08-10 22:20:00‘,’1 10:10:10')返回2016-08-12 08:30:10
addtime(’22:20:00‘,’10:10:10')返回32:30:10,所以只有时分秒时应注意相加后的值是否大于23:59:59!
注:上面的参数值都可带微秒[.xxxxxx]。
4、部分字符串函数
1)、LEFT(param,length):返回包含param左边的length 个字符的字符串。length 大于param 长度时返回整个param。
2)、RIGHT(param,length):返回包含param右边length 个字符的字符串。同理。
最大用处在于param 可以是选出的某个列的数据,如最基础的用法:
select LEFT(e.name,5) from table1 e;
三、常用分组和组函数
常用组函数:
注:distinct:区别的。指定计算是否包含所有重复值。
1、avg([distinct|all]expr):计算多行expr的平均值,其中expr可以是变量、常量或数据列,但其类型必须是数值型;
2、count(*|[distinct|all]expr):计算多行的记录数。expr同上,但数据类型可以是任意类型;
3、max(expr):计算多行expr的最大值,expr同count中;
4、min(expr);
5、sum([distinct|all]expr):计算多行expr的总和,expr可以是变量、常量或数据列,但数据类型必须是数值型。
group by 分组与having过滤:
语法:
#查询结果按分组列不重复的显示。
select * from tableName group by columnName1[,columnName2,……];
说明:对于MySQL 如果被分组的列对应的其它列有多个对应值,则只显示第一条记录的值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)