查询只选修了‘信息系统’和‘数学’这两门课程的学生的基本信息
select student.*
from student
where sno in(
select sno
from sc
where cno=(
select cno
from course
where cname='信息系统'))
intersect
select student.*
from student
where sno in(
select sno
from sc
where cno=(
select cno
from course
where cname='数学') )
except
select student.*
from student
where sno in(
select sno
from sc
where cno in(
select cno
from course
where cname<>'信息系统' and cname<>'数学') );
查询只选修了‘3’号课程但没有选修‘1’号课程的学生
select student.*
from student
where sno in(
select sno
from sc
where cno='3')
except
select student.*
from student
where sno in(
select sno
from sc
where cno='1');
x86架构
对于一个计算机来讲,最核心的就是 CPU(Central Processing Unit,中央处理器)。这是这台计算机的大脑,所有的设备都围绕它展开。
CPU 和其他设备连接,要靠一种叫作总线(Bus)的东西,其实就是主板上密密麻麻的集成电路,这些东西组成了 CPU 和其他设备的高速通道。
在这些设备中,最重要的是内存(Memory)。因为单靠 CPU 是没办法完成计算任务的,很多复杂的计算任务都需要将中间结果保存下来,然后基于中间结果进行进一步的计算。CPU 本身没办法保存这么多中间结果,这就要依赖内存了。
CPU 和内存是完成计算任务的核心组件。
CPU 其实也不是单纯的一块,它包括三个部分,运算单元、数据单元和控制单元。
运算单元只管算,例如做加法、做位移等等。但是,它不知道应该算哪些数据,运算结果应该放在哪里。
运算单元计算的数据如果每次都要经过总线,到内存里面现拿,这样就太慢了,所以就有了数据单元。数据单元包括 CPU 内部的缓存和寄存器组,空间很小,但是速度飞快,可以暂时存放数据和运算结果。
有了放数据的地方,也有了算的地方,还需要有个指挥到底做什么运算的地方,这就是控制单元。控制单元是一个统一的指挥中心,它可以获得下一条指令,然后执行这条指令。这个指令会指导运算单元取出数据单元中的某几个数据,计算出个结果,然后放在数据单元的某个地方。