MySQL基础

Posted at:
October 13, 2017

1 简介

MySQL是最流行的关系型数据库管理系统,本文主要介绍MySQL的基本知识。

另外SQL是结构化查询语言(Structured Query Language),适用于多种数据库。
本文示例主要采用标准SQL,尽量不涉及非标准的SQL。

2 安装

官网下载地址 根据你的系统选择社区版下载、安装即可。

3 连接

通过以下命令可以连接到MySQL数据库。

如果连接不成功,可能是MySQL服务还没启动。

4 数据库创建/删除

4.1 创建

CREATE DATABASE 用于创建数据库。

比如说建立名为my_db的数据库:

4.2 删除

DROP语句可以删除数据库。

5 表的创建/删除

5.1 创建

CREATE TABLE 语句用于创建数据库中的表。

比如说建立名为Persons的表:

5.2 删除

DROP TABLE语句可用于删除表。

6 插入数据

INSERT INTO语句可用于向表中插入新的一行。

比如说在Persons表插入新的一行:

又或者只在指定列中插入数据(其他列数据将为空):

7 查询数据

SELECT 语句用于从表中选取数据。
其中 SELECT * 代表选取所有列。

比如说从Persons表选取LastName和FirstName两列的结果:

又或者从Persons表选取所有列的结果:

8 修改数据

UPDATE语句用于修改表中的数据,一般与WHERE子句配合使用。

比如说修改王小明的地址:

9 删除数据

DELETE 语句用于删除表中的行,一般与WHERE子句配合使用。

比如说从Persons表中删除王小明的数据:

10 WHERE

如需有条件地从表中选取数据进行操作(查询、修改、删除等),可将WHERE子句添加到对应SQL语句。 比如说从Persons表中删除王小明的数据:

11 AND、OR

AND和OR可在WHERE子语句中把多个条件结合起来进行逻辑运算。
AND是逻辑与运算,需要所有条件都成立。
OR是逻辑或运算,只需要其中一个条件成立即可。
比如说从Persons表中删除王小明的数据:

12 ORDER BY

ORDER BY语句可用于根据指定的列对结果集进行排序。
ORDER BY语句默认排序为升序。
如果您希望按照降序对结果进行排序,可以使用 DESC 关键字。
比如说以逆字母顺序显示公司名称,并以数字顺序显示订单号:

13 DISTINCT

符合条件的结果可能存在重复项,如需去除重复项可以使用 DISTINCT 关键字。

14 别名Alias

通过使用 AS 关键字,可以为列和表指定别名(Alias)。

14.1 表的别名

假设我们有两个表分别是:"Persons"和"Orders",分别指定别名为"p"和"o"。
通过以下SQL语句可以列出"John Adams"的所有订单:

不使用别名则需要这么写:

另外当过滤条件涉及到同一表中某些列之间的关系,使用别名可以很好地解决。
比如说列出比领导赚得更多的员工:

Id Name Salary ManagerId
1 Joe 7000 3
2 Henry 8000 4
3 Sam 6000 NULL
4 Max 9000 NULL

14.2 列的别名

比如说LastName取别名为Family,FirstName取别名为Name:

15 JOIN

JOIN用于根据多个表中列之间的关系,从这些表中查询数据。

16 UNION

UNION用于合并多个SELECT语句的结果集。
需要注意的是这些SELECT语句必须拥有相同列数、列数据类型、列定义顺序。 比如说列出所有在中国和美国的不同的雇员名:

Modified at: October 13, 2017