0
点赞
收藏
分享

微信扫一扫

MySQL数据库 - 表基本操作

乱世小白 2022-03-24 阅读 96
dba

第一关任务描述

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

查看所有表

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.如何修改属性名;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(11);

########## change the data type of column ##########

alter table student modify Name varchar(30);

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

DESCRIBE student;

第三关

任务描述

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

添加属性

语法规则:
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;

第四关

任务描述

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

修改属性的排列位置

在一个数据表被创建的时候,其属性的排列顺序就被确定了,之后可以通过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 (model,maker,type)
VALUES (5001,'X','pc');
insert into product (model,maker,type)
VALUES (6009,'X','laptop');
insert into product (model,maker,type)
VALUES (7809,'Y','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';


########## 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 product from product left join printer on product.model = printer.model where printer.model is null;
########## End ##########

SELECT * FROM product;
SELECT * FROM printer;

祝你学习快乐!

举报

相关推荐

0 条评论