Mysql关键字详解

1. terminated by 导入导出分隔符

导出一张表。字段以|分隔并用"括起来。

select * from comment into outfile 'D:/working/ttt.txt' fields terminated by '|' enclosed by '"';
select * from p_policy into outfile 'c:/a.txt' fields terminated by '|';
导入一份数据倒表中
load data infile "D:/working/ttt.txt" into table p_policy fields terminated by "|";

2.CALL 用于调用存储过程

如:CALL showUser()

3.CURRENT_DATE 用于获取当天日期

如“SELECT CURRENT_DATE”返回的就是当天的日期

4.CURSOR 用于声明mysql中的游标,用在存储过程中,有充当指针的作用

用法:“DECLARE 游标名称 CURSOR FRO 查询出的结果集”

5.DISTINCT 去除重复的数据

只能返回去重的数据,必须是在查询的第一个字段,常用来查询某一字段有多少条不重复的数据。

SELECT COUNT(DISTINCT name) FROM user

EXPLAIN 用查看一个sql的执行,有没有加入索引或是有没有做全表扫描等

使用方式:在SELECT前加上,如EXPLAIN SELECT * FROM user

6. FULLTEXT 全文索引,用于优化查询速度

可以在创建表时加入FULLTEXT(字段1, 字段2),也可以在创建表之后单独加入ALTER TABLE 表名 ADD FULLTEXT INDEX 索引名 (字段名)需要注意的是添加索引是,表引擎要使用MyISAM不然会报错The used table type doesn't support FULLTEXT indexes

7.MOD 取余函数

如:select mod(12,5)返回余数2

8.RLIKE 模糊查询

与like不同的时,rlike的内容可以是正则,且可以不完全匹配

如:select * from user where email RLIKE '^www.*$';

9. XOR 表示逻辑异或

,当任意一个操作数为NULL时,返回值为NULL,对于非NULL的操作数,如果两个的逻辑真假值相异,则返回结果为1,否则为0

如:select true XOR null;select true XOR true;select true XOR false;

10.USING 连接

查询时如果是字段名相同则可以作为连接条件,using可以代替on出现

如:select * from user left join students USING(quanxian)

11. WHILE 循环语句关键词

用在存储过程中,需结合流程控制语句来使用

如:CREATE PROCEDURE fun() BEGIN SET @sum:=10; WHILE @sum > 0 DO SELECT @sum; SET @sum:=@sum-1; END WHILE; END CALL fun(); DROP PROCEDURE fun

12.SEPARATOR 可将查询结果用字符串连接变为一行

SEPARATOR指定连接符,需配合GROUP BY使用

如:SELECT *, GROUP_CONCAT(username order by username separator ';') SCORE FROM user GROUP BY email RLIKE '^www.*$'

13.RIGHT 对字符串进行截位操作

如:select RIGHT('这是一个字符串',5),会倒序截取指定位数的字符串

14.REPEAT 将给定数据当做字符串复制指定次数

如:select REPEAT(3,3)得出的结果为“333

15.RENAME 修改表名称

使用:rename table user2 to user3;

16.NATURAL 自然连接

是JOIN 的一种,特点是将表中具有相同名称的字段自动进行记录匹配,而这些同名字段类型可以不同,所以表中字段的类型可以不同,可以应用在INNER ,LEFT 等JOIN中

例:select * from user NATURAL LEFT JOIN user2 在这里user与user2的区别是除了id之外user2字段后会加上1,这将导致连接时自动使用id进行关联,结果也确实如此	

17.OPTIMIZE 作用:优化整理整理表的碎片及索引

在数据库存储数据时数据库会分配表空间,及索引给该数据当数据删除后数据库并不会收回这些资源而是等待新的数据填补这些空缺,使用OPTIMIZE关键字可以主动清除这些被占用的资源

用法:optimize table 表名称	

18.RANGE 分区

基于一个给定的区间范围,要求给定区间中这个字段的值是连续的,当执行操作时会走相应的分区,可以极大的提升效率,要求是如果该表有主键的话作为分区字段也应该在主键的行列

用法:建表语句+PARTITION BY RANGE (xuehao) (PARTITION p0 VALUES LESS THAN (6),PARTITION p1 VALUES LESS THAN (11),PARTITION p2 VALUES LESS THAN (16), PARTITION p3 VALUES LESS THAN (21));

19.LEAVE Leave语句表明退出指定标签的流程控制语句块

通常会用在begin…end,以及loop, repeat, while的循环语句中,就好像编程中的break一样,使用方式LEAVE 循环名; 在这里插入图片描述
LEFT LEFT()函数是一个字符串函数,它返回具有指定长度的字符串的左边部分。

如:SELECT LEFT(name,3) FROM user	

20.LIKE 用于模糊搜索

可以搭配%与_共同使用,%代表查询一个或多个通配符,而_代表一个字符

如:SELECT * FROM user WHERE name LIKE '%i'可以查询到所有name中以i结尾的数据,将%换成_之后,查询条件就变成了查询name中以i结尾并且前面只有一个字符的数据

21.LIMIT 用于分页查询

如:SELECT * FROM user LIMIT 4,5 其中第一个参数为起始条数 如上例就是从第4条数据开始返回,第二个参数为偏移量如上例所示参数为5则表示返回从第4条的后5条数据,之前偏移量可以为-1代表查询起始条数后的所有数据,但是这个写法被mysql官方认定为一种错误,所以较新版的mysql都不能用了,最好的办法就是给一个比较大的数字

猜你喜欢

转载自blog.csdn.net/shugyin/article/details/124710115
今日推荐