select-sql 查询语句
DESCRIPTION
SELECT-SQL 查询语句. SQL(Structure Query Language ,结构化查询语句 ) 是美国国家标准局按 ANSI 确认的关系数据库语言的标准,用于对关系型数据库中的数据进行存储、查询、更新等操作。 SQL 语言是一种交互式的计算机语言,它不仅能在单机环境下提供对数据库的各种访问操作,而且还可作为一种分布式数据库语言用于客户 / 服务器模式数据库应用的开发。. SQL 命令动词. 查询功能. - PowerPoint PPT PresentationTRANSCRIPT
SELECT-SQL 查询语句 SQL(Structure Query Language ,结构化查询语
句 ) 是美国国家标准局按 ANSI 确认的关系数据库语言的标准,用于对关系型数据库中的数据进行存储、查询、更新等操作。 SQL 语言是一种交互式的计算机语言,它不仅能在单机环境下提供对数据库的各种访问操作,而且还可作为一种分布式数据库语言用于客户 / 服务器模式数据库应用的开发。
SQL 命令动词
SQL 功能 命令动词数据查询 SELECT
数据定义 CREATE 、 DROP 、 ALTER
数据操纵 INSERT 、 UPDATE 、 DELE
TE
数据控制 * GRANT 、 REVOKE
查询功能
SQL 查询语句的格式主要有 SELECT
子句、 FROM 子句、 INTO 子句、 T
O 子句、 WHERE 子句、 GROUP BY
子句和 ORDER BY 子句,
SELECT 主要短语的含义:
SELECT 说明要查询的数据 FROM 说明要查询的数据来自那个或
那些表; WHERE 说明查询条件;
GROUP BY 短语用于对查询结果进行分组,可以利用它进行分组汇总; HAVING 短语必须跟随 GROUP BY 使用,
它用来限定分组必须满足的条件; OREDR BY 短语用来对查询的结果进
行排序,默认为升序。 ASC 升序 (asc
ent) , DESC 降序 (descent)
简单查询
SELECT 、 FROM 、 WHERE 三个子句构成最常用的、最基本的 SQL 查询语句。
SELECT-SQL 应用举例
查询 STUDENT.DBF 表中的全部信息。 SELECT * FROM STUDENT
查询 STUDENT.DBF 表中所有同学的姓名,院系 SELECT 姓名 , 院系 FROM STUDENT
查询 STUDENT.DBF 表中女生的全部信息 SELECT * FROM STUDENT WHERE
性别 =“ 女”
SELECT 姓名 , 出生日期 as 出生日 FROM STUDENT
查询结果的字段名列表可以使用别名
查询 STUDENT.DBF 表中所有同学的学号、姓名和年龄。 SELECT 学号 , 姓名 ,YEAR(DATE())-;
YEAR( 出生年月 ) AS 年龄 FROM STUDENT
查询 STUDENT.DBF 表中所有“公共卫生 " 专业或 " 临床医学 " 专业同学的学号 , 姓名 , 专业信息。 SELECT 学号 , 姓名 , 专业 FROM STUDENT
WHERE 专业 =“ 公共卫生 " OR 专业 =" 临床医学 "
查询 SCORE.DBF 表中所有同学的学号、计算机成绩 ( 降序 ) 。 SELECT 学号 , 成绩 FROM SCORE O
RDER BY 成绩 DESCENT
查询计算机成绩前三名学生 SELECT * TOP 3 FROM SCORE ORD
ER BY 成绩 DESC
查询 STUDENT 表中学号以 98 开头的男同学的所有信息 SELECT * FROM STUDENT WHERE
学号 LIKE "98*" and 性别 =" 男 "
简单的联接查询 找出“数据挖掘原理”成绩大于等于 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. 课程名 =" 数据挖掘原理 ";
找出“数据挖掘原理”成绩大于等于 80 分以上的学生学号姓名和专业还可一这样写 SELECT student. 学号 , student. 姓名 , student.
院系 AS 专业 FROM student, score, course WHERE (((score. 成绩 )>=80) AND ((score. 课
程号 ) in (select course. 课程号 from course where 课程名 =" 数据挖掘原理 ")));
上述 SQL 语句执行的是两个过程,首先在 cours
e 中找出课程名为“数据挖掘原理”课程号
嵌套查询
例 :查询 STUDENT.DBF 表中所有“公共卫生 " 专业或 " 临床医学 " 专业同学的学号 , 姓名 , 专业信息。 SELECT 学号 , 姓名 FROM STUDENT
WHERE 专业 =" 临床医学 " UNION;
SELECT 学号 , 姓名 FROM STUDENT
WHERE 专业 =“ 公共卫生 "
联合查询
显示所有已选课同学的学号、姓名 select distinct student. 学号 , 姓名 fr
om student, course where student.
学号 =course. 学号 select 学号 , 姓名 from student whe
re 学号 in(select distinct 学号 from
course)
举例
显示所有没有选课的同学的信息 select * from student where 学号 n
ot in(select 学号 from course)
显示所有成绩在 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. 课程号
查询与刘昕在同一个系学习的学生信息
select * from student where 院系 =(select 院系 from student where 姓名=" 刘昕 ")
当子查询的结果是一个值时,可以用 IN ,也可以用等号 (=), 但是当子查询的结果是一组值时,只能用 IN
简单的计算查询 命令参数 说明 COUNT ( * ) 计算表中记录的总数 COUNT (列) 对一列中的值计算个数 SUM (数值表达式) 计算数值表达式的和 AVG (数值表达式) 计算数值表达式的平均值 MIN (表达式) 求(数值、日期、字符)最小
值 MAX (表达式) 求(数值、日期、字符)最大值
SELECT Sum(SCORE. 成绩 ) AS 总计
FROM SCORE;
统计基础医学专业学生的平均分数 SELECT Avg(SCORE. 成绩 ) AS 平均分FROM SCORE
WHERE SCORE. 学号 In (SELECT 学号 FROM STUDENT WHERE 院系 =" 基础医学 ");
分组与计算
分别统计男生和女生的人数 SELECT 性别 ,COUNT(*) AS 人数 FR
OM STUDENT GROUP BY 性别 按专业统计人数并按降序排列
SELECT 院系 ,COUNT(*) as 人数 FROM STUDENT GROUP BY 院系 ORDER BY 2 DESC
查询至少有两门以上课程不及格的学生信息
Select * from student where 学号 in
(select 学号 from score where 成绩<60 group by 学号 having count(*)>=
2)