MySQL数据库 - 表基本操作

发布于:2024-04-01 ⋅ 阅读:(56) ⋅ 点赞:(0)

一、修改表名

本关任务:修改表名,并查询修改后表的结构。

查看所有表

show tables;

查看表基本结构

DESCRIBE 表名; 或 简写为 desc 表名;

查看创建表的语句

SHOW CREATE TABLE

使用 SHOW CREATE TABLE 语句,不仅仅可以返回给我们建表时所写的详细语句,而且还可以查看存储引擎和字符编码。 如果觉得返回的结果排版有点乱,加上\G后效果就会有所改善!

修改表名

ALTER TABLE。 语法规则为:ALTER TABLE 旧表名 RENAME 新表名;

编程要求

根据提示,在右侧编辑器补充代码:

  • 把数据表stu改名为student

  • 查看该数据库下数据表的列表;

  • 查看数据表student基本结构

答案

USE TestDb;

#请在此处添加实现代码
########## Begin ##########

########## modify the table name ##########
alter table stu rename student;


########## show tables in this database ##########
show tables;


########## describe the table ##########
describe student;


########## End ##########

二、修改表结构-1

任务描述

本关任务:修改表中的属性名,并修改属性的数据类型。

相关知识

为了完成本关任务,你需要掌握:1.如何修改属性名;2.如何修改属性的数据类型。

修改属性名

语法规则为: ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型 ;

小提示: 如果不需要修改属性的数据类型,可以把新字段的数据类型设置为和原来一样,但是!千万不要空着它!

修改属性数据类型

语法规则为: ALTER TABLE 表名 MODIFY 字段名 数据类型;

编程要求

根据提示,在右侧编辑器补充代码:

  • 把数据表student的属性Id改名为stuid,数据类型不变;

  • 把数据表student字段Name的数据类型改为varchar(30)

答案

USE TestDb;

#请在此处添加实现代码
########## Begin ##########

########## change the column name ##########
alter table student change id stuid int;


########## change the data type of column ##########
alter table student modify Name varchar(30);


########## End ##########

DESCRIBE student;

三、修改表结构-2

本关任务:分别在表的最后一列第一列指定列后添加新的属性,并删除表中的指定属性。

添加属性

语法规则: ALTER TABLE 表名 ADD 新属性名 数据类型 [约束条件] [FIRST|AFTER] 已存在属性名; MySQL 中常用的约束: NOT NULL 约束:确保某列不能有 NULL 值。 DEFAULT 约束:当某列没有指定值时,为该列提供默认值。 UNIQUE 约束:确保某列中的所有值是不同的。 PRIMARY Key 约束:唯一标识数据库表中的各行/记录。 CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。

不做[FIRST|AFTER]的位置说明,在添加属性时MySQL会默认把新属性加入到表的最后一列。

如果我们想在第一列添加新的属性,只需做FIRST的位置说明。 如果我们想在某一列后面添加新的属性,只需做AFTER的位置说明,然后注明你想让它添加在哪个属性的后面即可。

删除字段

语法规则为: ALTER TABLE 表名 DROP 字段名;

编程要求

根据提示,在右侧编辑器补充代码:

  • 在数据表studentName属性后添加属性sex,数据类型为varchar(2),默认值

  • 删除数据表student中的属性Salary

答案

USE TestDb;

#请在此处添加实现代码
########## Begin ##########

########## add the column ##########
alter table student add sex varchar(2) default '男' after Name;

 
########## delete the column ##########
alter table student drop Salary;


########## End ##########

DESCRIBE student;

四、修改表结构-3

任务描述

本关任务:修改表中某属性的顺序,分别将其排至表中的第一列或指定列之后。

修改属性的排列位置

在一个数据表被创建的时候,其属性的排列顺序就被确定了,之后可以通过ALTER TABLE来改变表中属性的相对位置。

语法规则为: ALTER TABLE 表名 MODIFY 属性1 数据类型 FIRST|AFTER 属性2;

其中,属性1指要修改位置的字段,FIRSTAFTER 属性2为可选参数。 FIRST表示把属性的位置调整到第一列 用AFTER 属性 选项,可将想调整的属性放在除了第一列的任何位置。

编程要求

根据提示,在右侧编辑器补充代码:

  • 将数据表studentName字段移至第一列,数据格式不变;

  • DeptId字段移至Salary字段的后边,数据格式不变。

答案

USE TestDb;

#请在此处添加实现代码
########## Begin ##########

########## modify the column to top ##########
alter table student modify Name varchar(25) first;


########## modify the column to the rear of another column ##########
alter table student modify DeptId int(11) after Salary;


########## End ##########

DESCRIBE student;

五、数据添加

插入数据

向表中插入数据最简单的方法就是使用INSERT语句。 语法规则为: INSERT INTO 表名 (属性名) VALUES (内容);

在插入数据时指定属性名好处是:即使我们打乱了原本属性的排列顺序,只要插入的数据与之匹配,插入都不会出错。若不填属性名,就必须按属性顺序(且必须是所有属性按顺序)来填入相应的数据。

为表同时插入多条记录

语法规则为: INSERT INTO 表名 (属性名) VALUES (内容1), (内容2), (内容3);

从逗号分隔的文件中读取所有数据插入表

语法规则为: LOAD DATA LOCAL INFILE '文件名' INTO TABLE 表名 character set gbk fields terminated by ',' ;

编程要求

根据提示,在右侧编辑器Begin-End处补充代码:

  • 我们为你新建了一个空数据表product,请你为它同时添加3条数据内容; product(maker,model,type)属性均为字符型

添加的内容为: X 5001 pc X 6009 laptop Y 7809 printer

请从文件中将数据都读入到product表 文件名src1/step1/product.csv

答案

USE TestDb;

#请在此处添加实现代码
########## Begin ##########

########## bundle insert the value ##########
insert into product (maker,model,type) values('X',5001,'pc');
insert into product (maker,model,type) values('X',6009,'laptop');
insert into product (maker,model,type) values('Y',7809,'printer');

load data local infile 'src1/step1/product.csv' into table product character set gbk fields terminated by ',';
########## End ##########
SELECT * FROM product;

六、数据更新

本关任务:根据要求修改数据。

更新表中指定的内容

语法规则为: UPDATE 表名 SET 字段名1 = 内容1, 字段名2 = 内容2, 字段名3 = 内容3 WHERE 过滤条件;

编程要求

根据提示,在右侧编辑器Begin-End处补充代码:

  • 已创建建了一个数据表product,并添加了一些数据; product(maker,model,type)

使用select * from product;查看已有数据,并将第一行maker为中文的数据删除,并将maker(A)改名为 JD; 将type(pc) 改为 computer

答案

USE TestDb;

#请在此处添加实现代码
########## Begin ##########

########## update the value ##########
delete from product where model = '1001';
update product set maker = 'JD' where maker = 'A';
update product set type='computer' where type='pc';

########## End ##########

SELECT * FROM product;

七、数据删除

任务描述

本关任务:删除表中的指定元组。

语法规则为: DELETE FROM 表名 WHERE 条件语句;

删除表中的所有行

语法规则为: DELETE FROM 表名;
小提示: TRUNCATE TABLE 语句也可以用来删除表中的所有记录。但是与 DELETE 不同的是,TRUNCATE TABLE 语句直接删除的是表,而不是表中的内容,删除结束后还会重新创建一个表。所以它的执行速度会比 DELETE 语句快。 语法为:TRUNCATE TABLE 表名;

编程要求

根据提示,在右侧编辑器Begin-End处补充代码:

  • 已经创建了表productprinter并添加了数据内容; product(maker,model,type) 代表厂商,型号,类型:取值有pc,laptop,printer三种 printer(model,color,type,price) 代表型号,是否彩色,类型:取值:laser,ink-jet;单价

  • 请将单价大于800的printer删除

  • 请将型号不在printer中的型号对应的元组从product表删除。

答案

USE TestDb;

#请在此处添加实现代码
########## Begin ##########

########## delete the value ##########
delete from printer where price>800;

delete from product where model not in(select model from printer);


########## End ##########

SELECT * FROM product;
SELECT * FROM printer;


网站公告

今日签到

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