toc
mysql中的6个列属性:null,default,comment,primary key,unique key,auto_increment
代表字段为空。mysql的记录长度为65535字节,如果表中有字段允许为NULL,那么系统会设计保留1个字节来存储NULL,最终有效存储长度为65534字节
mysql> create table tbTest (
name varchar(10) NOT NULL -- 不能为空
) charset utf8;
mysql> create table tbTest (
name varchar(10) NOT NULL
age int default 18 -- 默认为18
) charset utf8;
mysql> -- 两种方式触发默认值
mysql> insert into tbTest values('csxiaoyao');
mysql> insert into tbTest values('csxiaoyao', default);
基本语法:comment '字段描述';
mysql> create table tbTest (
name varchar(10) NOT NULL COMMENT '用户名不能为空'
) charset utf8;
mysql> -- 查看Comment必须通过查看表创建语句
mysql> show create table tbTest;
mysql> -- 方法1,给字段增加 primary key 属性
mysql> create table tbTest (
name varchar(10) primary key
) charset utf8;
mysql> -- 方法2,在所有字段之后增加 primary key 选项
mysql> create table tbTest (
name varchar(10),
primary key(name)
) charset utf8;
基本语法:alter table <表名> add primary key(<字段>);
mysql> -- 方案1:查看表结构
mysql> desc tbTest;
mysql> -- 方案2:查看建表语句
mysql> show create table tbTest;
基本语法:alter table <表名> drop primary key;
mysql> create table tbTest (
student_no char(10),
course_no char(10),
score tinyint not null,
primary key(student_no, course_no)
) charset utf8;
业务主键:主键所在的字段,具有业务意义(学生ID,课程ID)
逻辑主键:自然增长的整型(应用广泛)
主键也可以用来保证字段数据唯一性,但一张表只有一个主键
mysql> -- 方法1,给字段增加 unique[ key] 属性
mysql> create table tbTest (
name varchar(10) unique
) charset utf8;
mysql> -- 方法2,在所有字段之后增加 unique key 选项
mysql> create table tbTest (
name varchar(10),
unique key(name)
) charset utf8;
基本语法:
alter table <表名> add unique key(<字段1,字段2,...>);
mysql> -- 方案1:查看表结构
mysql> desc tbTest;
mysql> -- 方案2:查看建表语句
mysql> show create table tbTest;
mysql> -- 系统会为唯一键自动创建一个名字(默认为字段名)
CREATE TABLE `tbTest` (
`name` varchar(10) NOT NULL,
PRIMARY KEY (`name`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
基本语法:
alter table <表名> drop index < 唯一键名>;
先删除后增加
mysql> create table tbTest (
student_no char(10),
course_no char(10),
score tinyint not null,
unique key(student_no, course_no)
) charset utf8;
通常自动增长用于逻辑主键,只适用于数值,sqlserver中使用identity(1,1)
在系统中维护一组数据保存当前使用自动增长属性的字段,记住当前对应的数据值,再给定一个指定的步长
mysql> create table tbTest2 (
id int primary key auto_increment,
name varchar(10)
) charset utf8;
查看自增长:自增长触发使用后,会自动在表选项中增加一个选项 (一张表最多只能有一个自增长)
CREATE TABLE `tbTest` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
可以通过修改表结构来修改自动增长
基本语法:
alter table <表名> auto_increment = <值>;
删除自增长:修改自动增长的字段,字段属性之后不再保留 auto_increment 即可
在系统中有一组变量维护自增长的初始值和步长
show variables like ‘auto_increment%’;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。