1、关于SQL语句中exists与not exists的问题
course表如下:课程代号 课程名称 K01 奥运会主题曲 K02 喜爱的专辑 K03 VB技术大全 K04 经典歌曲 K05 个人单曲 K06 数据结构 K07 最受欢迎的歌曲grade表如下:学号 课程代号B003 k03 B005 K02 B003 K05 B004 K04 B002 K02 B001 K01 B001 K06现用SQL语句(1)查询:select * from course where not exists(select * from grade where grade.课程代号=course.课程代号) 得到结果为:K07 最受欢迎的歌曲
EXISTS或者NOT EXISTS是把主查询的字段传到后边的查询中作为条件,返回值是TRUE或者FALSE。EXISTS TRUE,那么就是查询条件成立,结果会显示出来。NOT EXISTS TRUE,则为FALSE,查询连接条件不成立。select * from course where not exists(select * from grade where grade.课程代号=course.课程代号) 这个语句,是查询course表中课程代号在grade中没有出现的数据。看看grade表,课程编号有K01到K06,而COURSE表,有K01到K07,那么K07在GRADE表是不存在的,那么,是符合条件的。同样select * from course where exists(select * from grade where grade.课程代号=course.课程代号) 则是查询COURSE的记录条件为编号在GRADE中存在。那么很明显,结果是K01到K06的数据。另外,EXISTS和NOT EXISTS的作用可以用IN或NOT IN实现,但是,效率要高。
2、关于SQL语句中select 1 from table
select 1 from 中的1是一常量(可以为任意数值),查到的所有行的值都是它,每行的列值是写在select后的数,这条sql语句中是1
3、关于SQL语句中as的作用
as的作用是取别名,如: SELECT * FROM Employee AS emp 这句意思是查找所有Employee 表里面的数据,并把Employee表格命名为 emp。 当你命名一个表之后,你可以在下面用 emp 代替 Employee.
时间: 2024-10-17 19:41:00