毅力和自控力是很可怕的东西,因为99%的人根本不具备这种品质,拥有它你就比大多数人要强。
趣味杂谈
《原则》原文:但我不敢确信这场转型会顺利,因为我没有经历过这样的事情。我做事的方式是试错:犯错,找出错误原因,总结出新的原则,最终成功。而我觉得应该以同样的态度对待这场转型。
本书主人公瑞从自己切身体会谈自己,胜过国内大多数鸡汤。就国内教育体系来看,普通人能接受犯错的成本是很高的,而且随着年龄的增长,这种成本只会越来越高。就好比有的犯错成本会让你直接无法翻身,很多时候就算知道了原因,也很难再次尝试,或许这也是强人和普通人的区别,面对自己的错误是个很痛苦的过程,剥离出情绪来理智面对这一点,也已经很强大了。当然,厉害的人也知道,失败才是人生路上的常态,成功是路上偶然出现的美景。
还有一点就是:犯错并不可怕,可怕的是,不去纠正导致将错就错。
简忆上次所学知识: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;
执行后查看创建结果:
运行结果: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;
执行后查看创建结果:
三.当表已经创建好之后,额外追加主键:可以通过修改字段属性,也可以直接追加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);
执行后查看结果:
主键约束(修改数据)
主键对应的字段中的数据不允许重复:一旦重复,数据操作就会失败(增和改)
相关语句:
-- 向表中插入数据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);-- 冲突
执行后查看报错信息:
删除主键
因为主键无法更新:所以只能先删除,再增加。
语句示例:alter table 表名 drop primary key;
相关语句:
删除主键alter table my_pri3 drop primary key;
执行后查看删除信息: