MySQL语言结构
1、字符串常量
select 'This\nIs\nFoure\nLines';——\n:换行
2、日期时间常量
select '2008-10-01 14:23:24:00';
变量
1、用户变量
定义和初始化:set @用户变量名=值;
select @用户变量名:=
输出:select @name
赋值
set @user1=1,……;
set @user2=@user1+1;
2、系统变量
(1)获得现在使用的mysqL版本
select @@version;
(2)获得当前时间
select current_time;
(3)全局系统变量
set @@global
当前会话
set @@session
3、数学函数
(1)、greatest():获得一组数中的最大值;
least():获得一组数中的最小值;
(2)、floor():用于获得一个数的最大整数值
ceiling():用于获得一个数的最小整数值
(3)、round():用于获得一个数的四舍五入的整数值
truncate():用于把一个数字截取为一个指定小数的个数的数字,逗号后面的数字表示指定小数的个数
(4)、abs():用来获得一个数的绝对值
(5)、sign():返回数字的符号,返回结果是正数(1)、负数(-1)或者零(0)
(6)、sqrt():返回一个数的平方根
(7)、pow():以一个数作为另一个数的指数
(8)、sin()、cos()和tan():返回一个角度(弧度)的正弦、余弦和正切值
(9)、asin()、acos()和atan():返回一个角度(弧度)的反正弦、反余弦和反正切值
(10)、bin()、otc()和hex():返回一个数的二进制、八进制和十六进制,这个值作为字符串返回
4、字符串函数
(1)、ASCII():返回ASCII的值
(2)、char():转换成一个字符,结果组合成一个字符串
(3)、left(str,x)和right(str,x):分别返回从字符串str左边和右边开始指定x个字符
(4)、trim、ltrim和rtrim函数:删除字符串的首部和尾部的所有空格、删除字符串的左边的所有空格、删除字符串的右边的所有空格
(5)、rpad和lrpad:分别用字符串pad对字符串str的右边和左边进行填补直至str中字符数达到n个,最后返回填补的字符串。若str中的字符个数大于n,则返回str的前n个字符
(6)、replace(str1,str2,str3):用于用字符串str3替换str1中所有出现的字符串str2。最后返回替换后的字符串
(7)、concat(s1,s2,……sn):用于连接指定的几个字符串
(8)、substring(express,start,length):返回ecpression中指定的部分数据。参数expression可为字符串、二进制串、text、image字段或表达式。start和length均为整型,前者指定字符串的开始位置,后者指定子串的长度(要返回字节数)。如果expression是字符类型和二进制类型,则返回值类型与expression的类型相同。如果为text类型,返回的是varchar类型。
(9)、strcmp(s1,s2):用于比较两个字符串,相等返回0,s1大于s2返回1,s1小于s2返回-1
5、日期和时间函数
(1)、now():获得当前的日期和时间
(2)、curtime()和curdate():分别返回的是当前的时间和日期
(3)、year():分析一个日期值并返回其中关于年的部分
(4)、motnth()和monthname():分别以数值和字符串的格式返回月的部分
(5)、dayofyear(),dayofweek()和dayofmonth():分别返回这一天在一年、一星期、一个月的序数
(6)、dayname():以字符串形式返回星期名
(7)、week()和yearweek():返回指定的日期是哪一年的哪一个星期
(8)、hour()、minute()和second():返回时间值的小时、分钟和秒的部分
(9)、date_add()和date_sub():增加和减少日期值,interval表示一个时间间隔。
*加密函数:
(1)AES_ENCRYPT():返回的是密钥key对字符串str利用高级加密标准(AES)算法加密后的结果,结果是一个二进制的字符串,以BLOB类型存储
(2)AES_DECRYPT():用于对用高级加密方法加密的数据进行解密。若检测到无效数据或不正确的填充,函数会返回NULL
(3)ENCODE(str,key):用来对一个字符串str进行加密,返回的结果是一个二进制字符串,以BLOB类型存储
(4)DECODE(str,key):使用正确的密钥对加密后的值进行解密
(5)ENCRYPT(str,salt):使用UNIX crypt()系统加密字符串,接收要加密的字符串和用于加密过程的salt(一个可以确定唯一口令的字符串,在Windows上不可用
(6)PASSWORD(str):返回字符串str加密后的密码字符串,适合于插入到MySQL的安全系统。该加密过程不可逆,和UNIX密码加密过程使用不同的算法。主要用于MySQL的认证系统
控制流函数:
(1)IFNULL(expr1,expr2):判断参数expr1是否为NULL,当参数expr1为NULL时返回expr2,不为NULL时返回expr1。IFNULL的返回值是数字或字符串。
(2)NULLIF(expr1,expr2):用于检验提供的两个参数是否相等,如果相等,则返回NULL,如果不相等就返回第一个参数
(3)IF(expr1,expr2,expr3):这个函数有3个参数,第一个是要被判断的表达式,如果表达式为真,IF()将会返回第二个参数;如果为假,IF()将会返回第三个参数
格式化函数:
(1)FORMAT(x, y):把数值格式化为以逗号间隔的数字序列,第一个参数x是被格式化的数据,第二个参数y是结果的小数位数
(2)DATE_FORMAT():用来格式化日期
TIME_FORMAT():用来格式化和\时间值
DATE_FORMAT/ TIME_FORMAT(date | time, fmt):date和time是需要格式化的日期和时间值,fmt是日期和时间值格式化的形式
(3)INET_NTOA():把数字转换为IP地址
(4)INET_ATON():把IP地址转换为数字
类型转换函数:
(1)CAST(expr, AS type)
expr是CAST函数要转换的值,type是转换后的数据类型。
系统信息函数:
(1)DATABASE():返回当前数据库名
(2)USER():返回当前用户
(3)VERSION():返回MySQL版本信息
(4)BENCHMARK():用于重复执行n次表达式expr
(5)FOUND_ROWS():返回最后一个SELECT语句返回的记录行的数目