4.5 数据操纵语言(DML)和数据查询语言(DQL)
DML也就是用来操纵数据库中数据所使用的语言,对数据库中的数据操纵无非就是对数据进行增加、删除、修改、查询的操作。对于数据的查询也称为数据查询语言。本节将详细讲解数据操纵语言的使用。
4.5.1 添加数据就用INSERT
在创建好数据表之后,添加数据是首先要做的工作。在给表中添加数据时要与表中字段类型相匹配,也就是说,如果表中的字段是日期类型,那么在向该字段中添加数据时也要添加日期类型的数据。向表中添加数据的一般语法如下:
INSERT INTO table_name(column_name1,column_name2,…)VALUES(data1,data2…);
【语法说明】
❑column_name1:指定表中要添加数据的列名,可以是1个到多个。
❑data1:要填入指定列的数据值,这里要求添加值的数目要与列名的数量一致。
实际上,向数据表中添加数据不仅可以使用上面的语句来向表中添加值,也可以根据其他数据表中的数据来添加数据。下面就分别讲述这两种向表中添加数据的方法。
(1)直接添加数据
直接添加数据时使用上面的语句就可以完成。下面就完成向管理员信息表中添加数据的操作。具体操作如图4.23所示。
图 4.23 增加数据
这样,在管理员信息表managerinfo中就增加了一条数据。
(2)通过其他数据表向表中添加数据
如果在数据库中需要新创建一个数据表,但是这个表中的数据又与其他表中的数据有些相似,那么就可以直接把其他表中的数据添加到新创建的数据表中,这样就能减少添加数据的工作量。具体语法如下:
INSERT INTO table_name1(column_name1,column_name2,…)
select column_name1,column_name2…FROM table_name2;
【语法说明】
❑table_name1:目标表的名称,也就是要插入数据的表名。
❑table_name2:数据的来源表。
注意 在使用来源表向目标表中插入数据时,一定要确保两个表的列的个数和列的数据类型都一致,否则会出现错误。
【示例5】下面就利用上面的语句完成从管理员信息表中把数据添加到新创建的账号信息表中
首先要新创建一个账号信息表。账号信息表主要就是用来存放所有管理员的登录账号的,信息表中只有用户名和密码两个字段。详细信息如表4.10所示。
根据表4.10所示的账号信息表的详细信息创建账号信息表,然后把管理员信息表中的注册名和密码添加到账号信息表中。具体操作如图4.24所示。现在表logininfo中也就含有了一条数据,并不是说向表中只能添加一条数据,而是因为表managerinfo中只包含了一条数据。
图 4.24 从其他表中添加数据
上面介绍的这种添加数据的方式的前提是目标数据表已经存在,也就是logininfo这个表是先创建好的,如果想不创建表就直接通过源数据表在添加数据的同时创建表也是可以实现的。具体语法如下:
CREATE TABLE table_name AS SELECT column_name1,column_name2,…FROM source_table;
【语法说明】
❑table_name:要新创建的目标表的名称。
❑source_table:创建目标表时数据的来源表。这里可以指定查询表的字段,也可以用“*”代表查询表中的全部字段。
利用上面的语句创建一个表login,数据的来源表仍然选择managerinfo。具体的操作如图4.25所示。
图 4.25 直接创建带数据的表
这样就创建了login表,并且可以使用SELECT语句查看到在login表已经存在了一条记录。