morexyoung 2020-05-30
数据库意义:数据存储、数据管理
DML语言:数据操作语言
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‘),...
注意:
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 区别
相同点:都能删除数据,都不会删除表结构
不同:
-- 测试 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 删除的问题,重启数据库,现象