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


Posted in MySQL onJune 20, 2021

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')

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

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

+++

修改:update

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

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

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

删除:delete

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

操作结果展示

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

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

总结

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

MySQL 相关文章推荐
解读MySQL的客户端和服务端协议
May 10 MySQL
MySQL触发器的使用
May 24 MySQL
Mysql systemctl start mysqld报错的问题解决
Jun 03 MySQL
浅谈MySQL 亿级数据分页的优化
Jun 15 MySQL
MySQL REVOKE实现删除用户权限
Jun 18 MySQL
解决Mysql的left join无效及使用的注意事项说明
Jul 01 MySQL
MySQL系列之六 用户与授权
Jul 02 MySQL
详细聊聊关于Mysql联合查询的那些事儿
Oct 24 MySQL
MySQL数据库如何给表设置约束详解
Mar 13 MySQL
MySQL优化及索引解析
Mar 17 MySQL
提高系统的吞吐量解决数据库重复写入问题
Apr 23 MySQL
MYSQL中文乱码问题的解决方案
Jun 14 MySQL
Unity连接MySQL并读取表格数据的实现代码
新手入门Mysql--sql执行过程
MySQL 外键约束和表关系相关总结
Jun 20 #MySQL
MySQL 使用索引扫描进行排序
Jun 20 #MySQL
新手入门Mysql--概念
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
MySQL REVOKE实现删除用户权限
Jun 18 #MySQL
You might like
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
php-app开发接口加密详解
2018/04/18 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
jqgrid 简单学习笔记
2011/05/03 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
JS module的导出和导入的实现代码
2019/02/25 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
python 判断网络连通的实现方法
2018/04/22 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
python实时获取外部程序输出结果的方法
2019/01/12 Python
python实现祝福弹窗效果
2019/04/07 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
python 日期排序的实例代码
2019/07/11 Python
python网络编程之五子棋游戏
2020/05/14 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
2020/10/18 Python
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
致铅球运动员加油稿
2014/02/13 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
导游词之日月潭
2019/11/05 职场文书
python 中的jieba分词库
2021/11/23 Python
Python中time与datetime模块使用方法详解
2022/03/31 Python