MySQL数据管理----DML语言(全记住)
DML语言(全记住)
数据库意义:数据存储、数据管理
DML语言:数据操作语言
- Insert
- update
- delete
- truncate
1.insert 添加
错误示例:
-- 1.指定1个字段,插入1条记录 -- insert into 表名 [(字段1,字段2,字段3,...)] values(‘值1‘),(‘值2‘),(‘值3‘),... INSERT INTO `grade`(`gradename`) VALUES(‘大四‘) -- 2.未指定字段,则需插入全部字段 INSERT INTO `teacher1` VALUES(‘1‘,‘黎明‘,‘111‘,‘女‘,‘1999-01-01‘,‘西安‘,‘123‘) -- 一般写插入语句,数据和字段要一一对应 -- 3.指定1个字段,插入多条记录 INSERT INTO `grade` (`gradename`) VALUES(‘大二‘),(‘大一‘) -- 4.指定多个字段、插入多条记录 INSERT INTO `student` (`name`,`pwd`,`sex`,`birthday`,`gradeid`,`address`,`email`) -- VALUES(‘李四‘,‘bbb‘,‘女‘,CURRENT_TIME,‘2‘,‘南极‘,‘‘) VALUES(‘王五‘,‘ccc‘,‘男‘,CURRENT_TIME,‘3‘,‘银河‘,‘‘), (‘赵六‘,‘ddd‘,‘女‘,CURRENT_TIME,‘1‘,‘火星‘,‘‘)
语法:insert into 表名 [(字段1,字段2,字段3,...)] values(‘值1‘),(‘值2‘),(‘值3‘),...
注意:
- 字段和字段间用 英文逗号 隔开
- 字段是可以省略的,但是后面的值必须要和表中字段 一一对应,不能少
- 可以同时插入多条记录,VALUES后面的值,需用 , 隔开即可,如 (),()
2.update 修改
修改谁 (条件) set 原来的值 = 新值
-- 修改年级名字,带了条件 SELECT * FROM `grade` UPDATE `grade` SET `gradename` = ‘大四‘ WHERE `gradeid` = ‘2‘ SELECT * FROM `grade` -- 不指定条件时,会改动所有表 UPDATE `grade` SET `gradename` = ‘大三‘ SELECT * FROM `grade` -- 修改多个字段,逗号隔开 SELECT * FROM `student` UPDATE `student` SET `name`=‘666‘,`sex`=‘女‘,`address`=‘家‘ WHERE `id`=1 SELECT * FROM `student`
语法:
update 表名 set 字段名=值[,字段名=值,字段名=值,...][where 条件]
条件运算符:
操作符 | 含义 |
---|---|
= | 等于 |
<>或!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN ... AND.... | 在某个范围内 |
AND | 我和你 && |
OR | 我或你 || |
-- 通过多个条件定位记录,进行修改 UPDATE `student` SET `name`=‘555‘ WHERE `name`=‘李四‘ AND `sex`=‘女‘
注意:
- 字段是数据表的列,尽量带上 ``
- 条件,如果没有指定,则会修改所有的数据
- 值可以是一个具体的值,也可以是一个变量
- 多个设置的字段间,使用 英文逗号 隔开
3.delete 删除
语法:delete from 表名 [where 条件]
-- 删除数据(避免这样写,会全部删除) DELETE FROM `student` -- 删除指定数据 DELETE FROM `student` WHERE `id`=1
4.truncate 完全清空一个数据库表,表的结构和索引约束不变
-- 清空 student 表 TRUNCATE `student`
5.delete 与 truncate 区别
相同点:都能删除数据,都不会删除表结构
不同:
- truncate 重新设置 自增列 ,计数器会归零
- truncate 不会影响事务
-- 测试 delete 和 truncate 区别 CREATE TABLE `test`( `id` INT(4) NOT NULL AUTO_INCREMENT, `coll` VARCHAR(20) NOT NULL, PRIMARY KEY(`id`) ) INSERT INTO `test`(`coll`) VALUES(‘1‘),(‘2‘),(‘3‘) DELETE FROM `test` -- 不会影响自增 TRUNCATE TABLE `test` -- 自增会归零
另一点:DELETE 删除的问题,重启数据库,现象
- InnoDB 自增列会从1开始(存在内存中,断电即失)
- MyISAM 继续上一个自增量(存在文件中,不会丢失)
相关推荐
initialdmg 2020-08-03
囧芝麻 2020-06-28
houjinkai 2020-06-18
ZHANGYONGHAO0 2020-06-11
KaiZhaoKZ 2020-05-30
挨T榕 2020-05-09
DonviYang 2020-04-29
qdqht00 2020-04-20
CristianoJason 2020-04-10
swazerz 2020-04-08
MFCJCK 2020-02-24
hellobabygogo 2020-02-16
小信 2020-02-16
xiaoxiaoCNDS 2020-01-10
Moxiaoaijing 2020-01-05
julien 2019-12-30
范群松 2019-12-22
eve 2019-12-06