MySQL基础之特殊形式的查询
编辑特殊形式的查询
特殊形式的查询
-
子查询 : 内层语句查询的结果可以作为外层语句查询的条件
语法SELECT 字段名称 FROM tb_name WHERE col_name = (SELECT col_name FROM tb_name)
子查询的情况
-
由IN引出的子查询
-
由比较运算符引出的子查询
-
由exists引发的子查询
-
由
ANY SOME ALL
引发的子查询, -
INSERT ...SELECT
将查询结果集插入到这个表中 -
CREATE ... SELECT
可以才创建表的时候将另一个表中的数据写入到新表中 -
CREATE TABLE tb_name LIKE tb_name2
按照一个表的结构创建另一个结构一样的表
-
联合查询
- UNION 会自动合并去除重复的值
SELECT 字段名称 ,... FROM tb_name UNION SELECT 字段名称, ... FROM tb_name2
- UNION ALL 简单合并两个表的查询结果集 ,都会显示出来
SELECT 字段名称 ,... FROM tb_name UNION ALL SELECT 字段名称, ... FROM tb_name2
自身连接查询
- 无限极分类
MySql 常用函数
数学函数
CELL()
进一取整,ABS()
取绝对值FLOOR
舍掉小数部分POWER()
幂运算ROUND()
四舍五入PI()
圆周率TRUNCATE()
截取小数点后几位RAND()或者RAND(X)
0-1 之间的随机数MOD()
取余数SIGN()
得到数字符号EXP()
计算得到E的X次方
字符串函数
-
SELECT CHAR_LENGTH('abc');
SELECT CHAR_LENGTH 得到指定字符串的字符数 -
SELECT LENGTH('abc')
SELECT LENGTH 返回字符串的长度 -
SELECT CONCAT('a','b','c')
SELECT CONCAT 将字符串合并成一个字符串 -
SELECT CONCAT('a','b','c',null)
如果字符串中包含null,那么返回的结果就是null -
SELECT CONCAT_WS('-','''a','b','c')
以指定字符拼接字符串 -
SELECT CONCAT_WS('-','a','b','c',null);
这样会拼接空字符 -
SELECT CONCAT_WS(null,'a','b','c');
以null拼接会返回空字符 -
SELECT UPPER('hello world'),UCASE('hello world') ,LOWER('HELLO WORLD ') ,LCASE(''HELLO WORLD'')
将字符串转换成大写或者小写 -
SELECT REVERSE('abc')
字符串的反转 结果为cba
-
SELECT LEFT('hello',2) , RIGHT('hello',2)
LEFT()|RIGHT() 返回字符串的前几个字符或者后几个字符 -
SELECT LPAD ('abc' ,10,'?')
用自定字符填充到指定长度 -
SELECT RPAD ('abc' ,10,'!')
-
SELECT TRIM(' abc ') , LTRIM(' abc'), RTRIM('abc ')
去掉空格,左边的空格或者右边的空格 -
SELECT CONCAT('*', TRIM(' abc '),'*') , LTRIM(' abc'), RTRIM('abc ')
去掉空格,左边的空格或者右边的空格 -
SELECT REPEAT('hello',3)
字符串重复指定的次数 -
SELECT REPLACE('hello king ','king','queen'
替换指定的字符串 -
SELECT SUBSTRING('abcdef',1,3)
截取字符串,从第几位开始截取几个字符 -
SELECT STRCMP ('a','z')
比较字符的assic 码,第一个字符大于第二个返回1,否则返回-1
常用日期函数
-
SELECT CURDATE(),CURRENT_DATE()
返回当前日期 -
SELECT CURTIMe(),CURRENT_TIME()
返回当前时间 -
SELECT NOW() ,CURRENT_TIMESTAMP(),SYSDATE()
返回当前的日期时间 -
SELECT MONTH(2017-02-19)
返回日期中的月份和月份的名称 -
SELECT MONTH(CURDATE()),MONTHNAME(CURDATE())
-
SELECT DAYNAME(NOW())
返回星期几 -
SELECT DAYOFWEEK(NOW())
返回一周内第几天 -
SELECT WEEK(NOW())
-
SELECT YEAR(NOW()),MONTH(NOW()),DAY(NOW()),HOUR(NOW()),MINUTE(NOW()),SECOND(NOW())
-
SELECT DATEDIFF('2017-03-01','2017-03-05')
计算两个日期相差的天数 -
SELECT DATE_FORMAT('2016-06-01','%Y/%m/%d')
格式化日期
其他常用函数
SELECT VERSION()
返回当前的数据库版本SELECT CONNECTION_ID
返回当前数据库连接,查看当前线程的idSELECT DATABASE(),SCHEMA();
得到当前的数据库SELECT USER(),CURRENT_USER(),SYSTEM_USER(),SESSION_USER();
得到当前登陆的用户SELECT LAST_INSERT_ID();
得到上次插入操作产生的auto_increment的值SELECT MD5('king')
加密函数MD5值SELECT PASSWORD('123456')
mysql 默认的加密函数,密码加密算法,例如用户的密码,不可以使用md5
- 0
- 0
-
分享