MySQL数据管理:增删改 [DML语言]
数据库意义:数据存储,数据管理
DML语言:数据操作语言
- Insert
- update
- delete
1. 添加 insert
-- 插入语句(添加)
-- insert into 表名([字段一], [字段二])values('值1'),('值2')
INSERT INTO `grade` (`gradename`) VALUES('大四')
-- 由于主键自增我们可以省略(如何不写表的字段,他会一一匹配)
INSERT INTO `grade` VALUES('大三')
INSERT INTO `grade` (`gradeid`,`gradename`) VALUES ('大三','null')
-- 一般写插入语句,我们一定要数据和字段一一对应。
-- 插入多个字段
INSERT INTO `grade`(`gradename`) VALUES ('大二'),('大一');
INSERT INTO `student`(`name`) VALUES ('张三');
INSERT INTO `student`(`name`,`pwd`,`sex`) VALUES ('张三','aaaaa','男');
INSERT INTO `student`(`name`,`pwd`,`sex`)
VALUES ('李四','aaaaa','男'),('王五','23232','女')
语法:-- insert into 表名([字段一], [字段二])values(‘值1’),(‘值2’)
注意事项:
- 字段和字段之间用逗号分开
- 字段可以省略,但是后面的值必须一一对应
- 可以同时插入多条数据,VALUES后面的值需要使用,隔开即可
INSERT INTO `student`(`name`,`pwd`,`sex`)
VALUES ('李四','aaaaa','男'),('王五','23232','女')
2.修改 update
update 修改谁(条件) set 原来的值=新值
-- 修改学员名字
UPDATE `student` SET `name`='囷' , `email`='375826185@qq.com' WHERE id =1;
-- 不指定条件的情况下,会改动所有表
UPDATE `student` SET `name`='233'
-- 语法;
-- UPDATE 表名 set column_name,[] = value where 条件
-- 用逗号隔开
条件:
- where 子句 运算符 id 等于 某个值,大于某个值,在某个区间内修改
- 操作符返回布尔值
操作符 | 含义 | 范围 | 范围 |
---|---|---|---|
= | 等于 | 5=6 | false |
<>或!= | 不等于 | 5!=6 | true |
> | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
>= | 大于等于 | ||
<= | 小于等于 | ||
BETWEEN… AND … | 在某个范围内,闭合区间 | id BETWEEN 2 AND 3 | |
and | && | 5>1and1>2 | false |
or | || | 5>1or1>2 | true |
注意:
- column_name 是数据库的列,带上``
- 条件,是筛选的条件,如果没有指定,则会修改所有的列
- value 是一个具体的值,也可以是一个变量
- 多个设置的属性之间,使用英文逗号隔开
UPDATE `student` SET `birthday`=CURRENT_TIME where `name`='李四' AND SEX = '男'
3. 删除 delete
语法
delete from 表名 [where 条件]
-- 删除数据 (避免这样写)
DELETE FROM `student`
-- 删除指定
DELETE FROM `student` where id= 1
TRUNCATE 命令
作用:完全清空一个数据库,表的结构和索引不会变
delete 和 TRUNCATE 区别
- 相同点: 都能删除数据,都不会删除表结构
- 不同:
- TRUNCATE 重新设置自增列 计数器会归零
- TRUNCATE 不会影响事务
-- 测试delete 和 truncate 区别
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('1'),('2'),('3')
DELETE FROM `test` -- 不会影响自增
TRUNCATE TABLE `test` -- 自增会归零
了解即可:delete删除的问题
重启数据库,现象
- innoDB 自增列会从1开始(存在内存当中,断电即失)
- MyISAM 继续从上一个自增量开始(存在文件中,不会丢失)