数据库学习之表的约束、修改表结构、复制表

本文详细解释了SQL数据库中的各种约束,如主键约束的唯一性、非空约束、默认值设定和检查约束的作用。还介绍了如何使用ALTERTABLE语句修改表结构和数据操作,包括添加、删除、修改字段和复制表等。
摘要由CSDN通过智能技术生成

表的约束

主键约束

主键(primary key):数据库中一个独立无二的字段,该字段不允许数据重复,是一条记录的唯一标识符。

主键约束:强制规范这个字段,特点:不能重复、而且不能为空

非空约束

非空约束(not null):不允许为空,对应就是允许为空(is null)。比如说在填写一些身份信息表格的时候,名字不可空

默认值约束

default 值,表示如果在插入数据库,没有这个字段对应的值,会插入对应的默认值。

唯一约束

unique:该字段,不能存在相同的值。就比如说身份证号码在数据库中不可重复

检查约束

检查约束:SQL标准中检查很早就出现了,但是MySQL在8.0之前没有检查约束(写上也不报错,但是也不生效),在8.0之后,MySQL真正实现了检查约束。

例子

create table user(
-- 定义主键
	id int primary key auto_increment,
-- 定义不能为空
    name varchar(255) not null unique,
-- 定义默认值为18
    age int default 18,
-- 检查这个属性必须是男或者女
    gender varchar(10) check(gender in ("男", "女")),
    address varchar(255)
)

修改表结构

增加列

alter table 表名称 add 字段名称 类型 [约束条件];

删除列

ALTER TABLE 表名称 drop 字段名称;

修改列类型或者条件

ALTER TABLE 表名称 modify 字段 新类型 [新的约束];

修改列名称

ALTER TABLE 表名称 change 旧字段名称 新的字段名称  新类型 [新的约束];

修改表名称

ALTER TABLE 表名称 rename 新名称;
RENAME TABLE 表名 TO 新表名;

复制表

复制表的结构

create table 新表名 like 源表

# 注意:会完整的复制表结构,并且连约束也会复制
# 表的数据不会复制

复制表的结构和数据

记录拷贝到新表中。下面的语法格式将源表的表结构以及源表的所有记录拷贝到新表中。
create table 新表名 select {*|字段 [, 字段...]} from 源表

# 注意:约束中的主键和唯一约束复制不了

快速插入数据

-- 如果已经存在一张机构一致的表,复制数据
insert into 表 select {*|字段 [, 字段...]} from 原表;

不嫌弃的点点关注,点点赞 ଘ(੭ˊᵕˋ)੭* ੈ✩‧

  • 14
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值