• 18.5 管理表单及数据

    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