MySQL表结构相关操作

1. 创建表

# 格式
CREATE TABLE 表名(
	字段名1 类型(长度) [约束类型],
	字段名2 类型(长度) [约束类型],
	...
)
# 示例
CREATE TABLE stu(
	id int,
	sname varchar(255),
	birthday date
)
CREATE TABLE IF NOT EXISTS stuinfo(
	id INT PRIMARY KEY AUTO_INCREMENT,#主键,自增列,列值不需要手动插入,默认从1开始每次增长1。不要手动插入主键的值。
	stuname VARCHAR(20) NOT NULL ,#非空
	borndate DATETIME,
	email VARCHAR(20) CHECK (email LIKE '%@%'),#检查,MySQL不支持
	gender CHAR(1) DEFAULT '男',#默认
	seat INT UNIQUE,#唯一
	majorId INT,
	#FOREIGN KEY(majorid)majorId就是外键列,外键列所在的表叫从表,REFERENCES引用 major是主表,主表必须出主键,id一定是major的主键。
	CONSTRAINT fk_major_stuinfo FOREIGN KEY(majorid) REFERENCES major(id)
);		

2. 修改表名

# 格式
ALTER TABLE 表名 RENAME TO 新表名
# 示例
ALTER TABLE stuinfo RENAME TO student;

3. 修改列名

# 格式
ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 数据类型
# 示例
ALTER TABLE student CHANGE COLUMN gender sex CHAR(1);

4. 修改列的类型

# 格式
ALTER TABLE 表名 MODIFY COLUMN 列名 类型
# 示例
ALTER TABLE student MODIFY COLUMN birthday TIMESTAMP;

5. 添加主键约束

# 格式
ALTER TABLE 表名 MODIFY COLUMN 列名 字段类型 PRIMARY KEY
或者
ALTER TABLE 表名 ADD PRIMARY KEY(列名)
# 示例
ALTER TABLE student MODIFY COLUMN id INT PRIMARY KEY;
ALTER TABLE student ADD PRIMARY KEY(id);

6. 添加非空约束

# 格式
ALTER TABLE 表名 MODIFY COLUMN 表名 字段类型(长度) NOT NULL
# 示例
ALTER TABLE student MODIFY COLUMN stuname VARCHAR(20) NOT NULL;

7. 添加唯一约束

# 格式
ALTER TABLE 表名 MODIFY COLUMN 列名 字段类型(长度) UNIQUE
或者
ALTER TABLE 表名 ADD NUIQUE(列名)
# 示例
ALTER TABLE student MODIFY COLUMN seat INT UNIQUE;
ALTER TABLE student ADD UNIQUE(seat);

8. 添加默认值

# 格式
ALTER TABLE 表名 MODIFY COLUMN 列名 字段类型(长度) DEFAULT 默认值
# 示例
ALTER TABLE student MODIFY COLUMN gender CHAR(1) DEFAULT '男';

9. 添加外键约束

# 格式
ALTER TABLE 从表表名 ADD CONSTRAIN 外键名(规则:fk_主表_从表) FOREIGN KEY(从表外键字段) REFERENCES 主表表名(主表主键)
# 示例
ALTER TABLE student ADD CONSTRAINT fk_m_s FOREIGN KEY (majorid) REFERENCES major(id);

10. 删除主键约束

# 格式
ALTER TABLE 表名 DROP PRIMARY KEY
或者
ALTER TABLE 表名 MODIFY COLUMN 主键字段 字段类型 NULL
# 示例
ALTER TABLE student DROP PRIMARY KEY;
ALTER TABLE student MODIFY COLUMN id INT NULL;

11. 删除唯一约束

# 格式
ALTER TABLE 表名 DROP INDEX 列名
# 示例
ALTER TABLE student DROP INDEX seat;

12. 删除非空约束

# 格式
ALTER TABLE 表名 MODIFY COLUMN 列名 字段类型(长度)
# 示例
ALTER TABLE student MODIFY COLUMN stuname VARCHAR(20);

13. 删除默认值

# 格式
ALTER TABLE 表名 MODIFY COLUMN 列名 字段类型(长度)
# 示例
ALTER TABLE student MODIFY COLUMN gender CHAR(1);

14. 删除外键约束

# 格式
ALTER TABLE 表名 DROP FOREIGN KEY 外键名
# 示例
ALTER TABLE student DROP FOREIGN KEY fk_m_s;

15. 添加新列

# 格式
ALTER TABLE 表名 ADD COLUMN 列名 字段类型(长度)
# 示例
ALTER TABLE student ADD COLUMN phone VARCHAR(20);

16. 删除某一列

# 格式
ALTER TABLE 表名 DROP COLUMN 列名
# 示例
ALTER TABLE student DROP COLUMN phone;

17. 删除表

# 格式
DROP TABLE 表名
# 示例
DROP TABLE stuinfo;

18. 复制表结构(没有数据)

# 格式
CREATE TABLE 表名2 LIKE 表名1
# 示例
CREATE TABLE stu_copy like stuinfo;

19. 复制表结构和表数据

# 格式
CREATE TABLE 表名2 (AS) SELECT * FROM 表名1 
# 示例
CREATE TABLE stu_copy2 SELECT * FROM stuinfo;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值