数据库(DataBase)-MySQL的数据管理-增删改

2.DML语言(完全记忆)

数据库存在的意义:存放数据,管理数据。

DML语言:数据库操作语言。

​ ·insert

​ ·update

​ ·delete

​ ·alter

3.添加

语法:insert into 表名 ([字段名1,字段2,字段3]) values (‘值1’,‘值2’,‘值3’…)

-- 插入语句( 添加)
-- insert into 表名 ([字段名1,字段2,字段3]) values ('值1','值2','值3'...)
insert into `grade` (`gradename`)  values ('大四');

-- 由于主键自增,可以省略。
insert into `grade` values ('大三');
-- 插入失败,因为不写表的字段时,它会自动匹配。此时将“大三”匹配给gradeid。
-- 一般写入插入字段时,我们一定要数据和字段一一对应。

-- 插入多个字段
insert into `grade` (`gradename`) values ('大二'),('大一');

insert into `student` (`name`) values ('阿丽塔');

-- 多参数
insert into `student` (`name`,`pwd`,`sex`) values ('Alita','26651','女');
insert into `student` (`name`,`pwd`,`sex`) values ('成果果','199505','女');

insert into `student` (`name`,`pwd`,`sex`) values ('成果','1995','女'),('成龙','Kongfu','男');
insert into `student` (`name`,`pwd`,`sex`) values ('Ali','266512','女'),('Jarvis','987654','男'),
('Ashock','Mr.NIIT','男'),('Alit','266513','女');

注意:

1.字段和字段之间使用英文逗号 “,”隔开;

2.字段是可以省略的,但是后面的值必须要要一对应,不能少。即:

insert into student (name,pwd,sex) values (‘Alita’,‘26651’,‘女’);

省略 (name,pwd,sex) 时,必须把数据库对应的所有参数都写上。

3.可以同时插入多条数据,VALUES 后面的值,需要使用,隔开即可 values (),(),()……

4.修改

格式:

update 表名 set colnum_name = value,[co1num_name = value,…] where [条件1,条件2……]

-- 修改信息,
update `student` set `name` = 'Edwin' where id = 1;

-- 不指名条件“where”的情况下,会修改整个表的内容
update `student` set `name` = 'Jarves';

-- 多参数修改
update `student` set `name` = 'Jarves',`address` = 'Bat Street 18' where id = 1;

-- 多条件判断,使用逻辑运算符,或 Between……And、And或者Or
update `student` set `name` = 'Jarves',`address` = 'Bat Street 18' where id = 1 And sex = '男';

-- 格式:
update 表名 set colnum_name = value,[co1num_name = value,...] where [条件]

条件: where的各种修饰

操作符 含义 举例 结果
= 判断是否相等 7 = 77 false
<> 或 != 判断是否不相等 7 <> 77 true
> 判断是否大于 7 > 77 false
< 判断是否小于 7 < 77 true
>= 判断是否大于等于 7 >= 77 false
<= 判断是否小于等于 7 <= 77 true
Between … And 判断是否在某个闭区间里 [7,77] 7<=?<=77
And 等价于Java的 && …&&… …并且…
Or 等价于Java的 || …||… …或者…

注意:

colnum_name是数据库的列,尽量带上,方便对应。

条件,筛选的条件,如果没有指定,则会修改所有的列。

value,是一个具体的值,也可以是一个变量。

5.删除

1.Delete 命令

格式:delete from 表名 [where条件];

-- 删除数据,不加条件则全部删除,一般要避免此类操作。
delete from `student` ;

-- 加上条件,可以删除指定的数据
delete from `student` where id = 1;

2.Truncate 命令

作用:完全清空一个数据库,整个表的结构和约束不会改变。

格式:truncate 表名;

-- 清空某个表
truncate `student`;

3.Delete 和 Truncate 的区别:

相同点:两者都会删除表格里的数据,切不改变该表的结构。

不同点:·Truncate命令会重新设置我们定义的自增列,自增的计数器会重新归零。

​ ·Truncate命令不会影响事务。

-- 测试delete 和 truncate的区别:
create table `test`(
	`id` int(4) not null auto_increment,
	`name` varchar(30) not null,
	 primary key (`id`)
)engine = InnoDB default charset = utf8;

insert into `test` (`name`) values ('1'),('2'),('3');

delete from `test` ;-- 不影响递增,再次执行时id从4开始。

truncate `test`;-- 自增归零,再次执行时id从1开始。

4.拓展了解

Delete删除的常见问题,在重启数据库后的现象:

·InnoDB引擎,自增列会重1开始(因为数据是存在内存当中的,断电即失,重新开始)

·MyISAM引擎,会继续从上一个自增量开始(数据是存在文件中的,关闭数据库,也不会丢失)

参考文献

《【狂神说Java】MySQL最新教程通俗易懂》
2020.05.14

原创文章 18 获赞 19 访问量 454

猜你喜欢

转载自blog.csdn.net/weixin_44199123/article/details/106123737