打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
5-3-3


5.3.3 数据查询中的限制和规定

1.SELECT子句的规定
(1)SELECT子句的形式
  SELECT [ALL | DISTINCT] <列名或列表达式序列> | *
(2)具体规定
  
DISTINCT选项保证重复的行将从结果中去除;而ALL选项是默认的,将保证重复的行留在结果中,一般就不必写出
  
星号(*)是对于在FROM子句中命名表的所有列的简写
  
列表达式是对于一个单列求聚合值的表达式
  
允许表达式中出现包含+、-、*和/以及列名、常数的算术表达式
(3)查询选修了课程C1或C2的学号
  SELECT Sno FROM Sc WHERE Cno='C1' OR Cno='C2'
  SELECT DISTINCT Sno FROM Sc WHERE Cno='C1' OR Cno='C2'
  DISTINCT与ALL(默认)对应
(4)查询全体学生的出生年份
  SELECT Sname, 2007-Age FROM Student
(5)以小写字母显示系名
  SELECT Sn,LOWER(Dept) FROM Student

2.列和基本表的改名操作
(1)说明
  
也可以要求输出的列名与基本表中列名不一致,可在SELECT子句用“旧名 AS 新名” 形式改名
  
区分多次调用的基本表,标上不同的名字
(2)查询全体学生的出生年份,并使用别名
  SELECT Sname as Name, 2007-Age Birthday FROM Student
(3)查询所有与“吴二”同龄的姓名
  SELECT X.Sname,X.Age
  FROM Student X, Student Y
  WHERE X.Age=Y.Age AND Y.Sname='吴二'

3.集合的并、交、差操作
(1)概述
  
标准SQL中有集合并(UNION)的操作
  
但没有直接提供集合的差(MINUS或EXCEPT)和交(INTERSECT)操作
  
差和交可以用其他方法实现
(2)查询选修了C2或C3课程的学生(并)
  
SELECT Sno,Cno FROM Sc WHERE Cno='C2'
  
SELECT Sno,Cno FROM Sc WHERE Cno='C3'
  
SELECT Sno,Cno FROM Sc WHERE Cno='C2' UNION SELECT Sno,Cno FROM Sc WHERE Cno='C3'
  
SELECT Sno FROM Sc WHERE Cno='C2' UNION SELECT Sno FROM Sc WHERE Cno='C3'
  
SELECT Sno,Cno FROM Sc WHERE Cno='C2' OR Cno='C3'
(3)将Student和Student1两表合并
  SELECT Sno,Sn,Sex FROM Student UNION SELECT Sno,Sn,Sex FROM Student1
(4)查询至少选修了C2和C3的学生(交)
  SELECT Sno
  FROM Sc
  WHERE Cno='C2' AND Sno IN
   (SELECT Sno
   FROM Sc
   WHERE Cno='C3')
(5)查询选修了C2但没有选修C3的学生(差)
  SELECT Sno
  FROM Sc
  WHERE Cno='C2' AND Sno NOT IN
   (SELECT Sno
   FROM Sc
   WHERE Cno='C3')
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SQL的简单查询
SQL Server——T-SQL基础技术
第四章、SQL Server数据库查询大全(单表查询、多表连接查询、嵌套查询、关联子查询、拼sql字符串的查询、交叉查询)
数据库的简单查询和链接查询
一套Oracle SQL练习题及答案
数据库笔试题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服