hibernate 复合主键 根据主键删除_大战MySQL主键及其操作

78c9cbf16ff67b44ce2a734f084edb50.png

点击上方蓝字关注"程序员Bob"

a3c4a7fe1636746a24bacfcb6eb33c16.png

毅力和自控力是很可怕的东西,因为99%的人根本不具备这种品质,拥有它你就比大多数人要强。

aa51d2f89d2d59bde0e9f8c40b1eab70.png 趣味杂谈

《原则》原文:但我不敢确信这场转型会顺利,因为我没有经历过这样的事情。我做事的方式是试错:犯错,找出错误原因,总结出新的原则,最终成功。而我觉得应该以同样的态度对待这场转型。

本书主人公瑞从自己切身体会谈自己,胜过国内大多数鸡汤。就国内教育体系来看,普通人能接受犯错的成本是很高的,而且随着年龄的增长,这种成本只会越来越高。就好比有的犯错成本会让你直接无法翻身,很多时候就算知道了原因,也很难再次尝试,或许这也是强人和普通人的区别,面对自己的错误是个很痛苦的过程,剥离出情绪来理智面对这一点,也已经很强大了。当然,厉害的人也知道,失败才是人生路上的常态,成功是路上偶然出现的美景。

还有一点就是:犯错并不可怕,可怕的是,不去纠正导致将错就错。

简忆上次所学知识:MySQL的记录长度为65535个字节,而varchar是达不到它的理论长度的,NULL占用一个字节,text文本不占用记录长度,因为它本身就占据十个字节。 这里继续学习与MySQL列属性相关知识:关于主键的增,改,删。 主键 主键:primary key (一张表中最多只能有一个主键) 主键,简而言之为主要的键,一张表中只能有一个字段可以使用对应的键,用来约束该字段里面的数据,不能重复,被称之为主键 。 增加主键:SQL操作中有多种方式可以给表增加主键,大体上分为三种: 一.在创建表时,直接写在字段之后(优点:非常直接,缺点:只能使用一个字段作为主键) 相关语句:
create table my_pril(name varchar (20) not null comment '姓名',number char (10) primary key comment '学号: itcast +0000,不能重复' )charset utf8;
执行后查看创建结果:

85c5ac54fec09671ac848a955137cebc.png

运行结果:PRI代表主键(大部分时候),NULL为no,即主键本身不为空 二.创建表的时候,在字段之后,可以使用primary key(主键字段列表)来创建(如果有多个字段作为主键,可以称之为复合主键) 相关语句:
-- 复合主键create table my_pri2(number char(10) comment '学号: itcast + 0000',course char(10) comment '课程代码:01 + 0000',score tinyint unsigned default 60 comment '成绩',-- 增加主键限制:学号和课程号是对应的,具有唯一性primary key (number,course))charset utf8;
执行后查看创建结果:

c4ae8a150ecca4596788af9cdd9a4435.png

三.当表已经创建好之后,额外追加主键:可以通过修改字段属性,也可以直接追加Alter table 表名 add primary key(字段列表); 

前提:表中字段对应的数据本身是独立的(即不重复)

相关语句:
-- 追加主键create table my_pri3(course char(10) not null comment '课程编号:001+0000',name varchar(10) not null comment '课程名字')charset utf8;-- 添加的两种方法:1:alter table my_pri3 modify course char(10) primary key comment '课程编号:001+0000' ;2:alter table my_pri3 add primary key (course);
执行后查看结果:

a9fddf4cde3638024a26f6f1711d179f.png

主键约束(修改数据)

主键对应的字段中的数据不允许重复:一旦重复,数据操作就会失败(增和改)

相关语句:
-- 向表中插入数据insert into my_pril values ('小明','itcast0001'),('小Bob','itcast0002');insert into my_pri2 values ('itcast0001','010000',90),('itcast0001','011000',95),('itcast0002','010000',90);-- 主键冲突(重复)insert into my_pril values('小白','itcast0002'); -- 主键冲突(保证数据唯一性)insert into my_pri2 values ('itcast0001','010000',100);-- 冲突
执行后查看报错信息:

830401f568f02316d2620902e90fe0f4.png

删除主键

因为主键无法更新:所以只能先删除,再增加。

语句示例:alter table 表名 drop primary key;

相关语句:
删除主键alter table my_pri3 drop primary key;
执行后查看删除信息:

3e4787fcfd71688b777489cfcee221d6.png

65786e359c397bd42fc2cdff44b656df.png

往期推荐:

大战SQL列类型及其列属性

2020-11-09

5cd736ab24441454d2cca5202b7a2c04.png

博客更新:Hexo更新到5.2.0版本血泪踩坑史

2020-11-06

8bd05a102658d7ae91277e18ffa4beaf.png

@所有人,零基础直达四六级水平英语学习(纯资源分享)

2020-11-05

b381af29162621b9fd2b602069470302.png

为你,千千万万遍.

关注程序员Bob公众号,与你一起终生学习

4343276411d6502df269eac8f7f05999.png

一键三连,就差你了 fb63e5361cd31d09d72b6be101452b93.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值