第三篇:数据操纵语言DML

数据操纵语言DML与数据查询语言DQL之间的主要区别在于:DML语言是对表格中的数据进行改变,DQL语言只是查询表格中的数据。
改变就包括主要的三种:增加,删除,修改。

Part1: 增加

增加是向表格中增加行,也就是增加数据量。增加并不改变原来表格数据的结构。
语法格式如下:
insert into 表名(字段名1,字段名2,…,字段名n) values(值1,值2,…,值n);

备注:值与列名要保持对应关系

例1:向女生表girls中添加一行唐艺昕的值:

insert into girls(id, name, sex, borndate, phone-number, photo, boyfriend_id)  values(12, '唐艺昕', F, '1990-04-23', '18988888888', null, 2);

备注:其中null表示没有照片信息,那么直接填写null即可。

对于值可以为null的字段名,应该如何应对?
有两种方法:

  1. 在表名后写上该字段名,然后在后续的值中写上null;
  2. 在表名后面不写该字段名,然后再值中也不写;
    总的来说就是前后保持一致。这两种方法的区别如下:
  3. 方式1可以支持一次性插入多行,但是方式2不支持;
  4. 方式1支持子查询,方式2不支持。

备注:

  1. 插入的值的格式要与字段的要求格式保持一致;
  2. 只有声明可以填写null的字段名才可以填null,并有两种方式;
  3. 字段名的顺序可以调整,不用与表格中保持一致,但是值与字段名要保持一致;

Part2: 删除

删除是向表格中减少行,也就是减少数据量。删除并不改变原来表格数据的结构。
语法格式如下:
delete from 表名 where 筛选条件

例2:删除女生表girls中手机号以9结尾的女生信息:

delete from girls where phone-number like '%9';

如果是在多个表中删除信息的话,需要考虑到表格之间的关联属性,用到之前的连接方式。
例3:删除女生表girls中男朋友是张无忌的女生的信息:

delete
from girls
join boys
on boys.id = girls.boyfirend_id    
where boys.name = ’张无忌';

如果需要删除整个表格的话,需要用到truncate。尽管delete也可以实现对于表格中的元素的全部删除,但是trancate可以更加高效地完成同样的工作。

Part3: 修改

修改是改变表格中已经有的数据的字段的信息。修改并不改变原来表格数据的结构。
语法格式如下:
update 表名 set 字段名 = value where 筛选条件;
例4:修改女生表girls中姓唐的女生的手机号码为13888888888:

update grils set phone-number = 13888888888 where name like '唐%';

如果需要借助于多个表格的信息的话,需要用到表格之间的关联条件。
例5:修改女生表girls男朋友编号不在男生表boys中的女生的男朋友编号为2:

update girls
left outer join boys
on girls.boyfriend_id = boys.id
set girls.boyfriend_id = 2
where boys.name is Null;


本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!