留言与评论(共有 0 条评论) |
发布时间:2020-04-15 16:56:48
SELECT语句的基本形式为
SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>···]
FROM <表名或视图名>[,<表名或视图名>···]
[WHERE <条件表达式>]
语句的功能是根据WHERE子句中的条件表达式,从基本表(或视图)中找出满足条件的元组,按SELECT子句中的目标列,选出元组中的目标列形成结果表。
SQL语句对数据库的操作十分灵活方便,原因在于SELECT语句中的成分丰富多样,有许多可选形式,尤其是目标列和目标表达式,下面用例子来详细说明,例子涉及的是"学生-课程"数据库,其关系模式集如下:
学生信息表Student(SNO,SNAME,SSEX,SBIRTHDAY CLASS)
教师信息表Teacher(TNO,TNAME,TSEX,TBIRTHDAY,DEPART)
课程信息表Course(CNO,CNAME,TNO)
成绩表Grade(SNO,CNO,DEGREE)
例题:查询Student表所有学生信息。
SELECT * FROM Student;/*选择操作*/
例题:查询Student表中所有学生的学号和姓名。
SELECT SNO,SNAME FROM Student;/*投影操作*/
例题:查询Grade表中成绩在60到80之间的所有记录。
SELECT * FROM Grade WHERE degree BETWEEN 60 AND 80;/*选择操作*/
例题:查询Grade表中成绩为85、86、88的记录。
SELECT * FROM Grade WHERE degree IN(85,86,88);/*选择操作*/
例题:查询所有学生的SNAME,CNAME和DEGREE。
SELECT Student.SNAME,Course.CNAME,Grade.DEGREE
FROM Student,Course,Grade
WHERE Student.SNO = Grade.SNO,Grade.CNO = Course.CNO;/*连接操作*/
例题:查询"张旭"教师任课的学生成绩。
SELECT CNO,SNO,DEGREE FROM Grade
WHERE CNO=(SELECT Course.CNO FROM Course,Teacher
WHERE Course.TNO=Teacher.TNO and Teacher.TNAME="张旭")
此查询操作为嵌套查询。子查询在上一级查询处理之前求解,即嵌套查询是从里向外处理的,这样,外层查询可以利用内层查询的结果,在此例中首先执行子查询:
SELECT Course.CNO FROM Course,Teacher
WHERE Course.TNO=Teacher.TNO and Teacher.TNAME="张旭"
获得张旭老师讲授课程的课程号(801003),然后执行外查询:
SELECT CNO,SNO,DEGREE FROM Grade
WHERE CNO="801003"
获得"张旭"教师任课的学生成绩。
可以不加查询条件。我在c#中使用的语句如下
留言与评论(共有 0 条评论) |
全站搜索