MySQL 快速教程将快速向您介绍 MySQL 数据库的基础知识。
世界数据库
MySQL 文档网站提供了一些示例数据库。 我们将使用世界数据库。 数据已过时,但对于我们的测试目的并不重要。
我们使用wget
工具下载压缩文件。
压缩文件大约有 92KB。
我们将文件解压缩。 我们有一个world.sql
文件。
未压缩的文件有 392KB。
我们使用根帐户连接到服务器。 我们需要 root 帐户来创建新数据库,并为我们的新数据库的测试帐户授予权限。
世界数据库已创建。
我们转到世界数据库。 现在,世界数据库是当前数据库。
我们通过执行world.sql
SQL 脚本来构建世界数据库的表。 需要一些时间。
我们向user12
授予对世界数据库的所有对象的特权。
我们退出连接。 重新连接user12
测试帐户并更改为 world 数据库。 我们准备工作。
检查数据库
在本节中,我们将大致看一下 world 数据库的表。
我们用SHOW TABLES
语句显示所有可用表。 有三种。
通过DESCRIBE
语句,我们可以看到City
表的表结构。 我们看到列名及其数据类型。 加上其他重要信息。
如果我们想找出创建City
表的 SQL,我们将发出SHOW CREATE TABLE city
语句。
在这里,我们使用mysqldump
工具备份city
表。
我们使用DROP TABLE
语句删除city
表。 随后的语句验证该表已删除。
我们从备份中重新创建city
表。 source
命令执行备份city.sql
脚本。
查询
查询用于从数据库表中查找数据。
限制数据输出
数据库表中有数千行。 它们无法全部显示在屏幕上。 我们可以使用LIMIT
子句控制要显示的行数。
在上面的查询中,我们显示City
表的五个列中的三个。 表中有很多行。 我们将查询限制为前 10 行。
LIMIT
子句后面可以有两个数字。 第一个是偏移量,第二个是要显示的行数。 我们的查询显示第 16-20 行。
由于city
表具有四千多行,因此我们无法在一个屏幕中看到它们。 我们可以使用 pager 命令以较少的程序显示数据。 我们可以使用光标键或向下翻页,向上翻页键浏览数据。 如果我们想使用默认设置,只需点击不带任何参数的寻呼机即可。
mysql
命令工具可以非交互方式使用。 我们在-e
选项之后指定 SQL 语句,然后将结果重定向到城市文件。 现在我们可以使用任何文本编辑器来显示数据。
COUNT()
,MAX()
,MIN()
函数
COUNT(),MAX(),MIN()是 MySQL 聚合函数,可从聚合数据中计算一些值。
表中有 4079 个城市。 我们使用内置的COUNT()
函数找出行数。
上面的查询显示了表中人口最多的城市。 SQL 是称为 子查询 的特殊查询类型。 外部查询使用内部查询返回的数据。 内部查询以括号为界。
此子查询显示表中人口最少的城市。
使用WHERE
子句选择特定的行
WHERE
子句可用于过滤结果。 它提供了选择条件,仅从数据中选择特定的行。
上面的 SQL 语句返回人口超过一百万的所有城市。
在这里,我们选择所有以“ Kal”开头的城市名称。 我们在表中找到了七个城市。 我们可以使用LIKE
子句在列中查找特定的模式。
此 SQL 代码返回 ID 为 5、23、432 和 2021 的行的城市及其人口。
通过上面的 SQL 语句,我们选择一个特定城市(即布拉迪斯拉发)的所有列。
假设我们想找出人口在两个特定值之间的城市。 为此有一个BETWEEN
运算符。 我们发现了 13 个城市,人口在 670,000 到 700,000 之间。
排序数据
可以使用ORDER BY
子句完成订购数据。
我们找到了十个人口最多的城市。 我们按人口从人口最多的城市到人口最少的城市排序。 我们使用LIMIT
子句限制输出。
在这里,我们得到了人口最少的城市。 这次我们以升序对数据进行排序。 为此,我们使用ASC
关键字。
在上面的 SQL 语句中,我们按城市名称排序数据并获得前十个城市。
分组数据
GROUP BY
子句用于将具有相同值的数据库记录组合到单个记录中。 它通常与聚合功能一起使用。
上面的 SQL 语句返回在我们数据库中列出的纽约地区城镇的总人数。
先前的数字是这六个城市的总和。
我们选择人口超过 300 万的所有地区。 当我们处理数据组时,我们使用HAVING
子句而不是WHERE
子句。
更新,删除和插入数据
接下来,我们将关注更新,删除和插入数据。
如前所述,世界数据库已过时。 乔治·布什(George Bush)不再是美国总统。
使用UPDATE
语句,我们将行更改为实际数据。
我们已经成功更新了该行。
我们在内存中创建一个临时表。 它将包含city
表中的前十个城市。
这是toptencities
表的内容。
使用DELETE FROM
语句和WHERE
子句,我们从toptencities
表中删除第二行。
表中还有五行。
我们使用TRUNCATE
语句删除表中的所有行。 没有数据了。
使用INSERT INTO
语句,我们在表中插入一行。
我们从数据库中删除该表。