网站建设知识
浅析MySQL中列属性
2025-07-22 11:13  点击:0

浅析MySQL中列属性,在MySQL中,真正约束字段的是数据类型,但是数据类型的约束很单一,这个时候就需要一些额外的约束来更加保证数据的合法性。

列的属性有,NULL/Not NULL,default,primary key,auto_increment,comment等。

空属性

空属性有两个取值,分别是NULL,NOT NULL。其中默认值是空(NULL)。空数据没有意义。任何参与NULL运算的结果都是NULL。

create table my_class(

name varchar(20) not null,

room varchar(20) not null,

size int

) charset utf8;

列描述

列描述(comment),又可以称之为注释,没有实际含义,是专门用来描述字段的。

create table my_teacher(

name varchar(20) not null comment '姓名',

money decimal(10,2) not null comment '工资'

)charset utf8;

默认值

当数据库中表的某一个字段属性经常性的出现某一个具体的值,此时可以为此字段设置默认值。而在需要真实数据的时候可以选择性的修改字段的具体值。

create table my_default(

name varchar(20) not null,

age tinyint unsigned default 0,

gender enum('男','女','保密') default '男'

)charset utf8;

主键属性

主键(primary key),一张表中只能有一个字段使用对应的键,用来唯一的约束字段里面的数据,主键不能重复。

一张表中只能有最多一个主键(复合主键除外)。为一张表增加主键有3种方式。

1.在创建表的时候直接在字段之后使用primary key关键字。主键不能为空,但此方式只能使用一个字段作为主键。

create table my_pri1(

name varchar(20) not null comment '姓名',

number char(10) primary key comment '学号,不能重复'

)charset utf8;

2.在创建表的时候在有的字段之后,使用primary key(字段列表)的方式创建复合主键。

create table my_pri2(

number char(10) comment '学号',

course char(10) comment '课程代码',

score tinyint unsigned default 60 comment '成绩',

-- 增加主键限制,一个学号和一个课程只有一个成绩

primary key(number,course)

)charset utf8;

3.当表已经创建好之后,再次增加主键可以通过修改表字段的属性,也可以直接追加.

-- 追加主键

create table my_pri3(

course char(10) not null comment '课程编号',

name varchar(10) not null comment '课程名字'

)charset utf8;

-- 下面是两种方式来追加主键

alter table my_pri3 modify course char(10) primary key comment '课程编号';

alter table my_pri3 add primary key(course);

删除主键

alter table my_pri1 drop primary key;

注意主键对应的字段中的数据不允许重复,一旦重复,数据操作(数据的增改)将失败。

自动增长

自动增长通常是跟主键进行搭配,一般而言,声明为自动增长属性的字段,插入数据的时候系统会自动的在当前最大值的基础上对指定的数据+1.

自动增长(auto_increment)有几个必要的条件。

1.任何一个字段要做自动增长的前提是本身是一个索引(key一栏有值)。

2.自动增长必须是数字而且是整型。

3.一张表只能有一个自增长,自动增长的起始默认值是1

create table my_auto(

id int primary key auto_increment comment '自动增长',

name varchar(10) not null

)charset utf8;

修改自动增长的步长:

set auto_increment_increment=5;

删除字段的自动增长的属性:

alter table my_auto modify id int;

唯一键

一张表中往往有很多的数据具有唯一性,数据之间不能重复。唯一键解决了主键不能满足多个字段的唯一性的问题。

create table my_uniquel(

number char(10) unique comment '学号唯一,可以为空',

name varchar(20) not null

)charset utf8;

当然唯一键也可以通过追加的方式来设置,但此时的键会显示成主键(因为满足了唯一性和数字型的条件)。

修改的方式来添加主键。alter table my_unique add unique key(number);

删除主键: