数据库——DML(数据操作语言)

数据库——DML(数据操作语言)

DML语言:数据操作语言

  • insert 添加
  • update 修改
  • delete 删除

insert 添加

-- 插入语句(添加)
-- insert into 表名([字段名1,字段名2,字段名3])values('值1'),('值2'), ('值3')
-- 写插入语句,数据与字段要一一对应
INSERT INTO `grade`(`gradename`) VALUES ('大三')

-- 由于主键自增我们可以省略字段    相当于INSERT INTO `grade`(`gradeid`,`gradename`) VALUES('11114','大七')
INSERT INTO `grade` VALUES('11114','大七')
INSERT INTO `grade`(`gradeid`,`gradename`) VALUES('11114','大七')

-- 插入多个字段,用逗号隔开即可
INSERT INTO `grade`(`gradename`) 
VALUES ('大一') , ('大二')
INSERT INTO `student`(`name`) VALUES ('张三')
INSERT INTO `student`(`name`) VALUES ('李四'), ('王五')
INSERT INTO `student`(`name`,`pwd`,`sex`,`birthday`,`address`,`gradeid`,`email`)VALUES('狗子','aaaaa','男','2020-3-02','赣州','111','email')
-- 省略字段
INSERT INTO `student`VALUES('13','张三','aaaaa','男','2020-3-12','广州','222','email')

update 修改

-- 修改语句 表名     属性            条件
UPDATE `student` SET `name`='狂铁' WHERE id=1;
UPDATE `student` SET `name`='虞姬' WHERE id <>2;

-- 如果不指定条件,会改变所有的列
UPDATE `student` SET `name`='夏洛特'

-- 修改多个属性,用逗号隔开
UPDATE `student` SET `pwd`='654321' ,`sex`='女'  WHERE id=2;

-- 修改属性的值为变量    CURRENT_TIME  当前的时间
UPDATE `student` SET `birthday` = CURRENT_TIME WHERE `name` ='虞姬';

delete 删除

-- 用delete删除表
-- 删除指定命令  不加条件就会删除整个表
DELETE FROM `student` WHERE id=1;

-- 用TRUNCATE删除表  完全清空一个数据库表,表的结构和索引不会变
TRUNCATE `student`;
-- 用TRUNCATE不能删除指定条件的数据, truncate的工作机制就是直接清空表的内容,例如,在Oracle中实际上只是将高水位线设为0,并没有对实际的数据进行操作,所以这个操作就很快。既然如此,也就不可能实现你所说的有条件的删除了。


-- 测试DELETE和TRUNCATE的区别
-- 用delete删除表
INSERT INTO `test`(`coll`) VALUES('1'),('2'),('3') -- 此时表test的主键id自动增量为4
DELETE FROM `test`; -- 还是4,用delete不会影响自增
INSERT INTO `test`(`coll`) VALUES('1'),('2'),('3')-- 再执行一次,由于自增没变,所以id是从4开始

-- 用TRUNCATE删除表
TRUNCATE `test`;-- 表test的主键id自动增量为1,重置了

-- 补充
-- 用delete删除表的拓展:用delete删除后再重启数据库,如果引擎不一样,那重启的现象也不一样
-- 如果引擎是InnoDB ,自增列会重1开始(因为数据是存储在内存中,断电即失)
-- 如果引擎是MYISAM,继续从上一个自增量开始(因为是存在文件中的,不会丢失)

猜你喜欢

转载自blog.csdn.net/wpc2018/article/details/108823811
今日推荐