简单的mysql查询
mysql是基于客户机—服务器的数据库。客户机—服务器应用分为两个不同的部分。服务器部分是负责所有数据访问和处理的一个软件。
连接mysql
要连接mysql需要知道如下
- 主机名: 本地为localhost
- 端口: 默认为3306,如更改必须加上此项
- 用户名
- 密码
基本数据库命令
显示所有数据库
SHOW DATABASES;
选择数据库
USE databasename;
显示所有表
SHOW TABLES;
显示表列
SHOW COLUMNS FROM tablename
等同于
DESC tablename;
其他show语句
- SHOW STATUS,用于显示广泛的服务器状态信息;
- SHOW GRANTS,用来显示授予用户(所有用户或特定用户)的安全权限;
- SHOW ERRORS和SHOW WARNINGS,用来显示服务器错误或警告消息.值得注意的是,客户机应用程序使用与这里相同的MySQL命令。
检索数据
语法: SELECT _ FROM tablename;
_代表特定的一列或几列
例如: SELECT * FROM tab1; 从tab1中取出所用列的数据
SELECT name FORM tab1; 从tab1中取出name列的数据
SELECT name, age FROM tab1; 检索多个列
检索不同的行
SELECT返回所有匹配的行。如果你不想要每个值每次都出现,而是希望同样的值只出现一次,就要使用DISTINCT关键字
SELECT DISTINCT age FROM tab1; 只返回所有不同的age
限制检索结果
LIMIT子句
SELECT name FROM tab1 LIMIT 5; 显示小于等于5条数据(如果不足五条就小于)
SELECT name FROM tab1 LIMIT 10, 5; 从第十行开始检索五行
排序数据
首先注意,如果不明确控制的话,直接从数据库中检索的数据不能视为已排序数据。
子句(clause): SQL语句由子句构成,有些子句是必需的,而
有的是可选的。一个子句通常由一个关键字和所提供的数据组
成。例如,前面的SELECT语句的FROM子句和LIMIT子句
ORDER BY子句
ORDER BY子句用来排序检索的数据
单个列排序
SELECT name FROM tab1 ORDER BY name; 以将name列以字母顺序排序
SELECT name FROM tab1 ORDER BY age; 以age列的数字大小排序
多个列排序
SELECT name, age FROM tab1 ORDER BY name, age; 先按name排序,再按age排序,只有当name有重复的值时,才会按照age排序
指定排序方向
OEDER BY 默认升序排列(A-Z),在mysql大小写字母被视为相同,DESC 关键字:降序排列(Z-A),还有的ASC是升序排列,用处不大
一个小栗子:
找出一组数据中最大的几个数
SELECT name FROM tab1 ORDER_BY age DESC LIMIT 5