您好,登录后才能下订单哦!
这篇文章主要介绍“Mysql数据库值的添加、修改、删除及清空的操作命令”,在日常操作中,相信很多人在Mysql数据库值的添加、修改、删除及清空的操作命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”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 `字段`
以上的操作都是物理外键,数据库级别的外键,我们不建议使用,(避免数据库过多造成困扰,这里了解即可)
最佳实践
数据库为单纯的表
我们想使用多张的表数据,想使用外键(程序去实现)
数据库语言: 数据存储、数据管理
-- 插入语句 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')
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 = '女'
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数据库值的添加、修改、删除及清空的操作命令”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。