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;
多个列不同的排序方式,先按照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的基本知识 -- 命令的更多相关文章
- mysql 索引相关知识
由where 1 =1 引发的思考 最近工作上被说了 说代码中不能用 where 1=1,当时觉得是应该可以用的,但是找不到什么理据, 而且mysql 语句优化这方面确实很薄弱 感觉自己mysql ...
- mysql数据库相关知识
什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库.(来自:百度) 什么是sql? 结构化查询语言(Struct ...
- MYSQL 数据库导入导出命令
MySQL命令行导出数据库 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Serve ...
- mysql 登录及常用命令
一.mysql服务的启动和停止 mysql> net stop mysql mysql> net start mysql 二.登陆mysql mysql> 语法如下: mysql - ...
- mysql一些写常用命令
参见pcttcnc2007博客腾飞 1.mysql的status信息命令: mysql> show global status; 2.可以列出mysql服务器运行各种状态值,另外,查询mysql ...
- mysql中的load命令使用方法
使用mysql 中的load 命令,可以将txt 文件中的内容加载到数据库表中 使用mysql 中的load 命令,讲txt 文件中的内容加载到数据库表中,例如,创建table,名称是user,一个字 ...
- mysql查看表结构命令
mysql查看表结构命令 mysql查看表结构命令,如下: desc 表名;show columns from 表名;describe 表名;show create table 表名; use inf ...
- 查看MySQL数据库表的命令介绍
如果需要查看MySQL数据库中都有哪些MySQL数据库表,应该如何实现呢?下面就为您介绍查看MySQL数据库表的命令,供您参考. 进入MySQL Command line client下查看当前使用的 ...
- MySQL中EXPLAIN解释命令详解
MySQL中的explain命令显示了mysql如何使用索引来处理select语句以及连接表.explain显示的信息可以帮助选择更好的索引和写出更优化的查询语句. 1.EXPLAIN的使用方法:在s ...
随机推荐
- Https网站搭建——通过https://localhost:8443访问tomcat首页
图片大致介绍了Https浏览器与服务器握手的过程,涉及到的名词:证书.Hash算法.随机数密码.公钥加密.私钥解密.握手消息.hash验证.摘要 tomcat服务器配置可以实现https双向认证,简单 ...
- 【UI插件】简单的日历插件(下)—— 学习MVC思想
前言 我们上次写了一个简单的日历插件,但是只是一个半成品,而且做完后发现一些问题,于是我们今天尝试来解决这些问题 PS:距离上次貌似很久了 上次,我们大概遇到哪些问题呢: ① 既然想做一套UI库,那么 ...
- 初识JQuery
轻量级的js库 兼容各种浏览器+css3 传统:js+DHTM jq:解放了客户端的编程, 环境搭建 进入官方网站获取最新的版本 http://jquery.com/download/ ,这里需 ...
- php每天一题:strlen()与mb_strlen()的作用分别是什么
strlen()与mb_strlen()都是用于获取字符串长度的,那么它们两个有什么不同? strlen()与mb_strlen()的不同之处在于mb_strlen()第二个参数可以用于指定字符编码. ...
- 网络分析之Pgrouting(转载)
网上关于Pgrouting的使用介绍太简单了,这里想详细的总结一下Pgrouting的使用,其实主要参照官方文档:http://workshop.pgrouting.org/ 第一步:配置环境 关于P ...
- iOS Swift-HelloWord
iOS Swift-HelloWord 按部就班选择Swif开发语言,输出HelloWord. override func viewDidLoad() { super.viewDidLoad() pr ...
- Android Studio 导入百度地图jar和so的正确方式
//这部分内容在百度地图的官方文档中写的比较模糊 //感觉在这种事情上浪费实际很不好,遂记录如下 //以下仅是方法之一 step1 下载sdk后解压,并把libs中的全部内容拷贝到app/libs目录 ...
- C++算法实源码分析
includes: // TEMPLATE FUNCTION includes WITH PRED template<class _InIt1, class _InIt2, class _Pr& ...
- rails中的form_for
1 form_for方法是ActionView::Helpers::FormHelper模块内的方法,所以可以在ActionView的实例中直接调用 2 from_for方法的原型为form_for( ...
- Windows下使用Xshell建立反向隧道
反向隧道是一个进行内网穿透的简单而有用的方法.在Linux下通过OpenSSH和AutoSSH可以很容易地建立稳定的反向隧道.但是在Windows下,还能看到有人特意装个Cygwin来运行这些工具…… ...