#冲刺创作新星#《MySQL入门很轻松》第4章:数据表的创建修改删除 原创
@[toc]
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(
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));
查看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;