配置、查看
- ➕环境变量:
vim ~/.bash_profile
,把mysql/bin放进去。 mysql -u root -p
show databases;
create database dbname;
use dbname
show tables;
-
show columns from tbname;
=describe tbname;
- 查看建表语句:
show create table tbname;
- 查看所有允许的show语句:
help show
- SQL语句不区分大小写,分号结尾。
检索 SELECT
- 最基本:
SELECT 列名用逗号分隔 FROM 表名
-
子句的顺序:from、where、order by、limit
- 所有列: *
- 去重:只能在第一个列名前➕DISTINCT,效果是DINSTINCT应用于所有列出的列拼接得到的结果。
- LIMIT子句
行号从0起。
select xxx from tbxx limit 10; 返回不超过10条记录。
select xxx from tbxx limit 3, 5; 返回从行3开始的,不超过10条记录。相当于 select xxx from tbxx limit 5 offset 3;
排序检索到的结果 ORDER BY子句
- 可以用非检索的列排序
- 按多个列排序:逗号分隔列名(优先级高到低)
- 默认升序ASC,指定降序用DESC关键字:DESC关键字只作用于它之前的一个列名。
- order by,limit结合
过滤数据 WHERE子句
where子句指定搜索条件/过滤条件。
- between A and B包括A,B
数值直接写,字符串用单引号
-
空值检查:设计表的时候可以指定某列是否可以不包含值,即为NULL。
过滤时用WHERE xxx IS NULL
-
组合WHERE子句
- 用逻辑操作符号 AND, OR。AND优先级更高。
- 运算次序:注意加小圆括号。
IN:相当于OR
where A = val1 or A = val2 or A = val3 就是 where A in (val1, val2, val3)NOT:否定后跟条件。where A not in (1, 2, 3)
-
通配符
- search pattern(搜索串)中的字符可以是区分大小写的。
- LIKE操作符:使用通配符必须使用LIKE操作符。
- %
%表示任意字符出现任意次数,但%匹配不到NULL。
‘%lla’,‘%il%’,‘r%ing’…… - _ 下划线
下划线表示任意字符出现一次。 - 使用通配符的搜索会更耗时,少用。
MySql正则表达式 regular expression
MySQL正则表达式只支持正则表达式的一个很小的子集。
MySQL正则表达式匹配不区分大小写,若要区分,使用REGEXP BINARY。-
基本字符匹配:
关键字REGEXP
匹配任意一个字符 .
REGEXP与LIKE区别:
进行OR匹配 符号|
WHERE car_id REGEXP '1000|2000|3030'-
匹配几个字符之一
[一组字符]:表示匹配这组字符中的一个
[123] 就是 [1|2|3]:匹配1或2或3
[^123] 匹配除123外的字符
匹配范围:[0-9] 匹配任意一个数字
匹配特殊字符:\为前导(转义)
WHERE name REGEXP '\.' 查找name含.的