MySQL学习笔记

本文详细介绍了SQL中的查询语句,包括如何查询选修课、自然连接的使用,以及利用子查询查询未选修课的学生信息。此外,还探讨了视图的概念,强调视图作为虚拟表的特点,以及视图在数据查询和安全性方面的作用。同时,展示了创建视图的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 查询哪些课是选修课?

select Course_name from course where Course_no in (select distinct Cpno from course where cpno!='null');

8、自然连接:

select * from course as ca join course as cb on ca.cpno=cb.Course_no;

9、查询没有选修课课程的学生的学号和姓名(相关子查询,外层查询给内层查询提供数据,如果根据外层查询提供的数据能够查到结果,则内层查询返回真,否则返回假。外层查询的值根据内层查询结果为真或者假来决定留下哪些记录

SELECT Stu_no,Stu_name from student where not EXISTS (SELECT * from score where student.Stu_no=score.Stu_no);

  • 视图

1、基础知识:

1)定义:视图是通过定义查询语句select建立的虚拟表,在视图中查询的表成为基表

2)但是在数据库中不会为视图存储数据;

3)视图是个虚拟表,并不表示任何物理数据,只是用来查看数据的窗口;

4)当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变;

5)定义视图的筛选可以来自数据库的一个或多个,或者其他视图。分布式查询也可用于定义使用多个异类源数据的视图

6)在授权许可的情况下,通过视图来插入、更改和删除数据【一般不用,因为视图是用来查看的,而非用来更改数据】。即:可以通过视图对原表数据进行增、改、删操作,但是有一定的限制

7)可以从基表和其他视图中查看视图;可以再列表里看见视图的名字;

2、创建视图;

create view view_score as select student.Stu_no,Stu_name,course.Course_no,Course_name,score from student join score on student.Stu_no=score.Stu_no join course on course.Course_no=score.Course_no;

select * from view_score

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值