DML数据操作语言(数据插入、数据修改)

DML数据操作语言

数据的插入

关键词

insert

数据插入方式一(经典)

语法

insert into 表名 (列名,…)values(值1,…);

注意

根据类型对写入值的规定

int类型: 直接写数字

varchar/char类型:单引号引起来

日期类型:单引号引起来

  1. 插入的值的类型要与列的类型一致或兼容

    insert inro beauty(id,name,sex,bornadate,phone,photo,boyfriend_id)values(13,'唐艺昕','女','1990-4-23','18088888888',null,2);
    
  2. 不可以为null的列必须插入值,可以为null的列如何插入值

    方式一:对应列名赋值为null
    insert inro beauty(id,name,sex,bornadate,phone,photo,boyfriend_id)values(13,'唐艺昕','女','1990-4-23','18088888888',null,2);
    方式二:列名和值都不写,那么未赋值的列名插入进去的数据为默认值
    insert inro beauty(id,name,sex,phone)values(13,'唐艺昕','女','18088888888');
    
  3. 列的顺序是否可以调换

    insert into beauty (name,sex,id,phone)values('蒋欣','女',12,'1560000000');
    
  4. 列数和值的个数必须一致

    insert into beauty (name,sex,id,phone,boyfriend_id)values('关晓彤','女',17,'123456');
    报错:
    Column count doesn't match value count at row 1
    
  5. 可以省略列名,默认所有列,而且顺序和表中列的顺序是一致的

    insert into beauty values(18,'张飞','男',null,'119',null,null);
    

数据插入方式二

语法

insert into 表名 set 列名=值,列名=值,…

insert into beauty set id=19,name='刘涛',phone='999';

方式一和方式二比较

  1. 方式一支持插入多行,方式二不支持

    insert into girl values(90,'郑爽','女','1999-09-09','123456',null,2),(91,'李清照','女','1999-09-09','123456',null,2);
    
  2. 方式一支持子查询,方式二不支持

    insert into girl(id,name,phone) select 26,'杨幂','123';
    insert into beauty(id,name,phone) select id,boyname,'123'from boys where id<3;
    

数据的修改

关键词:update

修改单表的纪录

语法

update 表名 set 列=新值,列=新值…where 筛选条件;

执行顺序

update 表名 - where 筛选条件 - set 列=新值,列=新值…

案例

  1. 修改girl表中,姓‘杨’的女生电话更改为1230

    update girl set phone = '1230' where name like '%杨%';
    
  2. 修改girl表中id为1的名称为小透明,boyfriendId为2

    update girl set name = '小透明',boyfriendId = 2 where id = 1;
    

修改多表的记录(了解)

sql92语法

update 表1 别名,表2 别名 set 列 = 值,…where 连接条件 and 筛选条件

sql99语法

update 表1 别名 inner|left|right join 表2 别名 on 连接条件 set 列 = 值,… where 筛选条件

案例

  1. 修改胡歌的女朋友的手机号为114

    update boy b inner join girl g on b.id = g.boyfriendId set g.phone = 114;
    
  2. 修改没有男朋友的女生的男朋友编号都为1号

    update boy b right join girl g on b.id = g.boyfriendId set g.boyfriendId = 1 where b.id is null;
    
上一篇:Linux:libxml2的安装及使用示例(C语言)


下一篇:导出表格方法vue