简洁的优美句子

| 审计师考试 |

【www.guakaob.com--审计师考试】

SQL语句在审计中的简单应用
简洁的优美句子(一)

SQL语句在审计中的简单应用

SELECT语句是SQL语言中使用频率最高的语句,完全可以说SELECT语句是SQL的灵魂。SELECT语句的作用就是让数据库服务器根据用户的要求搜索出所需要的信息资料,并按规定的格式进行整理,再返回给用户。在计算机审计中,面对繁杂的数据,可以充分利用SQL语句对数据进行筛选和比较,提取组成我们可用的审计中间表,大大提高审计效率。

一、SELECT语句的基本组件和描述:

SELECT 指明要检索的数据的列。

FROM 指明从哪(几)个表中检索行。

WHERE 指明返回数据必须满足的标准(条件)。

GROUP BY 对于集合查询,指明返回的列数据通过这些列来形成组(分组查询)。 HAVING 对于集合查询,指明返回的集合值必须满足的标准。

ORDER BY 指明返回的排序顺序(排序查询)。

例如:

⑴简单查询数据库表hzbb中的以下几列,并将查询结果的每一行都返回在选定列中显示,可用以下SQL语句表示:

SELECT id, lname, fname, state, zip, contract FROM hzbb

(前面的列名即字段名如用*表示所有列) 即为:SELECT * FROM hzbb

⑵添加WHERE条件子句,以缩小检索范围。如只返回显示state列中含有‘CA’字符,并且同时满足contract列中值为0的报有记录(行)。可用以下SQL语句表示: SELECT id, lname, fname, state, zip, contract

FROM hzbb

WHERE state =‘CA’AND contract = 0

(逻辑操作符AND表示与的意思,而OR表示或的意思,如使用AND则返回的行必须满足AND两边的条件,OR操作符则要求OR两边至少满足一个条件) 虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下:

SELECT select_list

[ INTO 新表名 ]

FROM表一 ,[表二]„„

[ WHERE 条件表达式 ]

[ GROUP BY 分组列 ]

[ HAVING 指定组或聚合应满足的搜索条件]

[ ORDER BY指定要排序的列[ ASC(升序)| DESC(降序)] ]

二、审计实务中的SQL例句说明

1、在SELECT语句中,“*”表示表中所有的列。

如:select * from 凭证库 该语句表示选择凭证库(表)中所有列的记录。

2、使用TOP关键字用于指定只返回前面一定数量的数据。

当查询到的数据非常多(如有100万行),但又没有必要对所有数据进行浏览时,使用TOP关键字可以大大减少查询的时间。

如: SELECT TOP 20 FROM HZK 表示从数据库HZK中返回前面20行的数据。

SELECT TOP 20 PERCENT FROM HZK 表示从数据库表HZK中搜索返回前20%的数据。

3、使用DISTINCT关键字。

使用DISTINCT关键字可从返回的结果数据集合中删除重复的行,使返回的结果更加简洁。如:select distinct 科目编码from 凭证库,该语句表示从凭证库中选择科目编码以及使用distinct关键字后去掉那些重复的科目编码,使每个科目编码都是唯一。

注意:在使用DISTINCT关键字后,如果表中存在多个NULL的数据,服务器将会把这些数据视为相等。

4、灵活运用SQL语句使用计算列。

在进行审计数据分析和查询时经常需要对查询的数据进行再计算,这里审计人员可充分运用SELECT语句的功能来直接使用计算列对审计数据进行运算,而计算列并不存在于表格所存储的数据中,它是通过对某些列的数据进行计算而得出的结果列。

由于计算列没有列名,所以返回的结果看不到它的字段名字。在计算列上,允许使用+、-、*、/、%和逻辑运算符。

5、操作查询的列名。

SELECT语句可以根据实际的需要对查询数据的列标题进行修改,或者为设立没有标题的列增加临时的标题。对列名进行操作的方法有三种:

一是在列表达式后面直接给出列名。SELECT title_id ‘商品代号’, price‘原价’, price – price * 0.3‘现价’FROM title

二是使用SQL支持的“=”符号来连接列表达式。SELECT ‘商品代

号’=title_id , ‘原价’=price, ‘现价’=price – price * 0.3 from title

三是在指定列标题时,使用AS关键字来连接列表达式和指定的列名。SELECT title_id AS‘图书代号’, price AS‘原价’, price – price * 0.3 AS ‘现价’ FROM title

以上三种语句返回结果相同。

注意:在对列名进行操作时,有以下几个问题值得注意:当使用中文列名时,可以不写引号,但决不能使用全角引号,否则查询结果出错;当使用的英文列名超过两个单词时,必须使用引号将列名括起来;可以联合使用本节介绍的3种方法,返回结果相同。

另外,审计人员还可通过应用函数方式直接对表列进行操作。如语句:

Select sum(jfje), sum(dfje) from pzk 该语句是将pzk(凭证库)中所有凭证的借方发生额求和和贷方发生额求和,借以查看pzk表中借贷发生额是否平衡。

6、使用WHERE条件子句。

使用WHERE子句的目的是从表的数据集中筛选出符合审计人员设定条件的行。使用WHERE子句可以限制查询的范围,提高查询效率。使用时注意WHERE子句必须紧跟FROM子句之后。WHERE子句中的条件表达式包括算术表达式和逻辑表达式。

算术表达式:=(等于); <(小于);>(大于);<>(不等于);!>(不大于); !<(不小于); >=(大于等于); <=(小于等于); !=(不等于)。

例1:查询数据库表title中,返回商品的价格打了9折后仍大于150元的商品代码、商品种类及商品的原价。Select title_id As 商品代码,type As 商品种类,price As 商品原价 from title Where price - price * 0.1 > 150

例2:通过对摘要字段内容的选择筛选出其中与招待费有关的所有凭证。

Select科目编码,科目名称,摘要,凭证日期,借方金额,贷方金额 from 凭证库 where 摘要 like \'%招待费%\'【简洁的优美句子】

例3:在凭证库中统计7到12月份现金的借贷发生总额。

Select sum(借方金额) as 现金借方发生总额 , sum(贷方金额) as 现金贷方发生总额 from 凭证库 where 科目编码 like \'101%\' and 凭证日期 between

#2004-07-01 # and #2004-12-31#

7、使用BETWHEEN关键字。

使用BETWHEEN关键字可以方便地限制查询数据的范围(即包含在两个边界内的值),NOT BETWHEEN (不包含在两个边界内的值)。

使用BETWHEEN表达式进行查询的效果可以使用>=和<=的逻辑表达式来代替;使用NOT BETWHEEN进行查询的效果可以使用>和<的逻辑表达式来代替。

如:Select 商品代码,商品种类,商品价格 from titles Where 商品价格 BETWHEEN $10 AND $15

也可用:select 商品代码,商品种类,商品价格 from titles where 商品价格 >= $10 AND 商品价格 <=$15

如果要查商品价格大于15元和小于10元的商品的代码、种类和价格,可用以下查询: select 商品代码,商品种类,商品价格 from titles where 商品价格< $15 or 商品价格>$20

也可用:where NOT BETWHEEN 15 AND 20

注意:在使用BETWHEEN 限制查询数据范围时,同时包括了边界值,而使用NOT BETWHEEN进行查询时没有包括边界值。

8、使用IN关键字。

同BETWHEEN关键字一样,IN关键字的引入也是为方便地限制检索数据的范围,灵活使用IN关键字,可以用简洁的语句实现较复杂的查询。

如:select pz_id, pz_date, pz_fname, pz_zy from hzk

where state = ‘招待费’ or state =’餐费’ or state =’酒水费’

如用IN关键字可替代以上语句:

select pz_id, pz_date, pz_fname, pz_zy from hzk

where state IN ( ‘招待费’ , ‘餐费’ , ‘酒水费’ )

如果要查询不在列表中的值,可使用NOT IN ,方法同上。

9、使用LIKE子语句进行模糊查询。

审计人员往往在实际应用中不一定总是能够就很快地给出精确的查询条件,因此经常需要根据一些并不确定的线索来排查被审数据,LIKE子句就是用来进行模糊查询的语句, 在LIKE子句使用中,通常与通配符配合使用。

SQL提供了四种通配符供用户实现复杂的查询条件:

% (百分号):表示从0到n 个任意字符。

_ (下划线):表示单个任意字符。

[ ] (封闭方括号):表示方括号内列出的任意一个字符。

[∧] :表示任意一个没有在方括号内列出的字符。

如:where 科目名称 like ‘%费’就是查询条件以“费”结尾的科目字段。

下列将查询出所有满足tel_id的前面两个字母为“72”、第4个字母为“—”的人员姓名和电话号码:

Select tel_lanme, tel_fname, phone, tle_id from TEL Where tel_id like ‘72_—%’

使用方括号可以将字符查询的范围进一步缩小。

注意:在LIKE子句的查询条件中,包含在‘ ’中的所有字符都将被考虑进去,包括空格在内,所以要注意在‘ ’中末尾含有空格而影响查询结果。

必须注意的是所有通配符都只有在LIKE子句中才有意义,否则,通配符会被当作普通字符处理。也就是说通配符只有跟随LIKE后才有效。

10、使用ORDER BY 给数据排序

Select 语句获得的数据一般是没有按规律进行排序的,GROUP 主要是对表中的信息细化分组,对属于同组信息进行统计,一般与函数一起使用。

语法为:

Order by { order by expression [ ASC︱DESC ] } [ ,.....n ] ] Order by expression:定义用于排序的列。可以使用多列进行排序,各列在order by 子句中的顺序决定了排序过程中的优先级。 [ ASC] 表示升序, [DESC]表示降序。

默认情况下,order by子句按升序进行排列。即默认使用[ASC]关键字,如果特别要求按降序进行排序,必须使用[DESC]关键字。

如果在某一列中使用了计算列,如对某一列使用了函数或者是表达式,而又希望针对该列的值进行排序,那么必须在order by 子句中再包含该函数或表达式,或使用为该计算列临时分配的列名。

sql语句(简单的查询)
简洁的优美句子(二)

1、雇员表(emp)

雇员表中记录的是一个个的雇员的基本信息【简洁的优美句子】

2、部门表(dept)

表示一个个具体的部门信息。

简单查询语句(重点)

实际上简单查询语句语法格式就是:

Select * | 具体的列名 别名 from 表名称;

查询全部:select * from 表名称;

如果现在只需要查询出雇员的编号、姓名、工作的话,则就需要指定查询的列。

查询所有的工作。

关键字:distinct(去掉重复行的关键字)

语法:select distinct *|具体的列 别名 from 表名;

在查询中也可以使用四则运算功能,例如:要求求出每个雇员的姓名及年薪。

限定查询(where 子句)(重点)

之前查询的都是将一张表中所有的记录全部查询出来,那么现在想根据指定的条件查询的话,则必须指定限定查询。语法:

Select * | 具体的列名 别名 from 表名称 where 条件; 范例:查询工资大于1500的所有雇员的信息。

在操作条件中还可以使用:>、<、>=、<=、=等计算符号。 不等于符号:在SQL中如果要使用不等于符号,可以有两种形式:"<>"、"!="。

范例:查询每月不可以得到奖金的雇员信息。

判断一个字段是否有值可以用null来判断。

范例:查询基本工资大于1500,并且可以得到奖金的雇员信息。

满足两个条件用and操作符进行条件的连接。

范例:查询基本工资大于1500,或者可以得到奖金的雇员信息。

满足多个条件其中的某一个即可用or操作符进行条件的连接。

NOT表示取反的意思。

范例:查询基本工资不大于1500,并且不可以得到奖金的雇员信息。

范例:查询基本工资大于1000并且小于2000的雇员信息。 在SQL中提供了一个专门的指定范围查询的过滤语句: Between ... And(起始和结束范围都包括)

范例:查询在1981年雇佣的雇员信息。

1981年1月1日—1981年12月31日

注意:表示日期的时候用单引号把日期引起来。

范例:要求查询出雇员编号是7369,7499,7521,7566的雇

员信息。

按照之前的做法是用or进行条件的连接。

empno=7369 or empno=7499 or empno=7521 or

empno=7566

实际上,此时指定了查询的范围,在SQL语法中可以使用IN关键字操作符完成。

语法格式:字段 in (值1,值2,值3,值4,....)

如果现在要求查询的内容部不此范围之中,则可以使用not in,

语法格式:字段 not in (值1,值2,值3,值4,....)

in不光可以用在数字上,可以用在字符串上。

模糊查询

在一般的查询中,用的比较多的是模糊查询。即:输入一个指定的关键字,把符合的内容全部查询出来,在SQL中使用like语句完成。

在使用like语句的时候要注意通配符的问题,在like语句中主要使用以下两种通配符:

"%":可以匹配任意长度的内容。

"_":可以匹配一个长度的内容。

范例:查询出所有雇员姓名中第二个字母包含"M"的雇员信息。

范例:查询出所有雇员姓名中包含"A"的雇员信息。

三、对结果进行排序(order by 子句)(重点)

在SQL中可以使用ORDER BY 子句对查询的结果进行排序,例如,现在查询的语句是

select * from emp; 可以发现查询的结果是按照empno的升序排序的。

那么此时如果要使用指定的列进行排序,则就必须使用order by 语句,语法格式如下:

select distinct *|具体的列 别名 from 表名 {where 条件} {order by 排序的字段1,排序的字段2 asc|desc}; Asc表示升序,desc表示降序

范例:要求按照工资由低到高排序。

Select * from emp order by sal;

默认排序是:asc(升序)

范例:要求查询出20号部门的所有雇员的信息,查询的信息按照工资由高到低排序,如果工资相等,则按照雇佣日期由早到晚排序。

需要排序的数据量大小是非常重要的,较小的排序会完全在内存中来实现,而较大的排序将不得不使用临时磁盘空间

SQL简单语句
简洁的优美句子(三)

创建数据库

创建之前判断该数据库是否存在

if exists (select * from sysdatabases where name='databaseName') drop database databaseName

go

Create DATABASE database-name

删除数据库

drop database dbname

备份sql server

--- 创建备份数据的 device

USE master

EXEC sp_addumpdevice 'disk', 'testBack',

'c:\mssql7backup\MyNwind_1.dat'

--- 开始备份

BACKUP DATABASE pubs TO testBack

创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根据已有的表创建新表:

A:go

use 原数据库名

go

select * into 目的数据库名.dbo.目的表名 from 原表名(使用旧表创建新表)

B:create table tab_new as select col1,col2„ from tab_old definition only

创建序列

create sequence SIMON_SEQUENCE

minvalue 1 -- 最小值

maxvalue 999999999999999999999999999 -- 最大值

start with 1 -- 开始值

increment by 1 -- 每次加几

cache 20;

删除新表

drop table tabname

增加一个列

Alter table tabname add colname coltype

删除一个列

Alter table tabname drop column colname

添加主键

Alter table tabname add primary key(col)

说明:删除主键:Alter table tabname drop primary key(col) 创建索引

create [unique] index idxname on tabname(col„。)

删除索引:drop index idxname on tabname

注:索引是不可更改的,想更改必须删除重新建。

创建视图

create view viewname as select statement

删除视图:drop view viewname

简单基本的sql语句

(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名

[desc]"

sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"

sql="select top 10 * from 数据表 where 字段名 order by 字段名

[desc]"

sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"

sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表达式"

sql="update 数据表 set 字段1=值1,字段2=值2 „„ 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表达式"

sql="delete from 数据表" (将数据表所有记录删除)

(4) 添加数据记录:

【简洁的优美句子】

sql="insert into 数据表 (字段1,字段2,字段3 „) values (值1,值2,值3 „)"

sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:

AVG(字段名) 得出一个表格栏平均值

COUNT(*;字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值

MIN(字段名) 取得一个表格栏最小的值

SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" set rs=conn.excute(sql)

用 rs("别名") 获取统计的值,其它函数运用同上。

查询去除重复值:select distinct * from table1

(5) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) „„ )

几个高级查询运算词

A:UNION 运算符

UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随UNION 一起使用时(即UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2。

B: EXCEPT 运算符

EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。

C:INTERSECT 运算符

INTERSECT 运算符通过只包括TABLE1 和TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当ALL 随INTERSECT 一起使用时

(INTERSECT ALL),不消除重复行。

注:使用运算词的几个查询结果行必须是一致的。

使用外连接

A、left outer join:

左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。

SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

B:right outer join:

右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

C:full outer join:

全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。【简洁的优美句子】

编辑本段判断对象是否存在 判断数据库是否存在

if exists (select* from sysdatabases wherename= '数据库名') dropdatabase[数据库名]

判断表是否存在

if not exists (select * from sysobjects where [name] = '表名' and xtype='U')

begin

--这里创建表

end

【简洁的优美句子】

判断存储过程是否存在

if exists (select* from sysobjects whereid = object_id(N'[存储过程名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) dropprocedure[存储过程名]

判断临时表是否存在

if object_id('tempdb..#临时表名') isnot null

droptable#临时表名

判断视图是否存在

--SQL Server 2000

IF EXISTS (SELECT* FROM sysviews WHEREobject_id = '[dbo].[视图名]'

--SQL Server 2005

IF EXISTS (SELECT* FROM sys.views WHEREobject_id = '[dbo].[视图名]'

判断函数是否存在

if exists (select* from dbo.sysobjects whereid =

object_id(N'[dbo].[函数名]') and xtype in (N'FN', N'IF', N'TF')) dropfunction[dbo].[函数名]

获取创建信息

SELECT[name],[id],crdate FROM sysobjects where xtype='U' /*

xtype 的表示参数类型,通常包括如下这些 C = CHECK约束 D = 默认值或DEFAULT约束 F = FOREIGNKEY约束 L = 日志 FN = 标量函数 IF = 内嵌表函数 P = 存储过程 PK = PRIMARYKEY约束(类型是K) RF = 复制筛选存储过程 S = 系统表 TF = 表函数 TR = 触发器U = 用户表 UQ = UNIQUE约束(类型是K) V = 视图 X = 扩展存储过程 */

判断列是否存在

if exists(select* from syscolumns whereid=object_id('表名') and name='列名')

altertable表名dropcolumn列名

判断列是否自增列

if columnproperty(object_id('table'),'col','IsIdentity')=1 print '自增列'

else

print '不是自增列'

SELECT* FROM sys.columns WHEREobject_id=OBJECT_ID('表名') AND is_identity=1

判断表中是否存在索引

if exists(select* from sysindexes whereid=object_id('表名') and name='索引名')

print '存在'

else

print '不存在

简短相当唯美的英语句子
简洁的优美句子(四)

1、happiness is when the desolated soul meets love。
幸福是孤寂的灵魂遭遇爱的邂逅。

2、who is able to be egotistical needs to be strong too。
有本事任性的人,也要有本事坚强。简短相当唯美的英语句子

3、if i was brave oute is not different。
如果当时我勇敢,结局是不是不一样。

4、you're here there is nothing i fear。
你就在我身旁,以至我全无畏惧。

5、event of a lightning bolt, i would mind a blank, hand, foot and weakness。
遇上晴天霹雳,我也会头脑空白,手足无力。

6、i would like now to seriously indifferent room of wonderful。简短相当唯美的英语句子
我只想现在过得精彩,无所谓好坏。

7、i tried to perfect to give up, is indeed very practical。
我试过完美放弃,的确很踏实。

8、i can not say i love you, i'm afraid you thought it was game。
我不敢先说我爱你,我怕你以为这是场游戏。

9、don't fear you forsake, just afraid of losing you。
不是怕你丢弃,10、don't surrender to this dark woeld。
别向这个混蛋的世界投降。

11、i am a little tempted, but so afraid to look in your eyes。
我对你有一点动心,却如此害怕看你的眼睛。

12、very need you, just like the dandelion need the breeze。
很需要你,就像蒲公英需要微风。

13、there's always that one song that brings back old memories。
总有那么一首歌,让你陷入深深的回忆。

14、life doesn't get easier, you just get stronger。
生活从未变得轻松,是你在一点一点变得坚强。

15、don't cross the bridge till you e to it。
既来之,则安之。

16、paper plane fly farther take away my heart。
纸飞机飞的再远带不走我的心情。

17、why is this once, only once in without you。
为什么又是这样的曾经,()只不过曾经里没有你。

18、love is not looking for a person to live with but find a life he had no。
爱情,不是找一个人一起生活,而是找一个没他就没生活的人。

19、very nice to me is a bit unhappy。
我很好 就是有些不开心。

20、when it has is lost, brave to give up。
当拥有已经是失去,就勇敢的放弃。

21、love, living things, is you let me know!
爱情,扯淡的东西,是你让我懂得。

22、if you don't travel around,you'd think this is the world。
如果你不走出去,你就会认为这就是世界。

23、if does not love, why do not e loose。
如若不爱,何必不散。

24、keep me in your memory, leave out all the rest。
把我放进你的记忆里,不要管其他的。

25、be sure than i am happy only been made in vain i am embarrassed to exit。
请一定要比我幸福 才不枉费我狼狈退出。

26、often appear in dreams, wake up you should see him。
梦里常出现的人,醒来就应该去见他。

27、love to have a long fingertips。
爱情能有多久 不过是弹指间的事。

28、feeble story, just making excuses。
苍白无力的述说,只是在狡辩而已。

29、pale words who can see this person's bitter。
苍白的文字有谁会看出这一个人的辛酸。

30、time will abandon those funny oath, until we also agree。
时间会摒弃那些滑稽的誓言,直至我们也苟同。

31、ing days would be long。 after all do not grow, grey-haired。
来日方长、终究长不到白发苍苍。

32、sometimes goodbye is the only way。
有时候,除了说再见,无路可走。

33、miss the songs have a one and alone with in。
怀念曾经的老歌 一首一首与孤单同在。

本文来源:http://www.guakaob.com/caijingleikaoshi/425752.html