mysql管理主键的表_MYSQL-表的管理

本文详细介绍了如何在MySQL中查看、创建、修改和删除表,特别是关于主键的管理和表结构的操作,包括创建表时指定主键、联合主键、外键,以及通过查询数据创建新表等。
摘要由CSDN通过智能技术生成

查看

查看表

show tables;

a880523c90934985ff1979489e49cb1b.png

查看当前库中所有表的具体信息

show table status\G;

d2a2248ae705b5e0e7d9ffcc9ee791fc.png

查看当前库某张表的信息

show table status like 'table_name' \G;

6d92546b6be4b96925b525efbbc4c6d3.png

亦可以使用通配符

show table status where name like '_o_' \G;

96465e1121c93127bcfe8b89ea24b482.png

查看表的结构

desc Table_name;

显示hellodb数据库中的students表的结构

show students;

字段 类型 是否允许为空 主键 默认 特殊

3f5a7c5add7bb1dd6ce645677a5cc8c0.png

查看创建stutents表所使用的的sql语句

show create table students\G;

337a7b9f559f85e91eead7538527c8d1.png

创建

创建表有很多种情况,

直接创建一个新的空表,

将数据从数据库中查询出来并填充至新表

复制别的表结构从而创建一个新表

Syntax:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name

(create_definition,...)

字段定义,表级别约束定义,索引定义

[table_options]

[partition_options]

创建表

MariaDB [hyt]> create table db1 (

-> stuid smallint unsigned auto_increment primary key,

-> name char(10) not null,

-> gender enum('m','f') default 'm',

-> age tinyint unsigned,

-> mobile char(11));

1、第一字段stuid,定义了它存放数据的类型,自动增长,意思就是,就算不指定该字段,它也会自己递增,把它设置为主键

2、定义第二个字段,name 存放数据类型为字符串类型,而且字符串长度为10位,而且不能为空,进行约束

3、定义第三字段,性别,使用枚举,意思就是这个字段只能设定为f or m ,如果不指定默认为m

4、定义第四字段,年龄,指定存放数据类型

5、定义第五字段,联系方式,指定了存放数据的类型为字符串,

4f3d7ce7b33cd0cf2183b3ce63f39ee8.png

451d5648fbd1ad38b7360bcb22956dd0.png

创建表也可以定义联合主键

MariaDB [hyt]> create table db2

-> (

-> id int,

-> name char(10) not null,

-> primary key(id,name)

-> );

定义外键,例如db3表tid字段引用了db2表中的id为外键

MariaDB [hyt]> create table db3

-> (

-> id int primary key,

-> name char(10) not null,

-> tid int,

-> foreign key(tid) references db2(id)

-> );

通过查询出的数据创建一个新表,并且将查询的数据填充到创建的新表中

示例:

将hellodb库中的students表中stuid,name,age三个字段中的数据取出,

并填充到hyt数据库中创建的新表copy中。

注意:

通过这种方式将copy表创建完成后,只能将对应的数据填充过去,但是表的字段中的约束以及表的索引则无法复制过去,需要手动指明

这是hellodb库中students表的结构

1eb2925769521787b676d22e88139cd4.png

4e0502b5f71643b07b416a64cb83db63.png

将查询出来的内容复制到另一库中的copy表中

use hellodb;

create table hyt.copy select stuid,name,age from students;

use hyt;

select * copy;

f2a09cb9ce8a84de8688c86da9c3a8cd.png

也可以把students表中的数据全部查询出来,然后创建新表,将查询出来的数据全部存入新表中,等价于复制表,但是只是复制了students表的数据。

crtart table hyt.new_copy select * from students;

复制表结构

create table desc_dba like hellodb.students;

e965168e7c10cc364145fdf75273a500.png

完全复制表结构,包括其他的特殊约束和索引

0d1dff8904a93cc76a35d59d48ac6427.png

总结: 以上实现了创建表,复制表数据,复制表结构

在创建的表的时候,可以指定表选项,表选项是可以省略的,表选项可以由多个,表选项的位置在括号外面

通过help create table查看表选项的名字

8727e80619cb8240a875be11ff5bc3b2.png

删除表

注意:

**在linux中,凡是涉及删除,enter前三思,数据无价,**

Syntax:

DROP [TEMPORARY] TABLE [IF EXISTS]

tbl_name [, tbl_name] ...

[RESTRICT | CASCADE]

示例

删除单张表,也可以删除多张,中间使用逗号分隔。

drop table table_name;

f539151748505ab80cd53af58facdc25.png

3f35560309cfe03ff2fac0edd9f6d17e.png

修改表

如果表中没有任何数据,可以稍微轻松的修改表结构,

但是,表中存放很多数据,应该充分考虑修改表结构以后带来的影响

Syntax:

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name

[alter_specification [, alter_specification] ...]

[partition_options]

修改表名

将desc_dba修改为db1

alter table desc_dba reanme as db1

80d86e49570f80e1484a67422d25dc2a.png

添加字段

为表添加字段,只添加字段,不指定字段的其他属性,为db1添加class字段

修改字段可省了cllumn关键字,默认修改操作列

alter table db1 add column class int;

8c76b9930f8c1893b036f4a97e709ae3.png

添加字段同时指定约束

alter table db1 add linux int not null; 该字段不能为空

da7aad713bdcd314f67f2ca06287e816.png

添加字段,并指定字段在表中的位置,

添加字段,并指定字段在表中的位置,

alter table db1 add id int first; 指定为第一个字段

4bc296c04b6dfb83457be8f627aa85c3.png

指定某个字段之后

alter table db1 add python char after Name;

253df06642d6f285fb389f059930b1af.png

删除字段

请三思三思再三思。

alter table db1 drop hyt;

1d5d3ce0db906a150b577113d1b5eb11.png

修改字段

重命名字段。修改字段

修改linux字段

alter table db1 change linux Linux int;

3381d6e483fdb05cbfeaf6a7ef0df363.png

modify不能修改字段名称,只能修改字段类型

alter table db1 modify Linux char(10);

37470d8cc63a11d2ac43ac220d79db34.png

如有问题,请指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值