SQL语言查询技术_第1页
SQL语言查询技术_第2页
SQL语言查询技术_第3页
SQL语言查询技术_第4页
SQL语言查询技术_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL语言查询技术5.1.1SQL语言概述1、概念SQL是结构化查询语言(StructuredQueryLanguage)的简称,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

2、发展历史1974年,在IBM公司圣约瑟研究实验室研制的大型关系数据库管理系统SYSTEMR中,使用SEQUEL语言(由BOYCE和CHAMBERLIN提出),后来在SEQUEL的基础上发展了SQL语言。3、语言特点一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成数据库中的全部工作。使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主语言中使用。非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。语言简洁,语法简单,好学好用:在ANSI标准中,只包含了94个英文单词,核心功能只用6个动词,语法接近英语口语。5.1.2SELECT-SQL查询命令

SQL语句主要内容SELECT列表项FROM子句INTO和TO子句WHERE子句GROUPBY子句ORDERBY子句UNION子句SELECT列表项FROM子句用于指明查询输出的项目,可以是字段、表达式。利用表达式可以查询表中未直接存储但可以通过计算出来的结果表达式可以为变量、常量、函数及它们的组合,特别是字段函数及其组合可以实现功能十分强大的查询和统计操作指明被查询的自由表、数据库表或试图名,及其之间的联接状况SELECT列表项和FROM子句是每个每个SQL查询语句所必须的,其他子句则是根据需要可选SELECT*

FROM*WHERE子句指明查询的连接条件或筛选条件jsjh,jsxm,glFROMjs;WHERE

gl>=10andgl<=15;(查询工龄在10~15之间的教师的工号、姓名、年龄)满足条件的查询结果不止一个时,在SELSCT列表项中若有DISTINCT可选项,则可消除查询结果中的重复项SELECTDISTINCTzydhFROMxs

(查询学生中所有的专业代号,重名的专业代号只显示一次)TOPn[PERCENT]为输出的最前面的n条记录,若有PERCENT可选项,则可指定输出百分之几的记录,但TOP语句必须与ORDERBY子句结合INTO和TO子句INTO子句指明查询结果保存何处,可以是数组、临时表或表TO子句指明查询结果输出到何处,可以是文本文件、打印机或VFP窗口若同一个查询语句中同时包括INTO和TO子句,则TO子句不起作用,若却INTO和TO子句,则默认输出到浏览窗口5.1.3SELECT-SQL应用举例一、单表查询二、多表查询三、统计处理四、嵌套查询五、联合查询六、别名与自连接查询单表查询查询全部信息

例:查询xs表中的全部信息命令:

SELECT

*FROM

xs

符号*表示选定表的全部字段不包括重复信息例:查询学生中所有的专业代号,对于重名的专业代号只显示1次。命令:SELECTDISTINCTzydhFROMxs

使用DISTINCT可消除重复的值。输出字段表达式例:查询学生的学号、姓名和年龄命令:SELECTxsxhas学号,xsxmas姓名,YEAR(DATE())YEAR(csrq)as年龄;FROMxs

表达式as列名,表达式可以是常量、变量、函数及它们的组合,列表名用来指定查询结果中列表项的标题。记录的筛选处理例:查询工龄在10~15年之间(包括10年和15年的)教师的工号、姓名和工龄。命令:SELECTjsgh,jsxm,glFROMjs;WHEREgl>=10andgl<=15WHERE子句用来指定筛选记录的条件,有多个条件时,可用AND或OR连接也可用下列语句实现

SELECTjsgh,jsxm,glFROMjs;

WHEREglBETWEEN10AND15;

ORDERBYDESC

在查询中,若要求某列的数值在某个区间内,可用BETWEEN...AND...表示;反之不在区间内则用NOTBETWEEN...AND...查询结果的排序例:查询工龄在10~15年之间(包括10年和15年的)教师的工号、姓名和工龄,并按工龄由高到低列出。命令:SELECTjsgh,jsxm,glFROMjs;WHEREglIN(10,11,12,13,14,15);ORDERBYglDESC选项DESC表示由大到小输出。缺省情况下,以升序排序输出查询结果。在查询中,经常会遇到要求表的列表是某几个值中的一个,这时可用IN表示。同时使用NOTIN表示与之相反的含义。多表查询在日常中,往往要涉及多个表之间的关联查询。SQL语言提供了连接多个表的操作,可以在两个表之间按指定列的值将一个表中的行与另一个表中的行连接起来,从而大大增强其查询能力。例:查询学生的学号、姓名、课程、成绩、并按学号排升序。使用WHERE子句的筛选条件如下:

SELECTXs,xsxh,Xs,xsxh,Kc,kcmc,Cj.cj;

FROM

xs,cj,kc;

WHEREXS,xsxh=cj.xsxh

AND

Cj.kcdh=kc.kcdh

ORDERBY

Xs.xsxh使用FROM子句的链接条件实现如下:

SELECTXs,xsxh,Xs.xsxm,Kc,kcmc,Cj.cj;

FROMxsINNERJOINcjINNERJOINkc;

ONCj.kcdh=Kc.kcdhONXs.xsxh;

ORDERBYXs.xsxh对于上述查询,按学号相等联接学生表和成绩表,按课程号相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论