- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL语句应用举例
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)]
文档评论(0)