当前位置:网站首页>DDL:ALTER 修改数据库——《mysql 从入门到内卷再到入土》
DDL:ALTER 修改数据库——《mysql 从入门到内卷再到入土》
2022-08-10 20:51:00 【Dhaa_Ryan】
内卷能让一个群体的内部变得异常的精致,但是本质上却完完全全没有任何的进步,并且会导致更多没必要的资源浪费以及带来更加激烈的竞争。它是zbzy社会下劳动力过剩的必然现象。
修改–alter
CREATE TABLE
user
(id
INT(10)NOT NULL,mobile
VARCHAR(11) NOT NULL,nickname
VARCHAR(40) NOT NULL,gmt_created
datetime ,gmt_modified
datetime ,
PRIMARY KEY (id
)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
修改列名
测试例:
比如说我们修改上面的那张表
ALTER TABLE user CHANGE COLUMN nickname othername VARCHAR;
//修改时需要把数据类型加上
修改类型和约束
测试例:
ALTER TABLE user CHANGE MODIFY COLUMN nickname INT ;
//将nickname的类型改成int
添加列//属性
测试例:
ALTER TABLE user ADD COLUNM money DOUBLE;
//添加money这个新列(属性)
删除列
测试例:
ALTER TABLE user DROP COLUNM money;
修改表名
ALTER TABLE user RENAME TO proletariat;
//将user改成能’将马云吊上路灯’的群体的名字
删除–drop(直接把表扔了,不是清空数据)
DROP TABLE table_name;
DROP TABLE IF EXISTS table_name;
复制
仅仅复制表的结构
CREATE TABLE proletariat LIKE user ;
复制表的部分结构
CREATE TABLE proletariat
SELECT id,name
FROM user
WHERE 0;
复制表的结构和数据
CREATE TABLE proletariat
SELCET * FROM user;//将表的某个列的数据复制过来,*是全部复制
复制表的结构和部分符合条件的数据
CREATE TABLE proletariat
SELCET * FROM user
WHERE nation=’international’
//将表的符合条件的行的某个数据复制过来
添加表级约束
CREATE TABLE stuinfo(
id INT,
stuname VARCHAR(20),
gender CHAR(1),
seat INT,
age INT,
major_id INT,
//只能创建列级约束的:
//缺省约束
//NULL约束
//表级约束,必须在列定义后使用
//为ID添加主键
//CONSTRAINT 和约束名可以省略
CONSTRAINT yaju PRIMARY KEY(id)//主键
CONSTRAINT yaju2 UNIQUE(seat)//唯一键
CONSTRAINT yaju3 CHECK(gender=’男’ OR gender=’女’)//检查
CONSTRAINT fk_stuinfo_major FOREIGN KEY(major_id) REFERENCES major(id)//添加外键
)
修改表时添加约束
CREATE TABLE stuinfo(
id INT,
stuname VARCHAR(20),
gender CHAR(1),
seat INT,
age INT,
major_id INT,
)
//添加非空约束
ALTHER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NOT NULL
//添加默认约束
ALTHER TABLE stuinfo MODIFY COLUMN age INT DEFAULT 18;
//添加主键
ALTHER TABLE stuinfo MODIFY COLUMN id INT PRIMARY KEY;
ALTHER TABLE stuinfo ADD PRIMARY KEY(id);//表级约束写法
//添加唯一键
ALTHER TABLE stuinfo MODIFY COLUMN seat INT UNIQUE;
ALTHER TABLE stuinfo ADD UNIQUE(seat);//表级约束写法
//添加外键
ALTHER TABLE stuinfo ADD FOREIGN KEY(major_id) REFERENCES major(id);
修改表时删除约束
//删除非空约束
ALTHER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NULL;
//删除默认
ALTHER TABLE stuinfo MODIFY COLUMN age INT;
//删除主键
ALTHER TABLE stuinfo DROP PRIMARY KEY;
//删除唯一键
ALTHER TABLE stuinfo DROP INDEX seat;
//删除外键
ALTHER TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_major;
//删除索引
ALTHER TABLE stuinfo DROP index id;
标识列
AUTO_INCREMENT
自增长列,不需要手动插入值,系统提供默认的序列值
它不一定是主键,但要求是一个KEY
一个表中只能有一个自增长列
标识列的类型只能是数值
在创建表时设置标识列
CREATE TABLE tab_identity(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
);
//在插入数据时如果设置的值为null,系统会自动进行插入
INSERT INTO tab_indentity VALUES(NULL,’john’)
设置步长
SET auto_increment_increment =3;
在默认插入时每次以3为间隔 刚开始时插入一个设置好的值,
在此之后的默认插入的编号就在这个值后面递增
修改表时设置标识列
ALTER TABLE tab_indentity MODIFY COLUMN id INT PRIMARY KEY AUTO_INCREMENT
修改表时删除标识列
ALTER TABLE tab_indentity MODIFY COLUMN id INT PRIMARY KEY
返回索引
边栏推荐
猜你喜欢
随机推荐
B. Codeforces Subsequences
D. Game With Array
测试代码新的规则
C. Even Picture
Web3中值得关注的基础设施
一次由groovy引起的fullGC问题排查
实施MES管理系统前,这三个问题要考虑好
OPPO Enco X2 迎来秋季产品升级 旗舰体验全面拉满
kuberentes Auditing 入门
Go程序员进化史
wget编译升级故障解决
电信保温杯笔记——《统计学习方法(第二版)——李航》第17章 潜在语义分析
论配置化系统的配置
如何提交一个PR?【OpenHarmony成长计划】【OpenHarmony开源社区】
Introduction to PostgreSQL
CMU博士论文 | 视频多模态学习:探索模型和任务复杂性
验证码倒计时自定义hooks
(十二)STM32——NVIC中断优先级管理
如何提高代码的可读性 学习笔记
[SemiDrive source code analysis] [MailBox inter-core communication] 51 - DCF_IPCC_Property implementation principle analysis and code combat