SQL简明手册
SQL语言通常分为4类:数据查询语言(SELECT)、数据操纵语言(INSERT、UPDATE、DELETE)、数据定义语言(DREA TE、ALTER、DROP)、数据控制语言(COMMIT、ROLLBADK)。
一、S QL语法规则
1、SQL语言对大小写不敏感。建议用户使用大写字母表示SQL的关分键字。
2、():括号内表示必填参数。
3、[]:中括号内表示可选填参数。
4、…:表示该语法元素可以重复;
5、│:表示将语法元素分开,但坚条并不是SQL语句的一部分。
6、空格:表示将语法元素分开。
7、SQL语句中的标点符号及运算符号必须使用英文半角字符,不能使用中文全角标点。
二、数据查询语言-SELECT
SQL语言中最主要、最核心的部分是它的查询功能。在关系型数据库中,查询的含义是描述如何从数据库中获取所需的数据。
(一)语法:
SELECT[ALL│DISTICT]<;字段表达式1>[,<;字段表达
式2>[…]]
FROM<;表名1>[,<;表名2>[…]]
[WHERE<;筛选条件表达式>]
[GROUP<;分组表达式>[HA VING<;分组条件表达式>]]
group by的用法及原理详解
[ORDER BY<;字段>[ASC│DESC]]
说明:
SELECT语句的基本格式是由SELECT子句、FROM子句、
WHERE子句组成的查询块。
整个SELECT语句的含义是:EHERE子句的<;筛选条件表达式>,从FROM子句指定的表中出满足条件的记录,再按SELECT子句指定的<;子段>次序,选出记录中的字段值,构造一个显示结构表。
如果有GROUP子句,则将结果按<;分组表达式>的值进行分组,该值相等的记录为一个组。如果GROUP子句带GA VING短句,则只有满足指定条件的组才会输出。
如果有ORDER BY子句,则显示结果表还要按<;字段>值的升序或降序进行排序。
SELECT语句是记录(数据)集合(一个表或多个表),而不是单独的一条记录。语句返回的也是记录集合,即满足WHERE条件的结果表。
(二)单表查询
单表查询是指所处理的问题仅仅涉及一个表的记录(数据)。在AO的“SQL查询器”中输入语句:SELECT凭证日期,凭证号,摘要,借方金额,贷方金额FEOM凭证库,
(三)通配符*的用法
*表示将全部的字段内容都显示出来。在AO的“SQL查询器”中输入语句:SELECT*FEOM凭证库,单击【执行SQL 到排序表】,得到查询出的凭证库结果。
(四)查询出的字段重新命名
在AO的“SQL查询器”中输入语句:SELECT科目编码+科目名称AS科目编码名称FROM总账,单击【执行SQL 到排序表】,得到查询出的凭证库结果。
注意:必须是相同数据类型的字段才能合并,对于字符型字段内容是前后合并在一起,对于数值型字段则按四则运算的规则将数值相加。
(四)条件子句WHERE的用法
SELECT 凭证日期,凭证号,科目名称,摘要,借方金额,贷方金额,会计月份
FROM凭证库
WHERE 会计月份>=7 AND 会计月份<=12
单击【执行SQL到排序表】,将7月份至12月份凭证显示出来。
使用WHERE子句过滤记录时,常用的运算符有关系运算符、
逻辑运算符、特殊运算符等
使用关系运算符对字符型数据间比较的原理是对字符的ASEⅡ码值进行比较,所有字符都有一个ASEⅡ码值与之对应。例如,字母“T”、数字“8”、符号“+”的ASEⅡ码值分别是84、56、43。值得注意的是,英文的大小写字母对应的是不同的ASEⅡ值。
(五)排序子句ORDER BY的用法
在AO的“SQL查询器”中输入以下语句:
SELECT 凭证日期,凭证号,科目名称,摘要,借方金额,贷方金
FROM凭证库
WHERE 借方金额>=50000
ORDER BY 科目编码ASC
查询的字段是凭证日期、凭证号、摘要、科目编码、科目名称、借方金额、贷方金额;过滤条件是借方金额>=50000;对科目编码按ASC升序排序。单击【执行SQL到排序表】,得到上述SELECT语句查询出的凭证库结果。
(六)分组子句GROUP BY的用法
在SELECT语句中,使用GROUP BY子句可以快速而简便地将查询结果按照指定的字段进行分组。在AO的“SQL查询器”中输入以下语句:
SELECT 科目名称,COUNT(*)AS 科目数量
FROM 凭证库
GROUP BY 科目名称
单击【执行SQL到排序表】,查询结果按照指定的科目名称进行分组,分组的记录数据单列显示。使用COUNT(*)函数统计总的记录数,使用AS子句将统计结果名称改为科目数量。
(七)分组后筛选子句HA VING的用法
HA VING语句通常跟在GROUP BY语句之后,作为分组后的过滤条件。在AO的“SQL查询器”中输入以下语句:
SELECT 科目名称,COUNT(*)AS 科目数量
FROM 凭证库
GROUP BY 科目名称HA VING 科目名称LIKE‘%事业%’单击【执行SQL到排序表】,查询结果按照指定的科目名称进行分组,只显示包含“事业”二字的科目数量。
(八)记录唯一性子句DISTINCT的用法
在SELECT语句中,DISTINCT子句的作用是去掉查询结果重复的记录。在AO的“SQL查询器”中输入以下语句,将科目名称字段重复的数据记录去掉,相当于显示科目名称列表:
SELECT DISTINCT 科目名称FROM 凭证库
单击【执行SQL到排序表】,得到查询出的科目名称列表。(九)多表联接查询JOIN的用法
语法:
SELECT * FROM 表1
INNER│LEFT│RIGHT│FULL[OUTER] JOIN 表2
ON 表1.字段1,<;关系运算符> 表2.字段2
描述:
简单地说,多表联接查询就是从多个表中选择数据,将原来分散在多个表中的数据综合起来,也即联接。联接是指两个表之间的两个类型相同的字段之间进行关系运算。
说明:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。