国强极客
有问题请加微信:guoqiang7585
国强极客

7.mysql列属性 联合主键

7.mysql列属性 联合主键
全国大流量卡免费领

列属性是指定义或创建一个列的时候,可以给列额外增加的“附加特性”。
形式如下:

create  table  表名 (列名  列类型  [列属性...] );

说明:
1,一个列可以有多个列属性;
多个列属性空格隔开就行;

列属性包括以下这些:
null,not null
    设定为空,或非空,表明该列数据是否可为空值(null)。
default
    用于设定列默认值(不给值或给空值null并not null,就会自动使用该值)。
    使用形式:default  默认值 。
primary key
    用于设定主键。
    主键就是一个表中数据的“关键值”,通过该关键值就可以找到该特定的数据行。
    一个表的主键值不能重复(相等),比如文章表中的文章编号id,比如用户表中的用户名。
    主键字段必须有值(不能为空)。
    一个表只能有一个主键(但一个主键可以是1个字段或2个以上的字段联合构成)
auto_increment
    用于设定一个整数字段的值是“自增长的”,通常用于一个表中的数据行的编号(比如文章编号)。
    默认情况下自增长值从1开始。
    一个表只能设定一个字段为自增长特性。
unique key
    用于设定“唯一键”的特性。
    唯一键表示一个表中的某字段的值是“唯一的”,“不重复的”。
    唯一键有点类似primay  key,但其值可以为空(null)。
    一个表可以有多个唯一键。
comment
    用于设定字段的说明性内容,类似注释,但又不是注释(属于有效的代码)。
    使用形式: comment  ‘文字内容’

列属性演示1

---演示null/not null, default, primary key 三个字段属性:
create table shuxing_test1 (
    id int primary key,
    userName varchar(10) not null,
    sex enum('男','女')  default '男' not null,
    f4 float null   -- 其实null可以不写,因为每个字段默认就是null
);
数据测试如下:
insert into shuxing_test1(id, userName) values(1,'user1');
insert into shuxing_test1(id, userName, sex, f4) values(2,'user2','女',10000);
//下面演示错误的数据
1,跟primary 冲突:
insert into shuxing_test1(id, userName, sex, f4) values(1,'user3','男',20000);
2,跟 not null 冲突:
insert into shuxing_test1(id, userName,sex, f4)values(3, null, '男',15000);
insert into shuxing_test1(id,sex, f4)values(3, '男',15000);

列属性演示2

创建一个表,并用上以上所有字段属性。字段可包括:id, kecheng, keshi, intro.

//综合演示所有字段属性:
创建一个表,并用上以上所有字段属性。字段可包括:id,  kecheng,  keshi,  intro.
create table shuxing_test2(
    id int auto_increment primary key comment '编号值',
    kecheng varchar(20) not null unique key comment '课程名称,不能重复',
    keshi tinyint unsigned default 1 comment '课时',
    intro varchar(1000) comment '课程介绍,应该限制在1000个字符以内为妥'
);
insert into shuxing_test2  values(null, 'PHP', 6, 'web领域最流行的后端语言');

联合主键演示

有关primary key 的进一步探讨:
1,主键的另一种设定方式:
create table tab1 (
    id int auto_increment, 
    name varchar(10),
    primary key(id)     -- 这就是主键的另一种设定方式!
    );

2,多字段主键的含义及设定:
数据样例(成绩表):
学员id    科目  成绩
1       mysql   88
2       PHP     90
1       js      77
2       mysql   85
这种情况,就需要设置“多字段主键”,具体做法如下:
create table  chengji (
    学员ID int,
    科目 varchar(20),
    成绩 tinyint unsigned,
    primary key(学员ID,科目)
);

赞赏
全国大流量卡免费领
对内容有疑问,请加我微信:guoqiang7585

国强极客

7.mysql列属性 联合主键
列属性是指定义或创建一个列的时候,可以给列额外增加的“附加特性”。形式如下: create table 表名 (列名 列类型 [列属性...] ); 说明:1,一个列可以有多个列属性;多个列属…
扫描二维码继续阅读
2019-12-03