MySQL增删改语句学习
1.添加(Insert)
语法:
--插入语句(添加)
--insert into 表名(字段名1,字段2,字段3) values ('值1'),('值2'),('值3'),...
INSERT INTO 'grade'('gradename') VALUES ('大三')
注意事项:
- 字段和字段之间使用英文逗号隔开
- 字段是可以省略的,但是后面的值必须要一一对应
- 可以同时插入多条数据,VALUES后面的值,需要使用逗号隔开 VALUES(),(),…
2.修改(update)
语法:
--update 修改谁 (条件) set 原来的值 = 新的值
--语法:
--UPDATE 表名 SET colnum_name = value, [colnum_name = value,…] WHERE [条件]
--colnum_name是数据库的列,尽量带上` `
例子:
--修改学院名字,带了条件
UPDATE `student` SET `name` = `张三` WHERE id = 1;
--不指定条件的情况下,会改动所有表!
UPDATE `student` SET `name` = `李四`
--修改多个属性,逗号隔开
UPDATE `student` SET `name` = `张三`,`email`=`11111@qq.com` WHERE id = 1;
UPDATE `student` SET `birthday` = CURRENT_TIME WHERE `name` = `李四` AND sex=`女`
条件:where字句 运算符 id等于某个值,大于某个值,在某个区间内修改…
区间:
-
BETWEEN … and … 含义:在某个范围内(闭合区间)
-
AND 含义:xx和xx 两个条件要都成立
-
OR 含义:xx或xx 成立其中一个条件即可
CURRENT_TIME :当前时间
3.删除(delete)
语法:
delete from 表名 [where 条件]
例子:
DELETE FROM `student` WHERE id = 1;
拓展:TRUNCATE命令与DELETE
TRUNCATE命令
作用:
完全清空一个数据库表,表的结构和索引约束不会变。
例子:
TRUNCATE 'student'
区别:
- 相同点:都能删除数据,都不会删除表结构
- 不同点:TRUNCATE重新设置自增列 计数器会清零
关于重置自增列:
随着不断地进行表记录的DML操作,会不断提高表的高水位线(HWM),DELETE操作之后虽然表的数据删除了,但是并没有降低表的高水位,随着DML操作数据库容量也只会上升,不会下降。所以如果使用DELETE,就算将表中的数据减少了很多,在查询时还是很和DELETE操作前速度一样。
而TRUNCATE操作会重置高水位线,数据库容量也会被重置,之后再进行DML操作速度也会有提升。
摘自简书用户唐T唐X,链接:MYSQL中TRUNCATE和DELETE的区别
问题:
DELETE删除的问题:重启数据库
现象:
- InnoDB自增列会从1开始(存在内存当中,断电即失)
- MyISAM继续从上一个子增量开始(存在文件中,不会丢失)