简单的 SQL 查询
为了使用 MariaDB,我们将使用结构化查询语言 (SQL)。
首先访问 MariaDB/MySQL 命令行,如下所示,系统将提示我们输入在安装 MariaDB 教程中配置的密码。
[jack@onitroad ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 5.5.44-MariaDB MariaDB Server Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
显示数据库
使用“show databases”查询,我们可以查看所有可用的数据库,默认情况下,安装 MariaDB 后我们将拥有这些数据库。
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.01 sec)
创建数据库
使用后跟数据库名称的“创建数据库”查询创建数据库。
在本例中,我们创建的数据库名为“users”。
MariaDB [(none)]> create database users; Query OK, 1 row affected (0.01 sec)
成功创建数据库后,我们可以使用“show databases”查询进行确认以查看它是否已列出。
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | users | +--------------------+ 4 rows in set (0.00 sec)
使用数据库
现在已经创建了数据库,要对其进行实际查询,我们首先需要使用数据库。
MariaDB [(none)]> use users; Database changed MariaDB [users]>
请注意,这已将我们的提示从“none”更改为“users”,即我们刚刚选择的数据库的名称。
这向我们展示了我们正在使用和正在使用的当前数据库,我们运行的查询将针对该数据库执行。
创建表
空数据库不是特别有用,我们现在将创建一些从表开始的示例数据。
MariaDB [users]> create table name (firstname VARCHAR(50) NOT NULL, lastname VARCHAR(50) NOT NULL, middlename VARCHAR(50)); Query OK, 0 rows affected (0.05 sec)
这将创建一个名为 'name' 的表,其中包含 3 个名为 'firstname'、'lastname' 和 'middlename' 的字段。
'firstname' 和 'lastname' 字段设置为 NOT NULL 意味着必须有一个值,而 'middlename' 可能为空,因为该字段是可选的。
所有字段都设置为 VARCHAR(50),允许我们在每个字段中输入最多 50 个字符。
我们可以使用“show tables”命令查看此表。
MariaDB [users]> show tables; +-----------------+ | Tables_in_users | +-----------------+ | name | +-----------------+ 1 row in set (0.00 sec)
描述表格
虽然前面的 show tables 命令向我们展示了用户数据库中有一个名为 name 的表,但它的信息量并不大。
我们可以使用describe命令查看表结构,如下所示。
MariaDB [users]> describe name; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | firstname | varchar(50) | NO | | NULL | | | lastname | varchar(50) | NO | | NULL | | | middlename | varchar(50) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)
该结构显示的字段与我们之前创建的字段相同。
describe 命令对于了解数据库结构和查看适当的模式很有用。
插入数据库
现在我们有一个空白表,我们可以使用“插入到”查询插入一些实际数据。
MariaDB [users]> insert into name (firstname, lastname) values ("bob", "user"); Query OK, 1 row affected (0.00 sec) MariaDB [users]> select * from name; +-----------+----------+------------+ | firstname | lastname | middlename | +-----------+----------+------------+ | bob | user | NULL | +-----------+----------+------------+ 1 row in set (0.00 sec)
在这个例子中,我们插入了一个名为“bob user”的用户。
可以使用 select 命令检索数据,在上面的示例中,我们从名称表中选择 * 指定的所有内容,目前只有一行。
更新数据
一旦数据输入到数据库中,就可以使用更新查询进行修改。
MariaDB [users]> update name set lastname="test" where lastname="user"; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [users]> select * from name; +-----------+----------+------------+ | firstname | lastname | middlename | +-----------+----------+------------+ | bob | test | NULL | +-----------+----------+------------+ 1 row in set (0.00 sec)
在这里,我们已将 bob 的姓氏值从用户更新为测试。
删除数据
也可以使用删除查询删除数据库中的数据。
在此示例中,我们通过指定要从 name 表中删除 firstname 设置为 bob 的所有实例来删除刚刚创建的 bob 行。
MariaDB [users]> delete from name where firstname="bob"; Query OK, 1 row affected (0.01 sec) MariaDB [users]> select * from name; Empty set (0.00 sec)
删除行并在名称表上运行选择后,我们现在可以看到它是空的,但表本身仍然存在。
我们还可以使用“drop table”命令删除表,如下所示,这将删除存储在表中的所有数据和表本身。
MariaDB [users]> drop table name; Query OK, 0 rows affected (0.00 sec) MariaDB [users]> show tables; Empty set (0.01 sec)
删除数据库
尽管我们删除了 name 表中唯一的一行和表本身,但 users 数据库仍然存在。
可以使用“drop database”查询删除用户数据库,该查询将删除数据库和其中的所有数据,包括任何其他表。
MariaDB [users]> drop database users; Query OK, 1 row affected (0.05 sec) MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec)
本教程中,我们将介绍如何使用基本的 SQL 查询,例如显示、创建、选择、插入、更新、删除、描述和删除,这将允许我们定义基本的数据库模式。