01.创建表的样例
1.1 直接创建表:
CREATE TABLE
[IF NOT EXISTS] tb_name
(column_name1 data_type1
[ PRIMARY KEY
| FOREIGN KEY
| AUTO_INCREMENT
| COMMENT comment
| DEFAULT default_value
| UNIQUE
| NOT NULL
], ...
) [CHARACTER SET charset]
[COLLATE collate_value]
1.2 从另一张表复制表结构创建表:
CREATE TABLE tb_name LIKE tb_name_old
1.3 从另一张表的查询结果创建表:
CREATE TABLE tb_name AS SELECT * FROM tb_name_old WHERE options
CREATE table if not exists user_info_vip (
id int primary key auto_increment comment '自增ID',
uid int unique not null comment '用户ID',
nick_name varchar(64) comment '昵称',
achievement int default 0 comment '成就值',
`level` int comment '用户等级',
job varchar(32) comment '职业方向',
register_time datetime default CURRENT_TIMESTAMP comment '注册时间'
) character set utf8 COLLATE utf8_general_ci ;
describe user_info_vip ;
? 输出结果:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U7LiO4qF-1647083373335)(C:\Users\Gadaite\AppData\Roaming\Typora\typora-user-images\image-20220312174225624.png)]](https://img-blog.csdnimg.cn/1f8da23526e64518a15f84646662c3dc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAR2FkYWl0ZQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
02.修改表的信息
ALTER TABLE user_info ADD f1 varchar(15) AFTER f2;
ALTER TABLE user_info CHANGE f1 f2 varchar(10);
ALTER TABLE user_info CHANGE COLUMN f1 f1 int DEFAULT value;
2.1.在某个字段后面插入一个新的字段
ALTER table user_info_vip add school varchar(15) after `level`;
describe user_info_vip ;
? 输出结果:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8mciW3mL-1647083373336)(C:\Users\Gadaite\AppData\Roaming\Typora\typora-user-images\image-20220312181552250.png)]](https://img-blog.csdnimg.cn/b53e632cab2342488a3950399d37ab34.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAR2FkYWl0ZQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
2.2.更新表的列名,改变字段长度
ALTER table user_info_vip change job profession varchar(10);
describe user_info_vip ;
? 输出结果:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i3k8LK0t-1647083373336)(C:\Users\Gadaite\AppData\Roaming\Typora\typora-user-images\image-20220312181838036.png)]](https://img-blog.csdnimg.cn/93c8b4a30e214666a539fa46b7c65678.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAR2FkYWl0ZQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
2.3.设置默认值
alter table user_info_vip change column achievement achievement int default 0;
describe user_info_vip ;
? 也可以使用:ALTER TABLE user_info MODIFY achievement INT(11 ) DEFAULT 0 ;这种方式进行修改
? 输出结果:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PUNkPvnd-1647083373336)(C:\Users\Gadaite\AppData\Roaming\Typora\typora-user-images\image-20220312182156620.png)]](https://img-blog.csdnimg.cn/349765ecd39341d3bffd562819ed863e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAR2FkYWl0ZQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
03.删除已经存在的多个表
3.1.创建多个表进行模拟
drop table if EXISTS exam_record;
CREATE TABLE IF NOT EXISTS exam_record (
id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
uid int NOT NULL COMMENT '用户ID',
exam_id int NOT NULL COMMENT '试卷ID',
start_time datetime NOT NULL COMMENT '开始时间',
submit_time datetime COMMENT '提交时间',
score tinyint COMMENT '得分'
)CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE IF NOT EXISTS exam_record_2010 (LIKE exam_record);
CREATE TABLE IF NOT EXISTS exam_record_2012 (LIKE exam_record);
CREATE TABLE IF NOT EXISTS exam_record_2013 (LIKE exam_record);
CREATE TABLE IF NOT EXISTS exam_record_2014 (LIKE exam_record);
CREATE TABLE IF NOT EXISTS exam_record_2015 (LIKE exam_record);
3.2.匹配查询表有那些
SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'exam_record_201_' ;
? 输出结果:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-51NM9OrT-1647083373337)(C:\Users\Gadaite\AppData\Roaming\Typora\typora-user-images\image-20220312183823980.png)]](https://img-blog.csdnimg.cn/a9c50a663b8044c09989387d8590cb2a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAR2FkYWl0ZQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
3.3.删除的多个表(存在的情况下)
drop table if exists exam_record_2011, exam_record_2012,exam_record_2013,exam_record_2014;
? 并使用通配符匹配查询剩下的所有表
SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'exam_record_201_' ;
? 输出结果:
并使用通配符匹配查询剩下的所有表
SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'exam_record_201_' ;
? 输出结果:

|