banbanbai 发表于 2018-10-21 12:07:47

SQL的简单查询实例教程

  简单查询
  1. 选择表中的若干列
  (1)查询指定列
  例5 查询全体学生的学号与姓名
  SELECT Sno,Sname FROM Student;
   中各个列的先后顺序可以与表中的顺序不一致。也就是说,用户在查询时可以根据应用的需要改变列的显示顺序。
  例6 查询全体学生的姓名、学号、所在系
  SELECT Sname, Sno, Sdept FROM Student;
  结果表中的列的顺序与基表中不同,是按查询要求,先列出姓名属性,然后再列学号属性和所在系属性。
  (2)查询全部列
  例7 查询全体学生的详细记录
  SELECT *FROM Student;
  该SELECT语句实际上是无条件地把Student表的全部信息都查询出来,所以也称为全表查询,这是最简单的一种查询。
  (3)查询经过计算的值
  SELECT子句的不仅可以是表中的属性列,也可以是有关表达式,即可以将查询出来的属性列经过一定的计算后列出结果。
  例8 查询全体学生的姓名及其出生年份
  SELECT Sname, 2004-Sage FROM Student;
  本例中,中第二项不是通常的列名,而是一个计算表达式,是用当前的年份(假设为2004年)减去学生的年龄,这样,所得的即是学生的出身年份。输出的结果为:
  Sname
  ----------------
  李勇    1976
  刘晨    1977
  王名    1978
  张立    1978
  不仅可以是算术表达式,还可以是字符串常量、函数等。
  例9 查询全体学生的姓名、出生年份和所有系
  SELECT Sname, 'Year of Birth:', 2004-Sage出生年份   FROMStudent;
  结果为:
  Sname                     出生年份
  ------ -------------------------
  李勇Year of Birth:    1976
  刘晨Year of Birth:    1977
  王名Year of Birth:    1978
  张立Year of Birth:    1978
  用户可以通过指定别名来改变查询结果的列标题,这对于含算术表达式、常量、函数名的目标列表达式尤为有用。
  2.选择表中的若干元组
  (1)消除取值重复的行
  例10 查询所有选修过课的学生的学号
  SELECT Sno FROM SC;
  假设SC表中有下列数据
  Sno      Cno    Grade
  ------- ------- -------
  95001      1       92
  95001      2       85
  95001      3       88
  95002      2       90
  95002      3       80   
  执行上面的SELECT语句后,结果为:
  Sno
  -------
  95001
  95001
  95001
  95002
  95002
  该查询结果里包含了许多重复的行。如果想去掉结果表中的重复行,必须指定DISTINCT短语:
  SELECT DISTINCT Sno FROM SC;  
  执行结果为:
  Sno
  -------
  95001
  95002
  (2)查询满足条件的元组
  查询满足指定条件的元组可以通过WHERE子句实现。WHERE子句常用的查询条件如表3-3所示。
  常用的查询条件
  查询条件                      谓 词
  ───────   ───────────────
  比较(比较运算符)    = 、>、>=、
页: [1]
查看完整版本: SQL的简单查询实例教程