MariaDB入门

本入门指南旨在教您使用mariadb命令行客户端程序将信息输入和输出现有的MariaDB数据库的基础知识。它不是完整的参考资料,也不会涉及任何高级主题。它只是快速入门使用MariaDB。

登录MariaDB

从命令行登录MariaDB服务器,如下所示:

mariadb -u user_name -p -h ip_address db_name

user_name替换为您的数据库用户名。将ip_address替换为服务器的主机名或地址。如果您从登录的同一台服务器访问MariaDB,则不要包括-hip_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的语法,因为它不允许出现打字错误、顺序错误或其他偏差。

参见

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.