dcsxlh

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

表结构:

Student学生表(学号、姓名、性别、年龄、编辑)

Course课程表(编号、课程名称)

sc选课表(选课编号、学号、课程编号、成绩)

 

复制代码
 create table student(

stu_no int,

stu_name varchar(10),

sex char(1),

age int(3),

edit varchar(20) )
DEFAULT  charset=utf8;
insert into student values

(1,'wang','',21,'hello'),

(2,'小明','',22,'haha2'),

(3,'hu','',23,'haha3'),

(4,'li','',25,'haha4');

create table course(

c_no int,

c_name varchar(10)

 )

DEFAULT  charset=utf8;

insert into course values

(1,'计算机原理'),

(2,'java'),

(3,'c'),

(4,'php'),

(5,'py'); 

#rop  table   sc;

create table sc(

sc_no int,

stu_no int,

c_no int,

score int(3))

DEFAULT  charset=utf8;

insert into sc values

(1,1,1,80),

(2,2,2,90),

(3,2,1,85),

(4,2,3,70),

(5,2,4,95),

(6,2,5,89);



select * from student ;
select * from sc ;
select * from course ;

复制代码

 

 ======================================

student

 

 sc

 course

 

 

  ======================================

 1、三表隐藏内连接

格式:

select * FROM 表1   ,表2,表3  where 表1.关联字段=表2.关联字段    and  表2.关联字段=表3.关联字段 ;

 

 

案例:select * FROM student a,sc b,course c where a.stu_no=b.stu_no and b.c_no=c.c_no ;

 

 

 

 

 2、三表普通内连接

 格式:select * FROM 表1   inner  join   表2 on  表1.关联字段=表2.关联字段   inner  join   表3   on   表2.关联字段=表3.关联字段 ;

案例:select * FROM student a INNER JOIN sc b on a.stu_no=b.stu_no INNER JOIN course c on b.c_no=c.c_no ;

 

 3、三表左连接

 格式:select * FROM 表1   left  join   表2 on  表1.关联字段=表2.关联字段   left  join   表3   on   表2.关联字段=表3.关联字段 ;

案例:select  *   FROM   student a  left JOIN sc b   on    a.stu_no=b.stu_no  left JOIN course c on  b.c_no=c.c_no ;

4、三表右连接

 格式:select * FROM 表1   right join   表2 on  表1.关联字段=表2.关联字段   right  join   表3   on   表2.关联字段=表3.关联字段 ;

案例:select  *   FROM   student a  right JOIN sc b   on    a.stu_no=b.stu_no  right JOIN course c on  b.c_no=c.c_no ;

5、先合两个表,在合另一张表

格式:select   *  from (select    字段名   FROM 表1   right join   表2 on  表1.关联字段=表2.关联字段 )别名,表3 where 

合表.关联字段=表3.关联字段

select  *  from  (select  a.stu_no,stu_name,sex ,age ,edit ,sc_no ,c_no ,score FROM   student a  right JOIN sc b   on    a.stu_no=b.stu_no)s ,course c  where s.c_no=c.c_no  ;

 6、把三表单成单表理解

 (SELECT b.*,c.* FROM sc a,student b,course c WHERE a.stu_no=b.stu_no AND a.c_no=c.c_no)s 当成单表
select * from (SELECT b.*,c.* FROM sc a,student b,course c WHERE a.stu_no=b.stu_no AND a.c_no=c.c_no)s

=============================================

(1)写一个SQL语句,查询选修了“计算机原理”的学生学号和姓名

条件: c_name=“计算机原理”

结果:stu_no     stu_name

方法一:

SELECT stu_name,stu_no from student where stu_no in(SELECT stu_no from sc where c_no =(SELECT c_no from course where c_name='计算机原理') )

方法二:

select student.stu_no,stu_name from student left JOIN sc on student.stu_no=sc.stu_no left join course on course.c_no=sc.c_no where c_name='计算机原理';

方法三:

SELECT stu_name FROM sc a,student b,course c WHERE a.stu_no=b.stu_no AND a.c_no=c.c_no and c_name='计算机原理';

方法四:

select a.stu_no,stu_name from  student a INNER JOIN sc  b on  a.stu_no=b.stu_no INNER JOIN course c on b.c_no=c.c_no  where c_name='计算机原理'

 

 

(2)写一个SQL语句,查询“小明”同学选修的课程名称

条件: stu_name='小明'

结果:c_name

方法一:

SELECT c_name FROM sc a,student b,course c WHERE a.stu_no=b.stu_no AND a.c_no=c.c_no and stu_name='小明';

 

 

(3)写一个SQL语句,查询选修了5门课程的学生学号和姓名

SELECT a.stu_no,stu_name FROM sc a,student b,course c WHERE a.stu_no=b.stu_no AND a.c_no=c.c_no group by stu_name HAVING COUNT(stu_name)=5

 

 

 

=============================================

(1)备份表结构:


create table sc1 like sc ;

(2)备份数据

a、插入全部数据

案例1:INSERT into  sc1  select  *  from  sc ;

b、插入部分数据

案例2:INSERT into sc2(sc_no,c_no)  select  sc_no,c_no from  sc ;

(3)备份表和数据

create table sc3 as(select * from sc)

=============================================

linux中备份

1、备份  

格式:mysqldump -u root -p  原库>新的脚本名.sql

案例:mysqldump -u root -p dcs>ss.sql

2、还原:

格式:mysql -u root -p 新库<备份好的数据脚本.sql文件

mysql -u root -p dcs<ss.sql

posted on   多测师_肖sir  阅读(122)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2020-12-20 肖sir_高级讲师_po教学图例
2020-12-20 肖sir_高级讲师_多测师讲解po(版本1)
2020-12-20 多测师讲解po高级讲师肖sir(版本2)
2020-12-20 po分层笔记
 
点击右上角即可分享
微信分享提示