MySQL表结构的操作

发布于:2024-04-22 ⋅ 阅读:(156) ⋅ 点赞:(0)

1. 创建表

create table table_name (
	field1 datatype,
    field2 datatype,
    field3 datatype
)character set 字符集 collate 校验集 engine 存储引擎;
  • field:列名
  • datatype:列的类型
  • character set:字符集(没有指定以所在数据库字符集为准)
  • collate:校验规则(没有指定以所在数据库校验集为准)

示例(两种引擎存储):

mysql> create table if not exists user_1(
    -> id int,
    -> name varchar(20) comment '用户名',
    -> password char(32) comment '密码',
    -> birthday date comment '生日'
    -> )character set utf8 collate utf8_general_ci engine MyIsam;
Query OK, 0 rows affected (0.00 sec)

mysql> create table if not exists user_2(
    -> id int, 
    -> name varchar(20) comment '用户名',
    -> password char(32) comment '密码',
    -> birthday date comment '生日'
    -> )charset=utf8 collate=utf8_general_ci engine=InnoDB;
Query OK, 0 rows affected (0.02 sec)

不同引擎存储,创建的文件不一样:

image-20240415212046939

2. 查看表

确认当前所在数据库:

select database();

image-20240415212500990

查看表:

show tables;

image-20240415212848638

查看表的详细信息:

desc table_name;

image-20240415212946567

查看创建表的详细信息:

show create table table_name;

image-20240415213539129

\G以更易读的垂直格式显示,每行一个字段

mysql会记录用户的操作痕迹,所以我们可以查到我们当初建表的信息

当然,这里和我们当时的指令有一点出入,这是mysql会在内部做语法词法分析,更加标准化

3. 修改表

修改表名:

alter table user_1 rename to table_name;

to可省略

image-20240415214326663

也可以修改列名称:

alter table table_name change name new_name datatype; 

image-20240415224629133

插入数据:

insert into table_name values (xx, xxx);

image-20240415214746418

添加字段:

alter table user1 add gender varchar(2) comment '性别' after birthday;

after指定在哪个属性后面

image-20240415223054551

修改属性:

alter table user1 modify name varchar(60) comment '用户名2.0';

新的属性直接覆盖,要加上comment定义描述性注释

image-20240415223346773

删除列:

alter table user1 drop birthday;

该列数据会全部清楚

image-20240415223736134

4. 删除表

drop table table_name;

image-20240415224827380

不要轻易进行修改和删除操作!!!,这些在业务当中都是比较靠近底层的,这些表结构、表名等,就直接影响了上层。


网站公告

今日签到

点亮在社区的每一天
去签到