MySQL之数据表控制语句
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,博文大纲:一、约束条件相关语句主键约束非空约束设置值的唯一性设置列的默认值设置自增值二、ALTER指令的使用修改列值的数据长度修改字段名向表中插入一个新的字段添加字段时添加约束添加一个外键删除外键删除
千家信息网最后更新 2026年10月31日MySQL之数据表控制语句
博文大纲:
- 一、约束条件相关语句
- 主键约束
- 非空约束
- 设置值的唯一性
- 设置列的默认值
- 设置自增值
- 二、ALTER指令的使用
- 修改列值的数据长度
- 修改字段名
- 向表中插入一个新的字段
- 添加字段时添加约束
- 添加一个外键
- 删除外键
- 删除列
- 修改列的顺序
- 删除表
一、约束条件相关语句
1、主键约束(主键约束要求主键列的数据唯一,并且不允许为空)
mysql> create database test01; mysql> use test01;mysql> create table t1( -> id int(10), -> name varchar(10) primary key, -> sex varchar(5), -> info varchar(200) -> );确定创建的是否为主键(该列是否有PRI字样):
上述方法,是在定义列的同时定义主键,下面来写一下定义完所有列之后指定主键:
mysql> create table t2( -> id int(10), -> name varchar(10), -> sex varchar(5), -> primary key(id) -> );确认是否有主键:
2、非空约束(不允许列的值为空)
mysql> create table t3( -> id int(6) not null, -> name varchar(10) -> );查看表信息确认:
3、设置值的唯一性(不允许重复数据,可以为空,但只能有一个空,否则就会被视为重复)
mysql> create table t7( -> id int not null unique, -> name varchar(20) -> );查看其表结构:
可以看到其被标识为了主键,但是在创建时并没有指定它是主键,而是这一列的属性基本满足了主键的要求,如唯一、不可以为空。
4、设置列的默认值(如果该列为空,则写入默认值)
mysql> create table t4( -> id int(2) not null, -> name varchar(20), -> project varchar(20) default 'mysql' -> );查看确认:
5、设置自增值(一般用于id列,自增列必须设置为主键)
注:mysql只允许设置初始值,而不允许设置自增值,也就是说,可以设置为第一个值为5,然后依次递增,如:5、6、7.....但不可以设置其一次递增2个数,比如:5、7、9......
mysql> create table t5( -> id int not null primary key auto_increment, -> name varchar(20) -> );查看表结构进行确认:
测试其自增效果:
mysql> insert into t5(name) values('zhangsan'),('lisi');mysql> select * from t5;+----+----------+| id | name |+----+----------+| 1 | zhangsan || 2 | lisi |+----+----------+从上面的测试可以看出,只插入了两个name的值,并没有插入id的值,但是查看表数据时,id已经有值了,说明自增生效。
设置自增的起始值
#定义初始值为5mysql> create table t6( -> id int primary key auto_increment, -> name varchar(20) -> ) auto_increment=5;#插入数据进行测试mysql> insert into t6(name) values('zhangsan'),('lisi'); 验证其自增值:
二、ALTER指令的使用
1、修改列值的数据长度
mysql> desc t1; +-------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+--------------+------+-----+---------+-------+| id | int(10) | YES | | NULL | || name | varchar(10) | NO | PRI | NULL | || sex | varchar(5) | YES | | NULL | || info | varchar(200) | YES | | NULL | |+-------+--------------+------+-----+---------+-------+4 rows in set (0.00 sec)mysql> alter table t1 modify name varchar(20); 确认修改后的表结构:
2、修改字段名(在修改字段名的同时,还可以修改其新字段名的数据类型及数据长度)
mysql> desc t1; +-------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+--------------+------+-----+---------+-------+| id | int(10) | YES | | NULL | || name | varchar(20) | NO | PRI | NULL | || sex | varchar(5) | YES | | NULL | || info | varchar(200) | YES | | NULL | |+-------+--------------+------+-----+---------+-------+mysql> alter table t1 change info infofo char(20); 验证修改后的结果:

3、向表中插入一个新的字段
1)在最后一列插入新列:
mysql> desc t3; +-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(6) | NO | | NULL | || name | varchar(10) | YES | | NULL | |+-------+-------------+------+-----+---------+-------+2 rows in set (0.00 sec)mysql> alter table t3 add tel int(13); 查看插入后的列:

2)在表格开头插入新列:
mysql> alter table t3 add sex char(1) first;3)在指定的列后面插入新列:
mysql> alter table t3 add loc varchar(255) after name;4、添加字段时添加约束
mysql> alter table t3 add hobyy varchar(255) default 'work';5、添加一个外键
进行此操作前,需要自行找一个有主键的表(我这里t1表的name列是主键)。
现在t1表的结构如下:
t3表的结构如下:
现在将t3表的name列添加为t1表的name列的外键(其中t3_t1_name为自定义的约束名称):
mysql> alter table t3 add constraint t3_t1_name foreign key(name) references t1(name);查看t3表的变化:
6、删除外键
将上面添加的外键删除,t3_t1_name是外键的名称。
mysql> alter table t3 drop foreign key t3_t1_name;mysql> alter table t3 drop key t3_t1_name;7、删除列
mysql> alter table t3 drop tel; 注意:如果要删除的列和其他表中的列有关联关系,则需要先删除关系,再删除列。否则当以后再创建了相同名称的列时,会自动将其建立关系。
8、修改列的顺序
mysql> alter table t3 modify name varchar(10) first;9、删除表
mysql> drop table t5; Query OK, 0 rows affected (0.00 sec)mysql> drop table t5; ERROR 1051 (42S02): Unknown table 'test01.t5'mysql> drop table if exists t5; Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> show warnings; +-------+------+---------------------------+| Level | Code | Message |+-------+------+---------------------------+| Note | 1051 | Unknown table 'test01.t5' |+-------+------+---------------------------+1 row in set (0.00 sec)同样,当执行删除表操作时,如果存在关联关系,则需要先删除关联关系,再删除表。
-------- 本文至此结束,感谢阅读 --------
数据
字段
结构
增值
名称
长度
关联
测试
语句
同时
唯一性
指令
是在
条件
顺序
验证
相同
两个
个数
也就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技企业
互联网与科技
互联网科技工作委员会
深圳互联网科技公司
互联网科技ppt模板
友谊互联网络科技
撒么互联网科技公司
盛创互联网科技有限公司
互联网科技公司的市场部门
富国互联网科技创新基金
卫星互联网科技股票
温州喔噻互联网科技有限公司
厦门千工互联网科技有限公司
亳州好赞互联网科技有限公司
长沙茂晟互联网科技有限公司
雨阳互联网卡科技有限公司
济南小医互联网科技有限公司招聘
保山浩联互联网科技有限公司
杭州科技互联网公司有哪些
互联网大会出现的黑科技
互联网科技
广州互联网科技公司
奇酷互联网科技公司
沃里互联网科技
海南科技产业互联网平台
华中科技有哪些互联网大佬
卫星互联网科技股票
武汉健翔互联网络科技有限公司
佛山市拉法互联网科技有限公司
互联网时代科技型公司的机会