select-sql 查询语句

24
SELECT-SQL 查查查查 SQL(Structure Query Language 查查查查查查 查 ) 查查查查查查查查查 ANSI 查查查查查查查查查查查查查 查查查查 查查查查查查查查查查查查查 查查查 查查查查查查 、、。 SQL 查查查 查查查查 查查查查查查 查查查查查查查查查查查查查查查查查查查查查查查查 查查查 ,, 查查查 查查查查查查查查查查查查查 / 查查查查查查查查查查查查查

Upload: petra-frost

Post on 31-Dec-2015

94 views

Category:

Documents


0 download

DESCRIPTION

SELECT-SQL 查询语句. SQL(Structure Query Language ,结构化查询语句 ) 是美国国家标准局按 ANSI 确认的关系数据库语言的标准,用于对关系型数据库中的数据进行存储、查询、更新等操作。 SQL 语言是一种交互式的计算机语言,它不仅能在单机环境下提供对数据库的各种访问操作,而且还可作为一种分布式数据库语言用于客户 / 服务器模式数据库应用的开发。. SQL 命令动词. 查询功能. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SELECT-SQL 查询语句

SELECT-SQL 查询语句 SQL(Structure Query Language ,结构化查询语

句 ) 是美国国家标准局按 ANSI 确认的关系数据库语言的标准,用于对关系型数据库中的数据进行存储、查询、更新等操作。 SQL 语言是一种交互式的计算机语言,它不仅能在单机环境下提供对数据库的各种访问操作,而且还可作为一种分布式数据库语言用于客户 / 服务器模式数据库应用的开发。

Page 2: SELECT-SQL 查询语句

SQL 命令动词

SQL 功能 命令动词数据查询 SELECT

数据定义 CREATE 、 DROP 、 ALTER

数据操纵 INSERT 、 UPDATE 、 DELE

TE

数据控制 * GRANT 、 REVOKE

Page 3: SELECT-SQL 查询语句

查询功能

SQL 查询语句的格式主要有 SELECT

子句、 FROM 子句、 INTO 子句、 T

O 子句、 WHERE 子句、 GROUP BY

子句和 ORDER BY 子句,

Page 4: SELECT-SQL 查询语句

SELECT 主要短语的含义:

SELECT 说明要查询的数据 FROM 说明要查询的数据来自那个或

那些表; WHERE 说明查询条件;

Page 5: SELECT-SQL 查询语句

GROUP BY 短语用于对查询结果进行分组,可以利用它进行分组汇总; HAVING 短语必须跟随 GROUP BY 使用,

它用来限定分组必须满足的条件; OREDR BY 短语用来对查询的结果进

行排序,默认为升序。 ASC 升序 (asc

ent) , DESC 降序 (descent)

Page 6: SELECT-SQL 查询语句

简单查询

SELECT 、 FROM 、 WHERE 三个子句构成最常用的、最基本的 SQL 查询语句。

Page 7: SELECT-SQL 查询语句

SELECT-SQL 应用举例

查询 STUDENT.DBF 表中的全部信息。 SELECT * FROM STUDENT

查询 STUDENT.DBF 表中所有同学的姓名,院系 SELECT 姓名 , 院系 FROM STUDENT

Page 8: SELECT-SQL 查询语句

查询 STUDENT.DBF 表中女生的全部信息 SELECT * FROM STUDENT WHERE

性别 =“ 女”

Page 9: SELECT-SQL 查询语句

SELECT 姓名 , 出生日期 as 出生日 FROM STUDENT

查询结果的字段名列表可以使用别名

Page 10: SELECT-SQL 查询语句

查询 STUDENT.DBF 表中所有同学的学号、姓名和年龄。 SELECT 学号 , 姓名 ,YEAR(DATE())-;

YEAR( 出生年月 ) AS 年龄 FROM STUDENT

查询 STUDENT.DBF 表中所有“公共卫生 " 专业或 " 临床医学 " 专业同学的学号 , 姓名 , 专业信息。 SELECT 学号 , 姓名 , 专业 FROM STUDENT

WHERE 专业 =“ 公共卫生 " OR 专业 =" 临床医学 "

Page 11: SELECT-SQL 查询语句

查询 SCORE.DBF 表中所有同学的学号、计算机成绩 ( 降序 ) 。 SELECT 学号 , 成绩 FROM SCORE O

RDER BY 成绩 DESCENT

查询计算机成绩前三名学生 SELECT * TOP 3 FROM SCORE ORD

ER BY 成绩 DESC

Page 12: SELECT-SQL 查询语句

查询 STUDENT 表中学号以 98 开头的男同学的所有信息 SELECT * FROM STUDENT WHERE

学号 LIKE "98*" and 性别 =" 男 "

Page 13: SELECT-SQL 查询语句

简单的联接查询 找出“数据挖掘原理”成绩大于等于 80 分以上的学生学

号姓名和专业 SELECT student. 学号 , 姓名 , 院系 as 专业 FROM student,score,course WHERE 成绩 >=80 AND course. 课程名 =" 数据挖掘原

理 " and student. 学号 =score. 学号 AND score. 课程号=course. 课程号 ;

SELECT student. 学号 , student. 姓名 , student. 院系 FROM student INNER JOIN (course INNER JOIN score

ON course. 课程号 = score. 课程号 ) ON student. 学号 = score. 学号

WHERE score. 成绩 >=80 AND course. 课程名 =" 数据挖掘原理 ";

Page 14: SELECT-SQL 查询语句

找出“数据挖掘原理”成绩大于等于 80 分以上的学生学号姓名和专业还可一这样写 SELECT student. 学号 , student. 姓名 , student.

院系 AS 专业 FROM student, score, course WHERE (((score. 成绩 )>=80) AND ((score. 课

程号 ) in (select course. 课程号 from course where 课程名 =" 数据挖掘原理 ")));

上述 SQL 语句执行的是两个过程,首先在 cours

e 中找出课程名为“数据挖掘原理”课程号

嵌套查询

Page 15: SELECT-SQL 查询语句

例 :查询 STUDENT.DBF 表中所有“公共卫生 " 专业或 " 临床医学 " 专业同学的学号 , 姓名 , 专业信息。 SELECT 学号 , 姓名 FROM STUDENT

WHERE 专业 =" 临床医学 " UNION;

SELECT 学号 , 姓名 FROM STUDENT

WHERE 专业 =“ 公共卫生 "

联合查询

Page 16: SELECT-SQL 查询语句

显示所有已选课同学的学号、姓名 select distinct student. 学号 , 姓名 fr

om student, course where student.

学号 =course. 学号 select 学号 , 姓名 from student whe

re 学号 in(select distinct 学号 from

course)

举例

Page 17: SELECT-SQL 查询语句

显示所有没有选课的同学的信息 select * from student where 学号 n

ot in(select 学号 from course)

Page 18: SELECT-SQL 查询语句

显示所有成绩在 90 分以上(含 90 )的同学的姓名、所属院系和所选的课程名称和成绩

select 姓名 , 院系 , 课程名 , 成绩 from st

udent,sc,course where student. 学号 not

in (select distinct 学号 from sc where

成绩 <90) and student. 学号 =sc. 学号 an

d sc. 课程号 =course. 课程号

Page 19: SELECT-SQL 查询语句

查询与刘昕在同一个系学习的学生信息

select * from student where 院系 =(select 院系 from student where 姓名=" 刘昕 ")

当子查询的结果是一个值时,可以用 IN ,也可以用等号 (=), 但是当子查询的结果是一组值时,只能用 IN

Page 20: SELECT-SQL 查询语句

简单的计算查询 命令参数 说明 COUNT ( * ) 计算表中记录的总数 COUNT (列) 对一列中的值计算个数 SUM (数值表达式) 计算数值表达式的和 AVG (数值表达式) 计算数值表达式的平均值 MIN (表达式) 求(数值、日期、字符)最小

值 MAX (表达式) 求(数值、日期、字符)最大值

Page 21: SELECT-SQL 查询语句

SELECT Sum(SCORE. 成绩 ) AS 总计

FROM SCORE;

Page 22: SELECT-SQL 查询语句

统计基础医学专业学生的平均分数 SELECT Avg(SCORE. 成绩 ) AS 平均分FROM SCORE

WHERE SCORE. 学号 In (SELECT 学号 FROM STUDENT WHERE 院系 =" 基础医学 ");

Page 23: SELECT-SQL 查询语句

分组与计算

分别统计男生和女生的人数 SELECT 性别 ,COUNT(*) AS 人数 FR

OM STUDENT GROUP BY 性别 按专业统计人数并按降序排列

SELECT 院系 ,COUNT(*) as 人数 FROM STUDENT GROUP BY 院系 ORDER BY 2 DESC

Page 24: SELECT-SQL 查询语句

查询至少有两门以上课程不及格的学生信息

Select * from student where 学号 in

(select 学号 from score where 成绩<60 group by 学号 having count(*)>=

2)