当前位置:网站首页>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

返回索引

Mysql 基础 目录链接

原网站

版权声明
本文为[Dhaa_Ryan]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_46207392/article/details/114069673