18.5 管理表单及数据
接下来向mybook数据表单中插一条图书信息。为此需要使用INSERT命令,并在命令中写清表单名称以及对应的字段项。执行该命令之后即可完成图书写入信息。下面我们使用该命令插入一条图书信息,其中书名为linuxprobe,价格和页数分别是60元和518页。在命令执行后也就意味着图书信息已经成功写入到数据表单中,然后就可以查询表单中的内容了。我们在使用select命令查询表单内容时,需要加上想要查询的字段;如果想查看表单中的所有内容,则可以使用星号(*)通配符来显示:
- MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe','60', '518');
- Query OK, 1 row affected (0.00 sec)
- MariaDB [linuxprobe]> select * from mybook;
- +------------+-------+-------+
- | name | price | pages |
- +------------+-------+-------+
- | linuxprobe | 60 | 518 |
- +------------+-------+-------+
- 1 rows in set (0.01 sec)
对数据库运维人员来讲,需要做好四门功课—增、删、改、查。这意味着创建数据表单并在其中插入内容仅仅是第一步,还需要掌握数据表单内容的修改方法。例如,我们可以使用update命令将刚才插入的linuxprobe图书信息的价格修改为55元,然后在使用select命令查看该图书的名称和定价信息。注意,因为这里只查看图书的名称和定价,而不涉及页码,所以无须再用星号通配符来显示所有内容。
- MariaDB [linuxprobe]> UPDATE mybook SET price=55 ;
- Query OK, 1 row affected (0.00 sec)
- Rows matched: 1 Changed: 1 Warnings: 0
- MariaDB [linuxprobe]> SELECT name,price FROM mybook;
- +------------+-------+
- | name | price |
- +------------+-------+
- | linuxprobe | 55 |
- +------------+-------+
- 1 row in set (0.00 sec)
我们还可以使用delete命令删除某个数据表单中的内容。下面我们使用delete命令删除数据表单mybook中的所有内容,然后再查看该表单中的内容,可以发现该表单内容为空了。
- MariaDB [linuxprobe]> DELETE FROM mybook;
- Query OK, 1 row affected (0.01 sec)
- MariaDB [linuxprobe]> SELECT * FROM mybook;
- Empty set (0.00 sec)
一般来讲,数据表单中会存放成千上万条数据信息。比如我们刚刚创建的用于保存图书信息的mybook表单,随着时间的推移,里面的图书信息也会越来越多。在这样的情况下,如果我们只想查看其价格大于某个数值的图书时,又该如何定义查询语句呢?
下面先使用insert插入命令依次插入4条图书信息:
- MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe1','30','518');
- Query OK, 1 row affected (0.05 sec)
- MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe2','50','518');
- Query OK, 1 row affected (0.05 sec)
- MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe3','80','518');
- Query OK, 1 row affected (0.01 sec)
- MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe4','100','518');
- Query OK, 1 row affected (0.00 sec)
要想让查询结果更加精准,就需要结合使用select与where命令了。其中,where命令是在数据库中进行匹配查询的条件命令。通过设置查询条件,就可以仅查找出符合该条件的数据。表18-3列出了where命令中常用的查询参数以及作用。
表18-3 where命令中使用的参数以及作用
参数 | 作用 |
= | 相等 |
<>或!= | 不相等 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索一个例子 |
IN | 在列中搜索多个值 |
现在进入动手环节。分别在mybook表单中查找出价格大于75元或价格不等于80元的图书,其对应的命令如下所示。在熟悉了这两个查询条件之后,大家可以自行尝试精确查找图书名为linuxprobe2的图书信息。
- MariaDB [linuxprobe]> SELECT * FROM mybook WHERE price>75;
- +-------------+-------+-------+
- | name | price | pages |
- +-------------+-------+-------+
- | linuxprobe3 | 80 | 518 |
- | linuxprobe4 | 100 | 518 |
- +-------------+-------+-------+
- 2 rows in set (0.06 sec)
- MariaDB [linuxprobe]> SELECT * FROM mybook WHERE price!=80;
- +-------------+-------+-------+
- | name | price | pages |
- +-------------+-------+-------+
- | linuxprobe1 | 30 | 518 |
- | linuxprobe2 | 50 | 518 |
- | linuxprobe4 | 100 | 518 |
- +-------------+-------+-------+
- 3 rows in set (0.01 sec)
- MariaDB [mysql]> exit
- Bye