版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2
结构化查询语言SQL历史SQL:
Structured
Query
Languang1974年,由Boyce和Chamber提出1975-1979年,在System
R上实现,由IBM的San
Jose研究室研制,称为SequelSQL标准化有关组织ANSI(American
Natural
Standard
Institute)ISO(International
Organization
for
Standardization)有关标准SQL-86“数据库语言SQL”SQL-89“具有完整性增强的数据库语言SQL”,增加了对完整性约束的支 持SQL-92“数据库语言SQL”,是SQL-89的超集,增加了许多新特性,如新 的数据类型,更丰富的数据操作,更强的完整性、安全性支持等。SQL-2003正在讨论中的新的标准,将增加对面向对象模型的支持2.1基本用法SELECT语句如下:SELECT
[ALL
|
DISTINCT]
[TOP
nExpr
[PERCENT]][Alias.]
Select_Item
[ASColumn_Name][,
[Alias.]
Select_Item
[AS
Column_Name]
...]FROM
[FORCE][DatabaseName!]Table
[[AS]
Local_Alias][[INNER
|
LEFT
[OUTER]
|
RIGHT
[OUTER]
|
FULL
[OUTER]
JOINDatabaseName!]Table
[[AS]
Local_Alias][ON
JoinCondition
…][[INTO
Destination]|
[TO
FILE
FileName
[ADDITIVE]
|TOPRINTER
[PROMPT]|
TO
SCREEN]][PREFERENCE
PreferenceName][NOCONSOLE][PLAIN][NOWAIT][WHERE
JoinCondition
[AND
JoinCondition
...][AND
|
OR
FilterCondition
[AND
|
OR
FilterCondition
...]]][GROUP
BY
GroupColumn
[,
GroupColumn
...]][HAVING
FilterCondition][UNION
[ALL]
SELECTCommand][ORDER
BY
Order_Item
[ASC
|
DESC]
[,
Order_Item
[ASC
|
DESC]...]]&&以浏览的方式显示1无条件查询SELECT
[ALL|DISTINCT][别名.]<选项>[AS<显示名称>]…;FROM<表或视图文件>[别名]……例句:SELECT *
FROM
stustu所有记录参数说明:AS<显示名称>:输出窗口显示重新给出的字段名称。DISTINCT:不输出索引项重复的记录。选项:可以是字段、表达式、函数AVG(<字段>)COUNT(<字段>)
MAX(<字段>)
MIN(<字段>)
SUM(<字段>)。别名:多个数据表以别名来区分不同表中的所属字段。例:SELECT
a.xm,b.cj,c.dm FROM
stu
a,stucj
b,stukm
c或者SELECT
a.xm
AS"姓名",b.cj
AS"成绩",c.dm
AS"课程";FROM
stu
a,stucj b,
stukm
c2
条件查询在简单查询后加WHERE<条件
1>[AND|OR<条件2>]构成条件查询。例:列出所有女同学的姓名和专业。SELECT
xm,zy FROM
stu
WHERExb="女"3复杂查询包括上面所涉及的多表查询和下面将介绍的嵌套查询, 即将一条查询结果作为另一条查询的条件,构成复杂查 询。例:查询赵一所在专业的全体同学。首先查赵一所在专 业,然后查属于这个专业的全体学生。SELECT
xm,zy
FROM
stu
WHERE
zy=;(SELECT
zy
FROM
stu
WHERE
xm="赵一")&&子查 询的结果作为条件在子查询中查到赵一所在专业是“机械”,则主句的条 件是zy=“机械”。<条件>中的关键字ALL
用法:<字段><比较符>ALL(子查询)例:
SELECT
xm
FROM
stu WHERE
nl
>ALL
;(SELECT
nl
FROM
stu
WHERE
“97”$xh)说明:年龄大于子查询所有值时条件为.T.ANY
用法:<字段><比较符>ANY(子查询)例:
SELECT
xm
FROM
stu WHERE
xh
>=ANY; (SELECT
xh
FROM
stu
WHERE
"00"$left(xh,2))说明:学号大于等于子查询中任意一值时条件为.T.,即输出2000届以后的学生。BETWEEN
用法:<字段>BETWEEN<初值>AND<终值>例:
SELECT
xm
FROM
stu
WHERE
nl BETWEEN
20AND
23说明:年龄在20到23之间(含20和23)时条件为.T.EXISTS
用法:EXISTS<(子查询)>条件始终为真。IN
用法:<字段>IN(子查询或集合)例:
SELECT
xm
FROM
stu
WHERE
xh IN
(SELECTxh
FROM
stucj
WHERE
cj>80)说明:学号是子查询或集合中的某一项时条件为.T.,即输出80分以上学生姓名。类似于使用通配LIKE用法:<字段>LIKE<字符表达式>符“*”、“?”。例:
SELECT
*
FROM
stu WHERE
xm
LIKE
“李%”说明:所有姓李学生条件为.T.SOME用法:<字段><比较符>SOME(子查询)例:SELECT
xm
FROM
stu
WHERE
xh>SOME;(SELECT
xh
FROM
stu
WHERE
"99"$xh)说明:xh大于子查询中的某一项时条件为.T.(与ANY同意义)例6.1输出选修“计算机应用基础”和“微机原理”学生名单、成绩。SELECT
a.xm,
c.qm,
b.cj FROM
stu
a,
stukm
c,
stucj
b;WHERE
a.xh=b.xh
AND
b.dm=c.dm
AND
b.dm
=SOME
; (SELECT
dm
FROM
stukm
WHERE
stukm.qm
IN(“计算机应用基础”,”微机原理”))例6.2
输出01级学“计算机应用基础”的学生人数和平均成绩。SELECT
COUNT(*)AS"人数",c.qm
AS"课程",AVG(b.cj)AS"平均分"; FROM
stu
a,stukm
c,stucj
b WHERE
a.xh=b.xh
andb.dm=c.dm
;AND
c.dm="1001"
AND
LEFT(
a.xh,2)="01"2.2处理查询结果1输出排序如果希望输出按一定规律排列可用ORDER
BY子语句:ORDER
BY<排序项目>[ASC|DESC][,<排序项目>[ASC|DESC]……]其中<排序项目>可以是字段或数字,数字是指查询表的列序号。例6.3
输出学生姓名、班级、分数、课程,要求按专业排列,同专业则按分数排列。SELECT
a.xm,a.zy,c.qm,b.cj
FROM
stu
a,stukmc,stucj
b;WHERE
a.xh=b.xh
AND
b.dm=c.dm
;ORDER
BY
a.zy,b.cj
DESC &&(或者ORDER
BY2|4)2
输出定向将查询结果输送到指定的数据库表或文本文件。格式1
[INTO<目标>]目标:ARRAY<数组名>、CURSOR<临时数据表>、DBF<数据表>••••••••例:SELECT
a.xm
,b.cj FROM
stu
a,
stucj
b
;WHERE
a.xh=b.xh ORDER
BYb.cj
INTOARRAY
tem
(或DBFtem)格式2
TO
FILE
<TXT文件>[ADDITIVE]
添加到txt文件后面TOPRINTERTOSCREEN &&非查询窗口如:SELECT
xm
FROMstu
TOFILExm.txt前面讲的查询结果均以浏览方式显示在查询窗口。下面几个子句可以控制显示情况[NOCONSOLE]结果不在屏幕输出
[PLAIN]
屏幕输出无标题
[NOWAIT]多屏连续滚动不等待按键2.3
分组统计与筛选分组统计GROUP
BY
<分组选项>
<分组选项>可以是字段或序列号。例6.4
分专业统计学生人数。SELECT
zy,
COUNT(zy)
FROM
stuGROUP
BY
zy•••••••2
筛选HAVING<条件>与WHERE功能看上去类似但不相同,HAVING是作为查询输出的筛选条件,而WHERE是查询的条件。例6.5
查学生分数大于80分的各科成绩,按dm分类输出。命令1:SELECT
xh,
dm,
cjFROMstucj
HAVINGcj>80ORDERBYdm命令2:SELECT
xh,
dm,
cj
FROM
stucj
WHERE
cj>80
ORDERBYdm从查询窗口的输出看,虽然两条语句有同样的结果,但在命令1建立的查询中包含了stucj所有的记录,查询窗口显示的只是成绩高于
80分的记录;而在命令2建立的查询中只有成绩高于80分的记录,在查询窗口显示的是所有的查询内容。例6.6
统计各专业女学生人数。命令1:SELECT
zy,
xb,
COUNT(zy)
FROMstu
GROUPBYzyWHERE
xb="女"命令2:SELECT
zy,
xb,
COUNT(zy)
FROMstu
GROUPBYzyHAVING
xb=”女”说明:命令1按专业分组,按条件“xb=女”来统计人数。而命令2则是在分组后由HAVING子句确定输出内容,它不影响分组的结果,因为分组时包括了所有学生,所以查询窗口输出内容是第一条记录为女生的那些专业的学生总数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年演讲口才能力测评题库
- 2025-2026年茶艺师茶艺馆经营管理测试题库
- 2025-2026年美发美容美甲行业财务管理知识测试卷
- 2025-2026年生态保护法知识竞赛试卷
- 2026年大学高等数学多元函数微分课件
- 人教版七年级上册英语全册语法知识点梳理名师教案
- 15.1 二次根式 同步练习-2026-2027学年冀教版数学八年级上册
- 2026秋人教版二年级上册数学表内乘(乘加乘减)学困生专项练习含参考答案
- 维修电工中级操作技能试卷及答案
- 消费者权益保护法律援助与维权服务考核试卷及答案
- 水利水电工程单元工程施工质量检验表与验收表(SLT631.5-2025)
- 宅基地制度改革试点档案
- 古港中学备战“园丁杯”篮球赛策划书
- 人教版6年级数学上册一课一练
- DB46-T 668-2025 公路沥青路面设计与施工技术规范
- 《SMT贴片工艺》课件
- 小学四年级上学期语文教学教研计划
- 花篮式脚手架专题培训
- 雕塑设计制作合同模板
- 应急救灾物资采购投标方案(技术方案)
- 幼儿园公开课:大班数学《森林小警官》课件
评论
0/150
提交评论