目录
一、数据库基础
1. 数据库术语
- 数据库(Database,DB):保存有数据的容器
- 数据库管理系统(DBMS):数据库软件
- 表(table):某种特定类型数据的结构化清单
- 模式(schema):数据库和表中数据如何存储如何命名等的信息
- 列(column):表中的一个字段,可以从Excel的列去理解
- 数据类型(datatype):所允许的数据类型,每个列都有相应的数据类型
- 行(row):表中的一个记录(record)
- 主键(primary key):一列或一组列,能够唯一标识标中的每一行
2. SQL
SQL全称是结构化查询语言(Structured Query Language),是一种与数据库沟通的语言,而MySQL是DBMS的一种。
二、检索数据
1. 检索单个列
SELECT 列名
FROM 表名;
- 返回的数据没有特定的顺序,除非排序查询结果
- 多条SQL语句必须以分号分隔
- SQL语句不区分大小写
- SQL中所有的空格都会被忽略,所以是否分行写是不会影响的
2. 检索多个列
SELECT 列名1,列名2,列名3
FROM 表名;
3. 检索所有列
SELECT *
FROM 表名;
- 星号*表示通配符,一般不会去检索所有列,不过有个好处是可以检索到名字未知的列
4. 检索一列或多列中的可能值(值不重复)
SELECT DISTINCT 列名1,列名2,列名3
FROM 表名;
- DISTINCT后面的列看成是整体
5. 限制输出的数量
不同的数据库不一样,MySQL中是用LIMIT和OFFSET关键字实现的:
SELECT 列名
FROM 表名
LIMIT 5;
- 返回前5行数据
SELECT 列名
FROM 表名
LIMIT 5 OFFSET 2;
- 返回从第2行(从第0行开始数)起的5行数据
6. 注释方法
不同的数据库不一样,MySQL中是用--或#做行内注释,用/* */做多行注释。
三、对输出数据进行排序
1. 按一个列进行排序
SELECT 列名
FROM 表名
ORDER BY 列名;
- ORDER BY子句放在最后,对输出进行排序,默认是升序(小到大,a-z,0-9)
- ORDER BY的列名可以不是SELECT的列
2. 按多个列进行排序
SELECT 列名1,列名2,列名3
FROM 表名
ORDER BY 列名2,列名3;
或者按照列的位置排序(尽量别用)
SELECT 列名1,列名2,列名3
FROM 表名
ORDER BY 2,3;
3. 降序排序
SELECT 列名
FROM 表名
ORDER BY 列名 DESC;
SELECT 列名1,列名2,列名3
FROM 表名
ORDER BY 列名2 DESC,列名3;
- 对哪个列做降序排序就在列名后面加上DESC关键字,没有加DESC关键字的列名依然是升序排序