您的位置:首页 > 数据库 > MySQL

MySQL的基本知识 -- 命令

2016-05-15 21:55 651 查看

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;

多个列不同的排序方式,先按照

columnName1
DESC
排序,在按照
columnName2
ASC
排序。

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 BY
WHERE
时,应该让
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.

LIKE
REGEXP
之间有一个重要的区别:
: 在不使用通配符
%
_
时,
LIKE
不返回结果
:
REGEXP
返回所有匹配的结果
: 2.正则匹配不区分大小写。如果需要区分大小写,可以使用
BINARY
关键字,如
SELECT * FROM tableName WHERE columnName REGEXP BINARY '.000';

注意:
: 为了匹配特殊字符,必须使用

\\
为前导。
\\.
表示查找
.
.
: MySQL使用两个反斜杠,MySQL自己解释一个,正则表达式库解释另一个。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: