写点什么

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

作者:乌龟哥哥
  • 2022 年 7 月 09 日
  • 本文字数:1936 字

    阅读完需:约 6 分钟

1. 创建数据库

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

1.1 使用create语句创建数据表

举例如下


首先创建并选择数据库


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


2. 查看数据表结构

2.1 查看表基本结构

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


举例说明


输入下列代码


desc company;
复制代码


2.2 查看表详细结构

show create table emp;
复制代码


3. 修改数据表

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

3.1 修改数据表名称

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


数据表更新代码格式


alter table <旧表名> rename to <新表名>
复制代码


例如


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


输入 sql 语句


show tables;alter table emp rename to emps;show tables;
复制代码


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);
复制代码


3.3 修改数据表的字段名

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


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


主要参数介绍如下。


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


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


举例


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


alter table emps change newname varchar(28);
复制代码



再次查看数据表


desc emps;
复制代码


3.4 在数据表中添加字段

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


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


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


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


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


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


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


alter table emps add city varchar(20);
复制代码



alter table emps add age int after sex;
复制代码


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;
复制代码


4. 删除数据表

4.1 删除没有被关联的表

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


DROP TABLE <数据表名称>;
复制代码


举例说明


DROP TABLE emps;
复制代码



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

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


举例说明


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


CREATE TABLE tb_1(idINT PRIMARY KEY,nameVARCHAR (22));
复制代码


CREATE TABLE tb_2(idINTPRIMARY KEY,nameVARCHAR(25),ageINT,CONSTRAINT fk tb dt FOREIGN KEY (id)REFERENCES tb_1(id));
复制代码




查看 tb_2 的外键约束


show create table tb_2;
复制代码



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


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


DROP TABLE tb_1;
复制代码



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


ALTER TABLE tb 2 DROP FOREIGN KEY fk_tb_dt;
复制代码



再次删除 tb_1


DROP TABLE tb_1;
复制代码




发布于: 刚刚阅读数: 3
用户头像

乌龟哥哥

关注

正在努力寻找offer的大四小菜鸟 2021.03.16 加入

擅长 Hbuilder、VS Code、MyEclipse、AppServ、PS 等软件的安装与卸载 精通 Html、CSS、JavaScript、jQuery、Java 等单词的拼写 熟悉 Windows、Linux、 等系统的开关机 看–时间过得多快,不说了,去搬砖了

评论

发布
暂无评论
《MySQL入门很轻松》第4章:数据表的创建修改删除_7月月更_乌龟哥哥_InfoQ写作社区