MySQL——常用更改表的命令汇总

  1. 必修的改表技能
-- 所有的改表结构操作都可通过ALTER TABLE 实现

-- ALTER TABLE 基本语法

ALTER TABLE table_name changes;

-- changes 具体的更改命令

  1.1 增加列

复制代码
ALTER TABLE bird_families
ADD COLUMN order_id INT;

-- 将新增的列加在最前面用FIRST

ALTER TABLE bird_families
ADD COLUMN order_id INT FIRST;

-- 将新增的列加在某列的后面用AFTER

ALTER TABLE birds_new
ADD COLUMN wing_id CHAR(2) AFTER family_id;
复制代码

  1.2 复制表

复制代码
CREATE TABLE test.birds_new LIKE birds; # 不复制主键和自增

-- 为附表插入相同数据

INSERT INTO birds_new 
SELECT * FROM rookery.birds;

-- 建表同时完全复制表

CREATE TABLE birds_new LIKE rookery.birds;

INSERT INTO birds_new
SELECT * FROM rookery.birds;
复制代码

 

  1.3 删除列

-- DROP COLUMN
ALTER TABLE birds_new
DROP COLUMN wing_id;

  1.4 改列名与类型

-- CHANGE COLUMN old_colname new_colname type

ALTER TABLE birds_new
CHANGE COLUMN common_name common VARCHAR(255);

-- 无论是否只改列名或类型都需要写上新列名的类型

  1.5 更改数据

-- 更改数据用 UPDATE table_name SET ... WHERE...

UPDATE birds_new SET endangered =0
WHERE bird_id IN(1,2,4,5);

  2.选修的改表技能

    2.1 更改列的默认值

复制代码
-- CHANGE

ALTER TABLE birds_new
CHANGE COLUMN 
endangered conservation_status_id INT DEFAULT 8;

-- ALTER

ALTER TABLE birds_new
ALTER conservation_status_id SET DEFAULT 7;

-- 删除默认值
ALTER TABLE birds_new
ALTER conservation_status_id DROP DEFAULT;
复制代码

    2.2 设置AUTO_INCREMENT的值

ALTER TABLE birds
AUTO_INCREMENT =10; #重10开始而不是默认从1开始

    2.3 重命名表

-- REMANE TABLE 重命名表同时移动表

RENAME TABLE rookery.birds TO rookery.birds_old,
test.birds_new TO rookery.birds;

    2.4 索引

    索引与其所基于的列是分离的,索引不是列。

       ·以下显示索引的名字与human_id相同,但不等同。

    

    ·EXPLAIN 显示语句是如何检索数据的。

 

  ·key通常会列出语句实际用到的索引,这里数据较少固显示NULL

复制代码
-- 添加索引

ALTER TABLE birdwatchers.humans
ADD INDEX human_names (name_last,name_first);

-- 添加UNIQUE索引

ALTER TABLE conservation_status
ADD UNIQUE INDEX(status_id);

-- 删除索引用DROP INDEX index_name
复制代码

 

 

 

 

    ·上述key显示使用了索引human_names

 
posted @   data_byte  阅读(664)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示