/* 关于MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结,*/ -- 1 运算符优先级  /* 12.1.1. 操作符优先级 以下列表显示了操作符优先级的由低到高的顺序。排列在同一行的操作符具有相同的优先级。  := ||, OR, XOR &&, AND NOT BETWEEN, CASE, WHEN, THEN, ELSE =, <=>, >=, >, <=, , !=, IS, LIKE, REGEXP, IN | & <> -, + *, /, DIV, %, MOD ^ - (一元减号), ~ (一元比特反转) ! BINARY, COLLATE */ 比较特别的: 1. :=赋值运算符,这与MSSQL中的=赋值一样,在MYSQL中 =运算符还是一个比较运算。   在MYSQL中 SELECT 1=2 返回是 0 布尔值,在MSSQL中 则是语法错误。 2. CASE WHEN THEN ELSE   # 在MYSQL 中 CASE WHEN THEN ELSE 语句 可以写一些MSSQL 不能写的表达式 操作。 3. <=> NULL 比较运算符 在MSSQL 中只能是IS /IS NOT NULL,ISNULL 判断  4. >> << 多了跟前台语言一样的位移运算符。 5. 表达式使用问题  SET @a=1 在MYSQL 中可以这样使用(他会自动推断类型,有点像现在编程语言中的var变量类型),但是MSSQL 必须先声明@a的变量类型,我觉得这样比较好。 SELECT @a:=1 用SELECT 必须这么赋值。 -- 2.控制流程函数  IF(expr1,expr2,expr3)  # 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定 # 在MSSQL 中没有 这个函数,只能用CASE WHEN 代替 ,IF关键字 是判断流程的,这个IF函数跟前台的三值逻辑IIF函数一样。 IFNULL(expr1,expr2)  # 假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。 # 这个函数 跟MSSQL 中的ISNULL 一样的 NULLIF(expr1,expr2)  # 如果expr1 = expr2  成立,那么返回值为NULL,否则返回值为 expr1。这和CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END相同。 # 此函数也跟MSSQL 一样。 -- 3.其他函数 -- 加解密函数  AES_ENCRYPT(str,key_str) , AES_DECRYPT(crypt_str,key_str)  # 这些函数允许使用官方AES进行加密和数据加密 (高级加密标准 ) 算法, 即以前人们所熟知的 “Rijndael”。  # 保密关键字的长度为128比特,不过你可以通过改变源而将其延长到 256 比特。我们选择了 128比特的原因是它的速度要快得多,且对于大多数用途而言这个保密程度已经够用。 DECODE(crypt_str,pass_str)  # 使用 pass_str 作为密码,解密加密字符串 crypt_str, crypt_str 应该是由ENCODE()返回的字符串。  ENCODE(str,pass_str)  # 使用pass_str 作为密码,解密 str 。 使用DECODE()解密结果。 DES_DECRYPT(crypt_str[,key_str])  DES_ENCRYPT(str[,(key_num|key_str)])  使用DES_ENCRYPT()加密一个字符串。若出现错误,这个函数会返回 NULL。 注意,这个函数只有当MySQL在SSL 的支持下配置完毕时才会运作。请参见5.8.7节,“使用安全连接”.  假如没有给定 key_str 参数,  DES_DECRYPT() 会首先检查加密字符串的第一个字节, 从而确定用来加密原始字符串的DES密码关键字数字, 之后从DES关键字文件中读取关键字从而解密信息。为使其运行,用户必须享有 SUPER 特权。可以选择--des-KEY-file服务器指定关键字文件。 假如你向这个函数传递一个key_str 参数,该字符串被用作解密信息的关键字。 若 crypt_str 参数看起来不是一个加密字符串, MySQL 会返回给定的 crypt_str。  OLD_PASSWORD(str)  当PASSWORD()的执行变为改善安全性时,OLD_PASSWORD()会被添加到 MySQL。OLD_PASSWORD()返回从前的PASSWORD()执行值( 4.1之前), 同时允许你为任何4.1 之前的需要连接到你的5.1 版本MySQL服务器前客户端设置密码,从而不至于将它们切断。请参见5.7.9节,“MySQL 4.1中的密码哈希处理”。  PASSWORD(str)  从原文密码str 计算并返回密码字符串,当参数为 NULL 时返回 NULL。这个函数用于用户授权表的Password列中的加密MySQL密码存储 mysql> SELECT PASSWORD('badpwd'); -> '7f84554057dd964b' PASSWORD() 加密是单向的 (不可逆 )。 SHA1 SHA MD5 等 加密函数。 # 加密解密函数 在MSSQL 中是2005以上版本提供的,而且更为丰富。有对称和非对称的加密方式。   -- 信息函数 1 .CHARSET() 返回 字符集。 2. COLLATION() 返回排序方式,在MSSQL中相当于是排序规则。 3. CONNECTION_ID()  返回当前连接的ID,在MSSQL中的话可以通过动态管理对象查询相关的东西。 4. CURRENT_USER(),USER();SYSTEM_USER(),SESSION_USER() -- 太多重复了。 # 返回当前话路被验证的用户名和主机名组合。这个值符合确定你的存取权限的MySQL 账户。在被指定SQL SECURITY DEFINER特征的存储程序内, CURRENT_USER() 返回程序的创建者。 # CURRENT_USER()的值可以和USER()的值有所不同。如果权限不够 则可能CURRENT_USER 只返回主机名。 5. DATABASE() 返回当前数据库名 在MSSQL 中更丰富 关于DB的属性 DB_NAME DB_ID DATABASEPROPERTY 等相关的函数。 6. FOUND_ROWS()  、 /* A SELECT语句可能包括一个 LIMIT 子句,用来限制服务器返回客户端的行数。在有些情况下,需要不用再次运行该语句而得知在没有LIMIT 时到底该语句返回了多少行。为了知道这个行数, 包括在SELECT 语句中选择  SQL_CALC_FOUND_ROWS ,随后调用 FOUND_ROWS() : mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name    -> WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS(); 第二个 SELECT返回一个数字,指示了在没有LIMIT子句的情况下,第一个SELECT返回了多少行 (若上述的 SELECT语句不包括 SQL_CALC_FOUND_ROWS 选项,则使用LIMIT 和不使用时,FOUND_ROWS() 可能会返回不同的结果)。 */ 7.  LAST_INSERT_ID() LAST_INSERT_ID(expr)  /* 自动返回最后一个INSERT或 UPDATE 问询为 AUTO_INCREMENT列设置的第一个 发生的值。 mysql> SELECT LAST_INSERT_ID(); -> 195 产生的ID 每次连接后保存在服务器中。这意味着函数向一个给定客户端返回的值是该客户端产生对影响AUTO_INCREMENT列的最新语句第一个 AUTO_INCREMENT值的。这个值不能被其它客户端影响,即使它们产生它们自己的 AUTO_INCREMENT值。这个行为保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁或处理。  假如你使用一个非“magic”值来更新某一行的AUTO_INCREMENT 列,则LAST_INSERT_ID() 的值不会变化(换言之, 一个不是 NULL也不是 0的值)。 重点: 假如你使用单INSERT语句插入多个行,  LAST_INSERT_ID() 只返回插入的第一行产生的值。其原因是这使依靠其它服务器复制同样的 INSERT语句变得简单。*/ # 在MSSQL 中 返回自增ID 的方式 有三种 函数,各自针对的级别不一样。 /* @@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 是相似的函数,因为他们都返回插入到表的 IDENTITY 列的最后一个值。 @@IDENTITY 和 SCOPE_IDENTITY 可以返回当前会话中的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。 在2005以后可以用 INSERT OUTPUT 返回值更为稳妥。 */ 8. ROW_COUNT()  # ROW_COUNT()返回被前面语句升级的、插入的或删除的行数。 这个行数和 mysql 客户端显示的行数及 mysql_affected_rows() C API 函数返回的值相同。 # 此函数 在MSSQL 中是@@rowcount 9.  VERSION(); 返回版本住处。 在MSSQL中 @@VERSION 全局变量。 10. UUID () 返回全球唯一标识 符,与 MSSQL NEWID()一样。 -- 聚合函数  比较特别的有  1. GROUP_CONCAT(expr)  该函数返回带有来自一个组的连接的非NULL值的字符串结果。其完整的语法如下所示:   GROUP_CONCAT([DISTINCT] expr [,expr ...]     [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]]     [SEPARATOR str_val]) # 最常用 可以实现 聚合累加字符串 值,但是在MSSQL中2000以前只能自己写自定义函数,在2005以后可以用FOR XML 表达式来实现 其他 一些 MAX MIN COUNT SUM 还有一些数学统计函数 基本都类似。 -- CONVERT ,CAST 显式转换。 关于隐式转换 MYSQL 没有 类型优先级说明,不过大致应该也类似 MSSQL 中的 显示转换的话 MSSQL 中也是这两种函数。 CAST(expr AS TYPE), CONVERT(expr,TYPE) , CONVERT(expr USING transcoding_name)  CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。  这个类型 可以是以下值其中的 一个:   BINARY[(N)]  CHAR[(N)]  DATE  DATETIME  DECIMAL  SIGNED [INTEGER]  TIME  UNSIGNED [INTEGER]  -- 在MSSQL 中 CAST 是类似 的,不过TYPE 则不一样,比如可以转成 你可以写的任意类型,只要能转的过去。 -- 在MSSQL 中 CONVERT 则带有 一个 转换的格式 标志,比如时间的格式 代号,还有 金额,浮点 转成字符的 代号, -- 总体来说 MYSQL 函数 比起MSSQL 来说 有些比较优秀,但是缺少很多 关于元数据的函数,还有一些其他函数

mysql 聚合函数内比较运算符_关于常用 MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结...相关推荐

  1. mysql内置变量_详解MySQL注入利用的变量

    MySQL注入数据库时,我们可以利用内置的变量来得到更多的mysql信息,下面就让我们一起来了解MySQL注入利用的变量. 当我们注射mysql库的输入点的时候,可以通过version()/user( ...

  2. mysql 查询自取一条_数据库常用命令个人汇总(自用,有爱自取)

    如果只是简单的操作数据库的话,包括和Java等语言的联动,基本上一天速成是没什么毛病的.此文章用于自查简单语句用,非泛用型教程.有爱自取,长期不定期更新 注:大部分事例代码根据<SQL基础教程总 ...

  3. sae mysql 同步本地_MYSQL入门之三_将本地MySQL数据导入SAE数据库_MySQL

    bitsCN.com MYSQL入门之三_将本地MySQL数据导入SAE数据库 1. MySQL字符集 MySQL的默认字符集是latin1,将本地MySQL库导出成sql,再导入到SAE的MySQL ...

  4. mysql查看现在使用的引擎_如何查看MySQL的当前存储引擎?

    如何查看MySQL的当前存储引擎? 一般情况下,mysql会默认提供多种存储引擎,你可以通过下面的查看: 看你的mysql现在已提供什么存储引擎: mysql> show engines; 看你 ...

  5. mysql双机热备 读写分离_轻松搭建MySQL主从复制、读写分离双机热备)

    注意:如果此步骤始终为空设置(0.00秒),则表示先前的my.cnf配置不正确,请返回并重试检查配置步骤. (从)数据库中的配置 1.修改从属库的数据库配置文件 [root @ localhost]# ...

  6. mysql中获取时间的年月日_详解mysql 获取当前日期及格式化

    MySQL 获取当前日期及日期格式 获取系统日期: NOW() 格式化日期: DATE_FORMAT(date, format) 注: date:时间字段 format:日期格式 返回系统日期,输出 ...

  7. mysql数据库+易语言的应用_易语言mysql数据应用源码

    易语言mysql数据应用源码 易语言mysql数据应用源码 系统结构:注册账号,连接Mysql,用户注册验证码,修改密码验证码,忘记密码验证码,修改密码,忘记密码, ======窗口程序集1 | | ...

  8. 分段函数是不是一定初等函数_不可化为一个表达式的分段函数是不是初等函数?,分段函数是不是初等函数,那这个呢?...

    一.观察法 通过对函数定义域.性质的观察,结合函数的解析式,求得函数的值域. 例1求函数y=3+√2-3x 的值域. 点拨:根据算术平方根的性质,先求出√2-3x 的值域. 解:由算术平方根的性质,知 ...

  9. mysql 查询用户最后登陆时间_弄懂mysql:mysql的通信协议

    我准备从mysql的实现出发,将mysql好好理解一下,从他的逻辑结构一层一层出发,感受一下,所以再学第一层之前,要先对mysql整体的逻辑结构有一个初步认识 mysql逻辑架构 整体来说,MySql ...

最新文章

  1. WebStorm 2018版本破解方法
  2. latex快速入门教程
  3. python与正则表达式(part1)--元字符
  4. ArcGIS AO开发高亮显示某些要素
  5. ORACLE字符集基础知识
  6. UVa 10935 - Throwing cards away I
  7. 微服务项目部署在docker容器运行
  8. java 并发多线程显式锁概念简介 什么是显式锁 多线程下篇(一)
  9. 全新定义!免费开源ERP平台如何玩转工业互联网
  10. origin刻度消失_使用Origin制作XRD图基本技巧,你get到了嘛?
  11. 拼多多联盟-使用pid和custom_parameters进行备案
  12. 电视html转vga没有声音,怎样才能让HDMI转VGA连接电视能播放声音?
  13. 《汉魏风云》2、孙吴兵法第一传人——辛苦的天才曹操
  14. 用html作小米官网首页效果,html+css实现小米商城首页静态页面
  15. [转]拍照怎么搜题?(下)
  16. 灰度发布、蓝绿部署、金丝雀都是啥?
  17. Linux下安装hadoop的步骤
  18. Vue的模板语法及案例
  19. 计算机专业吐槽搞笑,大学里那些专业搞笑描述,简直太形象了!网友:逗死我了!...
  20. 在myeclipse配置的server中不能部署工程,报错如下:no projects are avaiable for deploment

热门文章

  1. idea配置连接oracle数据库的pom文件中添加什么?
  2. 【PAT甲级 最长公共子串】1007 Maximum Subsequence Sum (25 分) C++ 全部AC
  3. 【Java音频操作】调用有道词典语音接口,生成单词MP3文件,支持自定义重复次数
  4. 【Java Calendar日历类】可视化日历程序(控制台输出)
  5. 汇编语言 明明定义了栈仍然no stack segment 以及栈空间数据被篡改问题
  6. C# 窗体输入个人信息 存入txt 窗体输出
  7. 08.update_by_query操作
  8. 通俗易懂两种常用的多线程实现方式——Java并发系列学习笔记
  9. KeyError: 报错_python系列学习笔记
  10. 算法竞赛入门经典(第二版) | 习题3-10 盒子 (pair结构体)(UVa1587,Box)