1 / 24

SELECT-SQL 查询语句

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

petra-frost
Download Presentation

SELECT-SQL 查询语句

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. SQL命令动词

  3. 查询功能 • SQL查询语句的格式主要有SELECT 子句、FROM子句、INTO子句、TO子句、WHERE子句、GROUP BY子句和ORDER BY 子句,

  4. SELECT主要短语的含义: • SELECT 说明要查询的数据 • FROM 说明要查询的数据来自那个或那些表; • WHERE 说明查询条件;

  5. GROUP BY短语用于对查询结果进行分组,可以利用它进行分组汇总; • HAVING短语必须跟随GROUP BY使用,它用来限定分组必须满足的条件; • OREDR BY短语用来对查询的结果进行排序,默认为升序。ASC升序(ascent) ,DESC降序(descent)

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

  7. SELECT-SQL应用举例 • 查询STUDENT.DBF表中的全部信息。 • SELECT * FROM STUDENT • 查询STUDENT.DBF表中所有同学的姓名,院系 • SELECT 姓名,院系 FROM STUDENT

  8. 查询STUDENT.DBF表中女生的全部信息 • SELECT * FROM STUDENT WHERE 性别=“女”

  9. SELECT 姓名,出生日期 as 出生日 FROM STUDENT • 查询结果的字段名列表可以使用别名

  10. 查询STUDENT.DBF表中所有同学的学号、姓名和年龄。查询STUDENT.DBF表中所有同学的学号、姓名和年龄。 • SELECT 学号,姓名,YEAR(DATE())-; YEAR(出生年月) AS 年龄 FROM STUDENT • 查询STUDENT.DBF表中所有“公共卫生"专业或"临床医学"专业同学的学号,姓名,专业信息。 • SELECT 学号,姓名,专业 FROM STUDENT WHERE 专业=“公共卫生" OR 专业="临床医学"

  11. 查询SCORE.DBF表中所有同学的学号、计算机成绩(降序)。查询SCORE.DBF表中所有同学的学号、计算机成绩(降序)。 • SELECT 学号,成绩 FROM SCORE ORDER BY 成绩 DESCENT • 查询计算机成绩前三名学生 • SELECT * TOP 3 FROM SCORE ORDER BY 成绩 DESC

  12. 查询STUDENT表中学号以98开头的男同学的所有信息查询STUDENT表中学号以98开头的男同学的所有信息 • SELECT * FROM STUDENT WHERE 学号 LIKE "98*" and 性别="男"

  13. 简单的联接查询 • 找出“数据挖掘原理”成绩大于等于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.课程名="数据挖掘原理";

  14. 嵌套查询 • 找出“数据挖掘原理”成绩大于等于80分以上的学生学号姓名和专业还可一这样写 • SELECT student.学号, student.姓名, student.院系 AS 专业 • FROM student, score, course • WHERE (((score.成绩)>=80) AND ((score.课程号) in (select course.课程号 from course where 课程名="数据挖掘原理"))); • 上述SQL语句执行的是两个过程,首先在course中找出课程名为“数据挖掘原理”课程号

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

  16. 举例 • 显示所有已选课同学的学号、姓名 • select distinct student.学号,姓名 from student, course where student.学号=course.学号 • select 学号,姓名 from student where 学号 in(select distinct 学号 from course)

  17. 显示所有没有选课的同学的信息 • select * from student where 学号 not in(select 学号 from course)

  18. 显示所有成绩在90分以上(含90)的同学的姓名、所属院系和所选的课程名称和成绩显示所有成绩在90分以上(含90)的同学的姓名、所属院系和所选的课程名称和成绩 • select 姓名,院系,课程名,成绩 from student,sc,course where student.学号 not in (select distinct 学号 from sc where 成绩<90) and student.学号=sc.学号and sc.课程号=course.课程号

  19. 查询与刘昕在同一个系学习的学生信息 • select * from student where 院系=(select 院系 from student where 姓名="刘昕") • 当子查询的结果是一个值时,可以用IN,也可以用等号(=),但是当子查询的结果是一组值时,只能用IN

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

  21. SELECT Sum(SCORE.成绩) AS 总计 • FROM SCORE;

  22. 统计基础医学专业学生的平均分数 • SELECT Avg(SCORE.成绩) AS 平均分 FROM SCORE WHERE SCORE.学号 In (SELECT 学号 FROM STUDENT WHERE 院系="基础医学");

  23. 分组与计算 • 分别统计男生和女生的人数 • SELECT 性别,COUNT(*) AS 人数 FROM STUDENT GROUP BY 性别 • 按专业统计人数并按降序排列 • SELECT 院系,COUNT(*) as 人数 FROM STUDENT GROUP BY 院系 ORDER BY 2 DESC

  24. 查询至少有两门以上课程不及格的学生信息 • Select * from student where 学号 in (select 学号 from score where 成绩<60 group by 学号 having count(*)>=2)

More Related