DML数据库操作语言

DML数据操纵语言,insert插入、update修改、delete删除。

样例表:

create table tb_user(
	id bigint primary key auto_increment,
	username varchar(20) not null,
	password varchar(20) not null,
	birth data,
	sex char default '男',
	score bigint default 0
)engine=innodb default charset utf8;

insert 插入操作

语法1:insert into 表名称 values(值1,值2,...)
values中的值和表的列一一对应。

insert into tb_user values("张三","123456","1999-03-25","男");

语法2insert into 表名称(列名1,列名2,...) values(值1,值2,...)
括号中的列名顺序和values中的值一一对应,用于不需要每列都插入数据时使用。

insert into tb_user(username,password) values("李四","666666");

规范:

  • 值与字段(表中定义的属性)必须对应,包括个数和数据类型
    • 值必须在合理的字段类型范围内
    • varchar、char和日期类型必须使用单、双引号包裹
    • 如果没有任何限制,控制允许插入
  • 没有指定列名时,必须给出完整数据,且数据赋值顺序和定义表时列的顺序相同
  • 优化写法:指定列名称。无序遵循定义表时列的顺序,但要和执行列的顺序相同。
批量插入查询出的数据

insert into table1(列名1,列名2,...) select 列1,列2,...from table2;

insert into tb_user(username,password) select username,password from tb_newuser;
克隆旧表的表结构和表中数据

克隆了旧表的表结构和表中数据,但是会有约束丢失问题。

create table tb_newuser as select * from tb_user;

修改操作

语法1:update 表名称 set 列名1=值1,列名2=值2,...

update tb_user set username="陈信宏",password="19751206",sex="男" where id=1;;

上述例子修改了id为1的行中username和password列。如果不加where id=1,那么修改的就是所有行的username和password列。

修改表中所有行的指定列的值等号后面也可也时一个表达式计算。例如age增加5%

update tb_user set age=age*1.05;

--允许同时修改多个列
pudate tb_user set age=25,sex="女";

语法2:update 表名称 set 列名1=值1,列名2=值2,...where 条件
用来修改表中满足条件的指定列的值,例如1999年之前的用户,积分增加10%

update tb_user set score=score*1.1 where year(birth)<1999;
--year时系统函数,用于获取指定列的年份值

删除数据

语法1:delete from 表名称;删除表中所有数据,整表删除

delete from tb_newuser;

语法2:delete from 表名称 where 条件;删除表中满足条件的所有行。

delete from tb_user where year(birth)=1999 and sex="男";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值