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自己解释一个,正则表达式库解释另一个。
相关文章推荐
- MySQL多表SQL查询
- MySQL常用函数示例
- mysql sql
- jdbc在mysql下一次执行多条sql脚本
- MySQL资源大全
- MySQL常用函数
- mysql字符集修改
- mysql性能优化-慢查询分析、优化索引和配置 分析
- mysql小记
- mysql5.7中的一个update order by排名问题解决办法(一条sql搞定排名)
- MySQL 资源大全
- 干货!MySQL 资源大全
- mysql时间戳
- mysql 获取某字段不重复数据,删除某字段重复数据
- ununtu15.10源码编译安装mysql5.7.11
- MySQL 安装SphinxSE存储引擎
- 为什么要对MySQL做主从同步复制
- mysql char varchar 二三事
- mysql慢查询分析
- MySQL轻量版使用,无需安装,无脑操作