Mysql数据库值的添加、修改、删除及清空操作实例
16lz
2021-12-10
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')
-- 修改学员名字UPDATE `student` SET `name`='长江七号' WHERE id = 1; -- 有条件-- 不指定的情况下,会改动所有表!!!!!UPDATE `student` SET `name` = '长江七号'-- 语法-- UPDATE 表名 SET colum_name = value,[colum_name = value,....] 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 from 表明 where 判断条件
-- 删除数据<慎用,容易删库跑路>DELETE FROM `STUDENT`-- 删除指定数据DELETE FROM `student` WHERE id = 1;
作用:完全清空一个数据库表,表的结构和索引约束不会改变!!
-- 清空数据表,例如清空student表TRUNCATE `student`-- 安全写法,删除表,防止删除数据库名为`student`TRUNCATE TABLE `student`
相同点:都可以删除数据,都不会删除表的结构
不同:
- TRUNCATE 重新设置自增列,计数器会归零
- TRUNCATE 不会影响事务
-- 测试CREATE TABLE `test`( `id` INT(4) NOT NULL AUTO_INCREMENT, `COLL` VARCHAR(20) NOT NULL, PRIMARY KEY('id'))ENGINE=INNODB DEFAULT CHARSET=UTF8INSERT TNTO `test` (`coll`) VALUES('1')('2')('3')DELETE FROM `test` -- 不会影响自增TRUNCATE TABLE `test` -- 自带会归零
- 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`-- 不会影响自增
-- 因为删除了所有数据,所以结果是表为空
总结
更多相关文章
- 《Android和PHP最佳实践》官方站
- android用户界面之按钮(Button)教程实例汇
- TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
- Android(安卓)UI开发第十七篇——Android(安卓)Fragment实例(Lis
- Android——Activity四种启动模式
- Android布局(序章)
- Android发送短信方法实例详解
- Android(安卓)读取资源文件实例详解
- android 蓝牙通讯