Mysql数据库值的添加、修改、删除及清空操作实例

3、mysql数据管理

第一种方式:不太建议,看起来复杂些

-- 学生表的 gradeid 字段,要去引用 年级表的 gradeid
-- 定义外键key
-- 给这个外键添加约束,(执行引用),references 引用
key `fk_gradeid`(`gradeid`)
constraint `fk_gradeid` foreign key (`gradeid`) references `grade`(`gradeid`)

第二种方式:建议

-- 创建表成功后,添加外键约束
-- 创建表的时候没有外键关系
alter table `student`
add constraint `fk_gradeid` foreign key(`gradeid`) references `grade`(`gradeid`);
-- alter table 表 add constraint `` foreign key (``) references `字段`

以上的操作都是物理外键,数据库级别的外键,我们不建议使用,(避免数据库过多造成困扰,这里了解即可)

最佳实践

  • 数据库为单纯的表
  • 我们想使用多张的表数据,想使用外键(程序去实现)

3.2、dml语言

数据库语言: 数据存储、数据管理

3.3、添加 insert

-- 插入语句
insert into 表名([字段1,字段2,字段2])
values(''),(''),('')

-- insert into 'grade'('gradename') values ('大四')
-- 一般写插入语句,一定要数据和要插入值的字段一一对应
-- 给某个字段添加多个字段
insert into `表明`(`属性列字段`, ...) 
values ('匹配的值1','匹配的值2','匹配的值3')
/*
如果不想写属性列的字段名,那么就吧每个属性列完全匹配,一一对应的写出后面的值*/

注意事项

  • 字段和字段之间使用英文逗号隔开
  • 字段是可以省略的,但是后面的值必须要一一对应,不能少
  • 可以同时插入多条数据,values 后面的值,需要使用,隔开即可valuse(),(),……
-- 插入多条数据<即元组>,多个行的数据
insert into `s`(`sno`,`sname`,`sex`,`sage`) values ('180109','王五','男','76'),('180108','李四','男','88')

3.3修改

update 修改谁(条件)

-- 修改学员名字
update `student` set `name`='长江七号' where  id = 1; -- 有条件
-- 不指定的情况下,会改动所有表!!!!!
update `student` set `name` = '长江七号'
-- 语法
-- update 表名 set colum_name = value,[colum_name = value,....] where [条件]

条件:where 运算符

操作符 含义 范围 结果
= 等于 5=6 false
<>或者 != 不等于 5<>6 true
> 大于 5>6 false
< 小于 5<6 true
>= 大于等于 5>=6 false
<= 小于等于 5<=6 true
between a and b 在a和b之间 between 1 and 10 在1~10之间,不包括10
and 连接条件&& 条件1 和条件2都成立 都是true 才是true
or 或者|| 条件1 和条件2有一个成立即可 有一个true才是true

注意事项:

  • colnum_name 是数据库的列,尽量带上 “
  • 条件,筛选的条件,如果没有指定,则会修改所有的列
  • vlaue是一个具体的值,也可以是一个变量,如birthday = current_time current_time是当前时间
  • 多个设置的属性之间,使用英文逗号隔开
-- 修改语句的例子
update `student`set `birthday` = current_time where `name` = '长江七号' and  sex = '女'

3.4 删除

delete 命令

语法:delete from 表明 where 判断条件

-- 删除数据<慎用,容易删库跑路>
delete from `student`

-- 删除指定数据
delete from `student` where id = 1;

truncate 命令

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

-- 清空数据表,例如清空student表
truncate `student`
-- 安全写法,删除表,防止删除数据库名为`student`
truncate table `student`

delete 和truncate的区别

相同点:都可以删除数据,都不会删除表的结构

不同:

  • truncate 重新设置自增列,计数器会归零
  • 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 tnto `test` (`coll`) values('1')('2')('3')

delete from `test` -- 不会影响自增

truncate table `test` -- 自带会归零

了解即可:delete删除的问题,重启数据库,现象

  • innodb 自增列会从1开始,(存在内存当中的断电即失)
  • myisam 继续从上一个子增量开始(存在文件当中的,不会丢失)

+++

+++

课后的添加实例展示

添加:

-- 一条元组的添加示例
insert into `student` values('180103','对象三','女','22','cs')

-- 测试添加多条元组,中间使用英文逗号隔开
insert into `student` values('180105','对象五','男','19','is'),('180106','对象六','女','20','cs'),('180107','对象七','女','20','cs')

-- 因为表的结构设置非空,这里没有测试只添加某个属性列的值

+++

修改:update

update `student` set `sname` = '操作修改对象一' where `sno`= 180102;
-- 记得添加的时候不要带逗号,我的问题出在了下面带了逗号
-- update `student` set `sname` = '操作修改对象一',where `sno`= 180102;

添加成功后,表的结果截图展示:

删除:delete

-- 删除单条记录<符合where条件就删除这条记录>
delete from `student` where sname = '操作修改对象一';
-- 使用truncate清空数据表
truncate table `student`
-- 或者使用 delete删除所有数据库
delete from `student`
-- 不会影响自增

操作结果展示

— 因为删除了所有数据,所以结果是表为空

总结

到此这篇关于mysql数据库值的添加、修改、删除及清空操作的文章就介绍到这了,更多相关mysql值添加、修改、删除及清空内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐