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
-
分享