把整个Mysql拆分成21天,轻松掌握,搞定(下)

把整个Mysql拆分成21天,轻松掌握,搞定(下)

第17天作业 ,





-- 1)修改表idoxu,把字段istester ,改为istester6(字符类型varchar,长度160 )


-- 2)检查是否修改成功


-- 3)把idoxu表,改名为 idoxu6


-- 4)检查是否修改成功




前***作业答案参考 ,


造数据 ,把istester表的所有数据,插入到 idoxu表

字段关系

id 取id

stu_id 取id

c_name 取 uname

istester 和 grade字段,给默认值 60


insert into idoxu(id,stu_id,c_name,istester,grade) select id,id,uname,60,60 from istester ;





/


第18天作业 ,



1)创建数据库 istesterdb6


2)检查数据库是否创建成功 ;


3)进入istesterdb6 库


4)在数据库 istesterdb6 ,创建idoxu表,直接拷贝 istester库idoxu6表的数据和结构 ;


5)检查表是否创建成功 ;




前***作业答案参考 ,



-- 1)修改表idoxu,把字段istester ,改为istester6(字符类型varchar,长度160 )

alter table idoxu CHANGE istester istester6 varchar(160);


-- 2)检查是否修改成功

desc idoxu;


-- 3)把idoxu表,改名为 idoxu6

-- ALTER TABLE 旧表名 RENAME TO 新表名 ;

ALTER TABLE idoxu RENAME TO idoxu681 ;


-- 4)检查是否修改成功

show tables;





/


第19天作业 ,


idoxu表,分数grade

1)排名前三的学生 和分数 ;

2)排名3 - 6名的学生 和分数 ;

3)排名6名以后的所有学生  和分数 ;



前***作业答案参考 ,


1)创建数据库 istesterdb6

create database istesterdb6 ;


2)检查数据库是否创建成功 ;

show databases ;


3)进入istesterdb6 库

use istesterdb6 ;


4)在数据库 istesterdb6 ,创建idoxu表,直接拷贝 istester库idoxu6表的数据和结构 ;

create table istesterdb6.idoxu as SELECT * from istester.idoxu6;

或

create table idoxu as SELECT * from istester.idoxu6;


5)检查表是否创建成功 ;

show tables;




/


第20天作业 ,


多表(左链接、右链接、内链接)


表 idoxu6 和 表istester




前***作业答案参考 ,


-- 1)排名前三的学生 和分数 ; 

SELECT c_name,grade FROM idoxu ORDER BY grade DESC LIMIT 3; 


-- 2)排名3 - 6名的学生 和分数 ; 

SELECT c_name,grade FROM idoxu ORDER BY grade DESC LIMIT 2,4; 


-- 3)排名6名以后的所有学生 和分数 ; 

SELECT c_name,grade FROM idoxu ORDER BY grade DESC LIMIT 5,666;


注:这题目的是limit的用法,很多同学写的太复杂 ;


limit是mysql的语法

select * from table limit m,n

其中m是指记录开始的index,从0开始,表示***条记录

n是指从第m+1条开始,取n条。

select * from tablename limit 2,4

即取出第3条至第6条,4条记录





/


第21天作业(最后1天,结业) ,


1)把表idoxu6,改完idoxu

2)删除库 istesterdb6

3)删除istester表

4)清空idoxu表的数据



End ,一切恢复如初,坐等SQL第2期 ;



前***作业答案参考 ,


注:主要目的是熟悉这三种玩法,以及观察结果差异 ;


#左连接 

SELECT * from idoxu6 a LEFT JOIN istester b on a.stu_id=b.id; 


#内连接 

SELECT * from idoxu6 a INNER JOIN istester b on a.stu_id=b.id; 


#右连接 

SELECT * from idoxu6 a RIGHT JOIN istester b on a.stu_id=b.id;




/


结业,最后***作业答案参考



1)把表idoxu6,改名为idoxu 

rename table idoxu6 to idoxu; 

或

alter table idoxu6 rename idoxu; 


2)删除库 istesterdb6 

drop database istesterdb6; 


3)删除istester表 

drop table istester; 


4)清空idoxu表的数据 

truncate table idoxu; 

或

delete from idoxu;



End ,恭喜结业 ;

循环3次21天打卡,总共63天(两个月掌握软测必备的SQL日常使用)

标签:

把整个Mysql拆分成21天,轻松掌握,搞定(中)
把整个Mysql拆分成21天,轻松掌握,搞定(上)