文档详情

SQL语句应用举例.doc

发布:2017-05-07约2.7千字共7页下载文档
文本预览下载声明
SQL语句应用举例 一、SELECT语句 语法格式: SELECT [ALL|DISTINCT] 目标列 FROM 表(或查询) [WHERE 条件表达式] [GROUP BY 列名1 HAVING 过滤表达式] [ORDER BY 列名2 [ASC|DESC]] 功能:根据WHERE子句中的表达式,从FROM子句指定的基本表或视图中找出满足条件的记录,再按SELECT子句中的目标列显示数据。 如果有GROUP 子句,则按列名1的植进行分组,列名1值相等的记录分在一组,每一组产生一条记录。 如果GROUP子句带有HAVING短语,则只有满足过滤表达试的组才予以输出。 如果有ORDER BY子句,则查询结果按列名2的值进行排序。 1、基本部分 SELECT [ALL|DISTINCT] 目标列 FROM 表(或查询) 说明: 目标列的格式是:列名1[AS 别名1], 列名2 [AS 别名2],......,列名n[AS 别名n] FROM 子句指明了想从何处查询想要的数据,可以是多个表或视图。对SELECT语句来说,FROM是必须的,不能默认。 ALL表示查询的结果中可以包含重复的记录,是默认值;DISTINCT表示查询结果中不能出现重复的记录,如果有相同的记录,只保留一条。 一般情况下,目标列中的列名是FROM子句中基本表或视图中的字段名。如果FROM子句中指定了多个基本表或视图,并且列名有相同时,则列名之前应加前缀,格式为:“表明.列名”。AS子句中用来以新的名称命名输出列。 目标列是*号表示输出所有的字段。 目标列中的列名可以是一个使用SQL库函数的表达式,常用的函数见有: 合计函数 描述 AVG(列名) 计算某一列的平均值 COUNT(*) 统计记录的个数 COUNT(列名) 统计某一列值的个数 SUM(列名) 计算某一列的总和 MAX(列名) 计算某一列的最大值 MIN(列名) 计算某一列的最小值 LEFT(列名,n) 返回最左边的n个字符 例1列出表中姓名、性别、助学金情况。 SELECT 姓名,性别,助学金 FROM STUDENT 例2列出表中所有学生的基本的情况。 SELECT * FROM STUDENT 例3查询学生人数、最低助学金、最高助学金、平均助学金。 SELECT COUNT(*) AS 人数, MIN(助学金) AS 最低助学金, MAX(助学金) AS 最高助学金, AVG(助学金) AS 平均助学金 FROM? STUDENTS ?2.WHERE子句 WHERE子句有双重作用:一是选择记录,输出满足条件的记录;二是建立多个表或查询之间的链接。 例6 查询计算机专业学生的学号、姓名和专业。 SELECT 学号,姓名,专业? FROM? STUDENTS? WHERE? 专业=“计算机” ?例7显示所有非计算机专业学生的学号、姓名和年龄。 SELECT 学号,姓名,年龄?? YEAR(DATE())-YEAR(出生年月)?? AS 年龄 FROM? STUDENTS WHERE? 专业“计算机” ?例8 查询1981年以前(含1981)出生的女生的姓名和出生年月。 SELECT? 姓名,出生年月?? FROM?? STUDENT WHERE?? 出生年月#1/1/1982#?? AND? 性别=“女” ?3.ORDER? BY子句 ORDER? BY子句用于指定查询结果的排列顺序。ASC表示升序,DESC表示降序。默认为升序。 ?例9查询所有党员学生的学号和姓名,并按助学金由小到大排序。 SELECT?? 学号,姓名? FROM? STUDENTS ?? WHERE? 党员=TRUE ORDER? BY? 助学金 ?4.GROUP? BY 子句和HAVING子句 用来对查询结果分组,把某一列值相同的记录分为一组,一组产生一条记录。 例10 查询SCORES中所有课程的成绩在70分以上的学生的学号。 SELECT? 学号? FROM? SCORES? GROUP? BY? 学号 HAVING? MIN(成绩)=70 SELECT 字段1, 字段2, ... INTO 新表名 FROM 原表名 例:将表stuinfo中的计算机专业的学生,按年龄降序排序后,生成一个新表学生3 select * into 学生3 from stuinfo where 专业=计算机 order by year(date())-year(出生日期) desc insert语句 [格式1]: INSERT INTO 表名 [(字段名1,字段名2,...,字段名n)]
显示全部
相似文档