《MySQL入门很轻松》第4章:数据表的创建修改删除

举报
炒香菇的书呆子 发表于 2022/02/16 00:49:38 2022/02/16
【摘要】 数据实际存储在数据表中,可见在数据库中,数据表是粘据库中最重要、最基本的操作对象,是数据存储的基本单位。本章介绍数据表的创建与操作,包括创建数据表、修改数据表、查看数据表结构与删除数据表等。

@[toc]

1. 创建数据库

数据表属于数据库,在创建数据库之前,应该使用use <数据库名称>指定操作是在哪个数据库中进行。

1.1使用create语句创建数据表

举例如下

首先创建并选择数据库

create database company;
use company;
create table emp
(
id int,
name varchar(25),
sex tinyint,
salary float
);

image-20220214234934824

2. 查看数据表结构

2.1 查看表基本结构

使用describe/desc语句可以查看表字段信息。

举例说明

输入下列代码

desc company;

image-20220214235231217

2.2 查看表详细结构

show create table emp;

image-20220214235426721

3. 修改数据表

数据表创建完成后,还可以根据实际需要对数据表进行修改

3.1 修改数据表名称

表名在一个数据库中是唯一确定的,数据库系统通过表名来区分不同的表

数据表更新代码格式

alter table <旧表名> rename to <新表名>

例如

将company数据库中的emp表修改为emps

输入sql语句

show tables;
alter table emp rename to emps;
show tables;

image-20220215003043893

3.2 修改字段数据类型

修改字段的数据类型,就是把字段的数据类型转换成另一种数据类型。在 MySQL中修改字段数据类型的语法格式如下:

ALTER TABLE<表名>MODIFY<字段名><数据类型>;

主要参数介绍如下。
表名:指要修改数据类型的字段所在表的名称。

字段名:指需要修改的字段。

数据类型:指修改后字段的新数据类型。

举例

在操作之前查看数据表name类型

desc emps;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PYGyzSsb-1644943645344)(C:/Users/19867/AppData/Roaming/Typora/typora-user-images/image-20220215234709213.png)]

修改name

alter table emps modify name varchar(20);

image-20220215234830221

3.3 修改数据表的字段名

数据表中的字段名称定好之后,它不是一成不变的,可以根据需要对字段名称进行修改。MySQL中修改表字段名的语法格式如下:

ALTER TABLE<表名>CHANGE<旧字段名><新字段名><新数据类型>;

主要参数介绍如下。

表名:要修改的字段名所在的数据表。旧字段名:指修改前的字段名。
新字段名:指修改后的字段名。

新数据类型:指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样即可,但数据类型不能为空。

举例

将数据表emps中的name修改为newname

alter table emps change newname varchar(28);

image-20220215235905003

再次查看数据表

desc emps;

image-20220215235941631

3.4 在数据表中添加字段

数据表创建完成后,如果字段信息不能满足要求,可以根据需要在数据表中添加新的字段。格式如下:

ALTER TABLE<表名>ADD<新字段名><数据类型>[约束条件][FIRST /AFTER已经存在的字段名];

主要参数介绍如下:
表名:要添加新字段的数据表名称。

新字段名:需要添加的字段名称。

约束条件:设置新字段的完整约束条件。

FIRST:可选参数,其作用是将新添加的字段设置为表的第一个字段。

AFTER:可选参数,其作用是将新添加的字段添加到指定的“已存在字段名”的后面。

alter table emps add city varchar(20);

image-20220216002853857

alter table emps add age int after sex;

image-20220216003012979

3.5 修改字段的排序方式

对于已经创建好的数据表,用户可以根据实际需要,来修改字段的排列顺序"
在MySQL中,可以通过ALTER TABLE来改变表中字段的相对位置。语法格式如下:

ALTER TABLE<表名>MODIFY<字段1><数据类型>FIRST|AFTER<字段2>;

主要参数介绍如下:
字段1:指要修改位置的字段。

数据类型:指“字段1”的数据类型。

FIRST:为可选参数,指将“字段1”修改为表的第一个字段。

AFTER字段2:指将“字段1”插入到“字段2”后面。

举例说明

将数据表emps的sex字段修改为第一个字段

alter table emps modify sex int first;

image-20220216003426661

4. 删除数据表

4.1 删除没有被关联的表

在MySQL中,使用DROP TABLE可以一次删除一个或多个没有被其他表关联的数据表。语法格式如下:

DROP TABLE <数据表名称>;

举例说明

DROP TABLE emps;

image-20220216003811947

image-20220216003840949

4.2 删除被其他表关联的主表

在数据表之间存在外键关联的情况下,加果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。加果必须要删除,可以牛删除与它关联的子表,再删除父表,只是这样会同时删除两个表中的数据。加里相要单独删除父表,只需将关联的表的外键约束条件取消,然后再删除父表即可。

举例说明

在数据库中创建两个关联表

CREATE TABLE tb_1(
id
INT PRIMARY KEY,
name
VARCHAR (22)
);
CREATE TABLE tb_2(
id
INT
PRIMARY KEY,
name
VARCHAR(25),
age
INT,
CONSTRAINT fk tb dt FOREIGN KEY (id)REFERENCES tb_1(id));

image-20220216004231231

image-20220216004239623

查看tb_2的外键约束

show create table tb_2;

image-20220216004349543

执行结果如图示,从结果可以看到,在数据表tb_2上创建了一个名称为fk_tb_dt的外键约束。

下面直接删除父表tb_1,输入删除语句如下:

DROP TABLE tb_1;

image-20220216004508524

执行结果如图4-31所示,可以看到,如前面所述,在存在外键约束时,父表不能被直接删除。接下来,解除关联子表tb_2的外键约束,SQL语句如下:

ALTER TABLE tb 2 DROP FOREIGN KEY fk_tb_dt;

image-20220216004606563

再次删除tb_1

DROP TABLE tb_1;

image-20220216004632523

image-20220216004648156

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200