MariaDB入门
本入门指南旨在教您使用mariadb命令行客户端程序将信息输入和输出现有的MariaDB数据库的基础知识。它不是完整的参考资料,也不会涉及任何高级主题。它只是快速入门使用MariaDB。
登录MariaDB
从命令行登录MariaDB服务器,如下所示:
mariadb -u user_name -p -h ip_address db_name
将user_name替换为您的数据库用户名。将ip_address替换为服务器的主机名或地址。如果您从登录的同一台服务器访问MariaDB,则不要包括-h
和ip_address。将db_name替换为要访问的数据库的名称(例如test,有时为测试目的而已创建 - 请注意,Windows不会创建此数据库,并且某些设置可能还通过运行mariadb-secure-installation删除了test
数据库,在这种情况下,可以省略db_name)。
在提示输入密码时,输入密码。如果登录成功,则应该看到类似于以下内容:
MariaDB [test]>
这是您将输入所有SQL语句的地方。稍后会详细介绍这些内容。现在,让我们看看提示的组成部分: "MariaDB"部分表示您已连接到MariaDB数据库服务器。括号中的单词是您的默认数据库名称,在本例中为test数据库。
数据库基础知识
要对数据库进行更改或检索数据,您需要输入SQL语句。 SQL代表结构化查询语言。请求数据的SQL语句称为查询。 数据库将信息存储在表中。它们类似于电子表格,但在管理数据方面更加高效。
请注意,test数据库可能还没有包含任何数据。如果您想跟随本入门指南,请将以下内容复制并粘贴到mariadb客户端中。这将创建我们将使用的表并向其中添加一些数据。暂时不要担心理解它们;我们稍后会解决。
CREATE DATABASE IF NOT EXISTS test; USE test; CREATE TABLE IF NOT EXISTS books ( BookID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Title VARCHAR(100) NOT NULL, SeriesID INT, AuthorID INT); CREATE TABLE IF NOT EXISTS authors (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT); CREATE TABLE IF NOT EXISTS series (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT); INSERT INTO books (Title,SeriesID,AuthorID) VALUES('The Fellowship of the Ring',1,1), ('The Two Towers',1,1), ('The Return of the King',1,1), ('The Sum of All Men',2,2), ('Brotherhood of the Wolf',2,2), ('Wizardborn',2,2), ('The Hobbbit',0,1);
请注意上面使用的分号。mariadb客户端允许您在多行上输入非常复杂的SQL语句。在键入分号并按[Enter]之前,它不会发送SQL语句。
让我们看看您到目前为止所做的事情。输入以下内容:
SHOW TABLES; +----------------+ | Tables_in_test | +----------------+ | authors | | books | | series | +----------------+ 3 rows in set (0.00 sec)
请注意,这会显示数据库中的表格列表。如果您的test数据库中没有表格,那么您的结果应该与上面的相同。现在让我们输入以下内容,以获取有关其中一个表的信息:
DESCRIBE books; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | BookID | int(11) | NO | PRI | NULL | auto_increment | | Title | varchar(100) | NO | | NULL | | | SeriesID | int(11) | YES | | NULL | | | AuthorID | int(11) | YES | | NULL | | +----------+--------------+------+-----+---------+----------------+
我们感兴趣的主要信息位于Field列中。其他列提供有关数据库中数据结构和数据类型的有用信息,但Field列为我们提供了所需的名称,以从表中检索数据。
让我们从books表中检索数据。我们将通过执行SELECT语句来执行此操作,如下所示:
SELECT * FROM books; +--------+----------------------------+----------+----------+ | BookID | Title | SeriesID | AuthorID | +--------+----------------------------+----------+----------+ | 1 | The Fellowship of the Ring | 1 | 1 | | 2 | The Two Towers | 1 | 1 | | 3 | The Return of the King | 1 | 1 | | 4 | The Sum of All Men | 2 | 2 | | 5 | Brotherhood of the Wolf | 2 | 2 | | 6 | Wizardborn | 2 | 2 | | 7 | The Hobbbit | 0 | 1 | +--------+----------------------------+----------+----------+ 7 rows in set (0.00 sec)
此SQL语句或查询要求数据库向我们显示books表中的所有数据。通配符('*
')字符表示选择所有列。
插入数据
现在假设我们想将另一本书添加到此表中。我们将添加书籍Lair of Bones。要将数据插入表中,您将使用INSERT语句。要插入有关书籍的信息,我们将输入以下内容:
INSERT INTO books (Title, SeriesID, AuthorID) VALUES ("Lair of Bones", 2, 2); Query OK, 1 row affected (0.00 sec)
请注意,在表格名称后面放置列列表,然后输入关键字VALUES
,后跟括号中的值列表 - 与列的顺序相同。我们可以按不同的顺序放置列,只要值与我们列出的列的顺序相同即可。请注意,返回的消息指示SQL语句的执行很好,并且已输入一行。
再次执行以下SQL语句,查看返回什么结果:
SELECT * FROM books;
您应该在结果的最后一行看到您刚刚输入的数据。在查看其他书籍的数据时,假设我们注意到第七本书的标题拼写错误。它应该拼写为The Hobbit,而不是The Hobbbit。我们需要更新该行的数据。
修改数据
要更改表中的数据,您将使用UPDATE语句。让我们更改上面提到的书的拼写。为此,请输入以下内容:
UPDATE books SET Title = "The Hobbit" WHERE BookID = 7; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
请注意此SQL语句的语法。SET
子句是您列出要设置的列和值的地方。WHERE
子句表示您只想更新BookID
列的值为7
的行,其中只有一行。您可以从返回的消息中看到,有一行匹配了WHERE
子句,一行已更改。因为一切正常,所以没有警告。执行早期的SELECT语句以查看数据是否更改。
正如您所看到的,使用MariaDB并不是很困难。您只需要了解SQL的语法,因为它不允许出现打字错误、顺序错误或其他偏差。