MySQL(二)DML语言

1.DML语言

INSERT (添加数据语句)
UPDATE (更新数据语句)
DELETE (删除数据语句)

2.INSERT命令

INSERT INTO 表名[(字段1,字段2,字段3,…)] VALUES(‘值1’,‘值2’,‘值3’)

两种方式
1.一一对应 字段名和添加的数据一个个对应起来
2.省略字段名 :但添加的值务必与表结构,数据列,顺序相对应,且数量一致
3.没有写的也可,默认添加
4.第二种注意主键的添加,别丢

INSERT INTO `student`(`name`,`pwd`,`sex`)
VALUES('章三','112233','男'),('李四','112233','女'),('王武','112233','男')

INSERT INTO `student`
VALUES(5,'王强','888888','男','2000-02-03','内蒙古','123@qq.com')

在这里插入图片描述

3.update命令

语法:

UPDATE 表名 SET column_name=value [,column_name2=value2,…] [WHERE condition];

注意 :

column_name 为要更改的数据列

value 为修改后的数据 , 可以为变量 , 具体指 , 表达式或者嵌套的SELECT结果

condition 为筛选条件 , 如不指定则修改该表的所有列数据

案例

将id=1的那一行修改。没有ID=1,全部更新了
UPDATE `student` SET `name` ='王羲之',`email`='123456@qq.com' WHERE id =1;
修改id为2-4的那一行
UPDATE `student` SET `name` ='王羲之',`email`='123456@qq.com' WHERE id BETWEEN 2 AND 4;
修改name是 xxx 并且 性别为x的那几行
UPDATE `student` SET `name` ='王羲之123',`email`='123456@qq.com' WHERE `name`='王羲之' AND `sex`='女'
修改为本地时间
UPDATE `student` SET `birthday` = CURRENT_TIME WHERE id BETWEEN 1 AND 4

4.删除数据

DELETE命令

DELETE FROM 表名 [WHERE condition];

注意:condition为筛选条件 , 如不指定则删除该表的所有列数据

TRUNCATE命令

TRUNCATE [TABLE] table_name;
作用:用于完全清空表数据 , 但表结构 , 索引 , 约束等不变 ;

注意:区别!!

相同 : 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快

不同 :使用TRUNCATE TABLE 重新设置AUTO_INCREMENT计数器
使用TRUNCATE TABLE不会对事务有影响

案例:创建一个表

CREATE TABLE `test` (
`id` INT(4) NOT NULL AUTO_INCREMENT,
`coll` VARCHAR(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8

INSERT INTO test(coll) VALUES('row1'),('row2'),('row3');


第一次测试

DELETE FROM test;

在添加数据 ID会从4开始
在这里插入图片描述

第二次测试

TRUNCATE TABLE test;

id从一开始

结论

truncate删除数据,自增当前值会恢复到初始值重新开始;不会记录日志.

– 同样使用DELETE清空不同引擎的数据库表数据.重启数据库服务后
– InnoDB : 自增列从初始值重新开始 (因为是存储在内存中,断电即失)
– MyISAM : 自增列依然从上一个自增数据基础上开始 (存在文件中,不会丢失)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值