MySQL函数

查询一般步骤:

1.确定字段和来源表单

2.确定限制条件

3.进行查询,根据需要进行连表和筛选


下面讲一些新的功能

1.limit

/*limit 起始值,页面的大小*/

LIMIT 0,10

一般用于筛选某段数据,如前十


2.where嵌套

WHERE SubjectNo=(

SELECT SubjectNo FROM `subject`

WHERE SubjectName='数据库结构-1'

) /* 此处就是从表subject中查询课程序号SubjectNo,且要满足课程名为数据库结构-1*/

一般用于复数条件的复合筛选


3.分组

/*分组*/

SELECT SubjectName,AVG(StudentResult) AS 平均分,MAX(StudentResult) AS '最高分',MIN(StudentResult) AS '最低分' /*此处出现的函数为聚合函数一会会讲到*/

FROM result r

INNER JOIN `subject` sub

ON r.`SubjectNo`=sub`SubjectNo`

GROUP BY r.SubjectNo 

HAVING 平均分>80 /*最后两行即为分组*/

注意,分组筛选必须用having不能用where,且where必须在分组前面

换言之,group by后面筛选只能跟having;

having只能跟着group by使用。

大概格式

group by 需要分组的字段

having 需要分组的字段


函数

常用函数

有关数学

SELECT ABS() 取绝对值

SELECT CEILING() 向上取整

SELECT FLOOR() 向下取整

SELECT RAND()

SELECT SIGN()  符号函数,括号中正数返回1,0返回为0,负数返回-1

SELECT CHAR_LENGTH() 字符串长度

SELECT CONCAT(,   ,) 拼接

SELECT INSERT(str,初始位置,替换长度,代替字符串)

SELECT LOWER(str) 小写

SELECT UPPER(str) 大写

SELECT INSTR(str,子str)

SELECT SUBSTR(str,截取位置,截取长度)

SELECT REPLACE(str,出现的str,替换的str)

SELECT REVERSE(str) 反转


下面给出一例查询例子

SELECT REPLACE(StudentName,'刘','赵') FROM student

WHERE StudentName LIKE '刘%' /*将表student中所以学生名中姓刘的改成姓赵的,即用'赵'替换'刘'*/

有关日期


SELECT CURRENT_DATE()

SELECT CURDATE

SELECT NOW()

上面三种效果一样都为获取当前时间

SELECT LOCALTIME() 获取当地时间

SELECT SYSDATE() 获取系统时间

SELECT YEAR(NOW()) 获取当前时间的年

有关系统


SELECT SYSTEM_USER() 

SELECT USER()

上面两种相同皆为获取系统用户

SELECT VERSION() 获取版本


聚合函数

COUNT()

SUM()

AVG()

MAX()

MIN()

这些都比较常见,前面也有提及,就不多赘述


MD5加密

MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性。MD5算法因其普遍、稳定、快速的特点,仍广泛应用于普通数据的加密保护领域。

MD5    的使用

方法一:添加完数据直接对字段里的数据加密

UPDATE tablename SET 要加密的数据所属字段=MD5( 要加密的数据所属字段 ) ;

方法二:对表中添加数据时直接加密

INSERT INTO tablename VALUES(4,'xiiaoming',MD5(123456));


总结


查询:

SELECT 去重 要查询的字段 from表

xxx JOIN 要连接的表 

ON 等值判断

WHERE (具体值,子查询)

GROUP BY(通过那个字段分组)

HAVING (跟where功能一样,但必须跟着group BY)

ORDER BY 要排序的字段 升序/降序

LIMIT startindex,pagesize

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容