MySQL的基本知识 -- 命令

MySQL的基本知识 -- 命令

1.数据库和表

SHOW DATABASES;

返回可用数据库的一个列表

SHOW TABLES;

返回一个数据库内的表的列表

SHOW COLUMNS FROM tableName;

返回数据表的表结构

2.查询数据

SELECT * FROM tableName;

返回数据表中所有的数据

SELECT columnName FROM tableName;

返回字段名为columnName的数据记录的列表

SELECT columnName1, columnName2 FROM tableName;

返回多个字段值的列表

SELECT DISTINCT columnName FROM tableName;

返回字段值不同的记录,去掉重复的记录。DISTINCT应用于所有的列而不仅仅是前置它的列。

SELECT * FROM tableName LIMIT num;

返回数据表的前num行。

SELECT * FROM tableName LIMIT num1, num2;

返回数据表的num1+1~num1+1+num2行,即返回从num1+1开始(包括自己)的接下来num2行。

SELECT * FROM tableName LIMIT NUM, -1;

返回数据表的第num+1行直到最后一行。

3.数据排序

SELECT * FROM tableName ORDER BY columnName;

依据列columnName进行升序排序

SELECT * FROM tableName ORDER BY columnName DESC;

进行(DESC)降序排列,(ASC)升序排列。

SELECT * FROM tableNAme ORDER BY columnName1, columnName2;

按照多个列排序,先依据列columnName1进行排序,然后按照columnName2排序。

SELECT * FROM tableName ORDER BY columnName1 DESC, columnName2 ASC;

多个列不同的排序方式,先按照columnName1DESC排序,在按照columnName2ASC排序。

4.过滤数据

SELECT * FROM tableName WHERE columnname >= value;

SELECT * FROM tableName WHERE columnName BETWEEN value1 AND value2;

根据WHERE子句的条件查找符合要求的数据记录。如果value为字符串类型,需要使用单引号将value包括起来('value')。

SELECT * FROM tableName WHERE coulmnName = value ORDER BY cloumnName2;

在同时使用ORDER BYWHERE时,应该让WHERE位于ORDER BY之前。

WHERE子句的操作符:

操作符 说明
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
BETWEEN 在指定的两个值之间
SELECT * FROM tableName WHERE columnName IS NULL;

返回空字段值的列表。

SELECT * FROM tableName WHERE columnName1 = value1 AND columnName2 = Value2;

返回满足所有条件的列表

SELECT * FROM tableName WHERE columnName1 = value1 OR columnName2 = value2;

返回满足任一条件的列表

SELECT * FROM tableName WHERE columnName1 = value1 OR columnName2 = value2 AND columnName3 >= value3;

由于在SQL语句中AND操作符的优先级比OR更高,所以该语句就被翻译为

返回字段columnName2等于value2并且columnName3大于等于value3或是columnName1等于value1并且columnName3大于等于value3的列表

SELECT * FROM tableName WHERE (columnName1 = value1 OR columnName2 = value2) AND columnName3 >= value3;

使用括号明确划分分组操作符

SELECT * FROM tableName WHERE columnName IN (value1, value2, value3);

返回columnName的值为(value1, value2, value3)中的一个的列表

5.模糊查询

模糊查询使用LIKE操作符同时使用通配符进行查询匹配

SELECT * FROM tableName WHERE cloumnName LIKE 'value%';

匹配符为%%表示任何字符出现任意次,并且可以位于任意位置进行匹配。该语句匹配所有以value开头的字符串。

注意:
根据MySQL的配置方式,当MySQL区分大小写时'value%'将不匹配VALUES。
SELECT * FROM tableName WHERE cloumnName LIKE 'value_';

匹配符_,_表示只匹配单个字符,不能多不能少。

注意:
1.使用匹配符会大大降低搜索性能,能不用最好不用。
2.匹配符位于模式开始处性能最低,能不放开始就不放在开始。

6.使用正则表达式进行过滤

SELECT * FROM tableName WHERE columnName REGEXP '.000';

语句REGEXP后跟着正则表达式,MySQL将对数据表正则匹配,但会匹配的列表。

注意:
1.LIKEREGEXP之间有一个重要的区别:
在不使用通配符%_时, LIKE不返回结果
REGEXP返回所有匹配的结果
2.正则匹配不区分大小写。如果需要区分大小写,可以使用BINARY关键字,如
SELECT * FROM tableName WHERE columnName REGEXP BINARY '.000';
注意:
为了匹配特殊字符,必须使用\为前导。\.表示查找..
MySQL使用两个反斜杠,MySQL自己解释一个,正则表达式库解释另一个。