MySQL-表结构(二)


本文对MySQL的数据定义语言(DDL)学习,DDL中比较常用的有create(创建),show(查),alter(修改),drop(删除),实现对表结构的增删改查

创建表

下面是例子的表结构,其中就是用到了create(创建)关键字

create table me(
id int unsigned auto_increment,
name varchar(20) not null comment '姓名',
phone varchar(20) comment '手机号',
site varchar(20) default '地址不详'comment '地址',
primary key(id)
);

查询表

使用上面的例子

show tables;               #查询数据库所有的表
desc me;                   #查询表结构
show create table me\G     #查询表结构所使用的语法

修改表名

对例子的表名进行修改使用alter(修改)关键字
将me表名修改为message表名
修改表名的格式为alter table <旧表名> rename to <新表明>;

alter table me rename to message;

添加新列

如果我们要对上面的例子添加列,我们需要使用alter(修改)关键字,添加列的位置无非有两种首列(first)以及非首列(after)。

为整个表第一列之前添加列,使用first,我们来添加一个学号(number)的列
添加首列的格式为alter table <表名> add <新列名> <数据类型> <约束条件> <其他> first;
其中新列名后面的参数根据自己的需求选择加与不加

alter table message add numer int not null commment '学号' first;

为非首列添加列,使用after,此处我们给phone(手机号)列后面添加一个score(成绩)列
添加非首列格式为alter table <表名> add <新列名> <数据类型> <约束条件> <其他> after <需要在那个列后面添加列的列名>;
此处成绩我采用varchar是因为我使用的默认值为varchar型的’不及格’,只是为其演示

alter table message add score varchar(4) default '不及格' comment '成绩' after phone;

修改列名

此处我们将score(成绩)列名修改成java列名,并把数据类型修改成tinyint
修改列名格式为alter table <表名> change <旧列名> <新列名> <新数据类型>;
数据类型不可省略

alter table message change score java tinyint;

修改列的数据类型

我们将上面添加的学号列的数据类型修改成varchar类型
修改列的数据类型格式为alter table <表名> modify <列名> <数据类型>;

alter table message modify number varchar(20);

修改列的排序位置

将name(姓名)列排到首列
格式为alter table <表名> modify <列名> <数据类型> first;
此处的虽然是换行但数据类型不可省略

alter table message modify name varchar(20) first;

将name(姓名)列排在java列后面
格式为alter table <表名> modify <列名> <数据类型> after <需要排在那个列名后面>;
此处数据类型不可省略

alter table message modify name varchar(20) after java;

删除列

将number(学号)列删除
删除列的格式为alter table <表名> drop <需要删除的列名>;

alter table message drop number;

删除数据库表

此处我们需要用到drop(删除)关键字
我们将整个message表删除
删除表的格式为drop table <表名>;
下面删除语句中的if exists可有可无,这句是判断数据库中是否存在此表,有的话删除,没的话不报错

drop table if exists message;
发布了17 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43431735/article/details/104705315