18.5 管理表单及数据

接下来向mybook数据表单中插一条图书信息。为此需要使用INSERT命令,并在命令中写清表单名称以及对应的字段项。执行该命令之后即可完成图书写入信息。下面我们使用该命令插入一条图书信息,其中书名为linuxprobe,价格和页数分别是60元和518页。在命令执行后也就意味着图书信息已经成功写入到数据表单中,然后就可以查询表单中的内容了。我们在使用select命令查询表单内容时,需要加上想要查询的字段;如果想查看表单中的所有内容,则可以使用星号(*)通配符来显示:

  1. MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe','60', '518');
  2. Query OK, 1 row affected (0.00 sec)
  3. MariaDB [linuxprobe]> select * from mybook;
  4. +------------+-------+-------+
  5. | name | price | pages |
  6. +------------+-------+-------+
  7. | linuxprobe | 60 | 518 |
  8. +------------+-------+-------+
  9. 1 rows in set (0.01 sec)

对数据库运维人员来讲,需要做好四门功课—增、删、改、查。这意味着创建数据表单并在其中插入内容仅仅是第一步,还需要掌握数据表单内容的修改方法。例如,我们可以使用update命令将刚才插入的linuxprobe图书信息的价格修改为55元,然后在使用select命令查看该图书的名称和定价信息。注意,因为这里只查看图书的名称和定价,而不涉及页码,所以无须再用星号通配符来显示所有内容。

  1. MariaDB [linuxprobe]> UPDATE mybook SET price=55 ;
  2. Query OK, 1 row affected (0.00 sec)
  3. Rows matched: 1 Changed: 1 Warnings: 0
  4. MariaDB [linuxprobe]> SELECT name,price FROM mybook;
  5. +------------+-------+
  6. | name | price |
  7. +------------+-------+
  8. | linuxprobe | 55 |
  9. +------------+-------+
  10. 1 row in set (0.00 sec)

我们还可以使用delete命令删除某个数据表单中的内容。下面我们使用delete命令删除数据表单mybook中的所有内容,然后再查看该表单中的内容,可以发现该表单内容为空了。

  1. MariaDB [linuxprobe]> DELETE FROM mybook;
  2. Query OK, 1 row affected (0.01 sec)
  3. MariaDB [linuxprobe]> SELECT * FROM mybook;
  4. Empty set (0.00 sec)

一般来讲,数据表单中会存放成千上万条数据信息。比如我们刚刚创建的用于保存图书信息的mybook表单,随着时间的推移,里面的图书信息也会越来越多。在这样的情况下,如果我们只想查看其价格大于某个数值的图书时,又该如何定义查询语句呢?

下面先使用insert插入命令依次插入4条图书信息:

  1. MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe1','30','518');
  2. Query OK, 1 row affected (0.05 sec)
  3. MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe2','50','518');
  4. Query OK, 1 row affected (0.05 sec)
  5. MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe3','80','518');
  6. Query OK, 1 row affected (0.01 sec)
  7. MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe4','100','518');
  8. Query OK, 1 row affected (0.00 sec)

要想让查询结果更加精准,就需要结合使用select与where命令了。其中,where命令是在数据库中进行匹配查询的条件命令。通过设置查询条件,就可以仅查找出符合该条件的数据。表18-3列出了where命令中常用的查询参数以及作用。

表18-3 where命令中使用的参数以及作用

参数作用
=相等
<>或!=不相等
>大于
<小于
>=大于或等于
<=小于或等于
BETWEEN在某个范围内
LIKE搜索一个例子
IN在列中搜索多个值

现在进入动手环节。分别在mybook表单中查找出价格大于75元或价格不等于80元的图书,其对应的命令如下所示。在熟悉了这两个查询条件之后,大家可以自行尝试精确查找图书名为linuxprobe2的图书信息。

  1. MariaDB [linuxprobe]> SELECT * FROM mybook WHERE price>75;
  2. +-------------+-------+-------+
  3. | name | price | pages |
  4. +-------------+-------+-------+
  5. | linuxprobe3 | 80 | 518 |
  6. | linuxprobe4 | 100 | 518 |
  7. +-------------+-------+-------+
  8. 2 rows in set (0.06 sec)
  9. MariaDB [linuxprobe]> SELECT * FROM mybook WHERE price!=80;
  10. +-------------+-------+-------+
  11. | name | price | pages |
  12. +-------------+-------+-------+
  13. | linuxprobe1 | 30 | 518 |
  14. | linuxprobe2 | 50 | 518 |
  15. | linuxprobe4 | 100 | 518 |
  16. +-------------+-------+-------+
  17. 3 rows in set (0.01 sec)
  18. MariaDB [mysql]> exit
  19. Bye