人人都能查询数据库数据.docx_第1页
人人都能查询数据库数据.docx_第2页
人人都能查询数据库数据.docx_第3页
人人都能查询数据库数据.docx_第4页
人人都能查询数据库数据.docx_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

人人都能查询数据库数据一、数据库连接方式:1. Oracle客户端:只能用于连接oracle数据库(cmd)用户登录方式如下:管理员登录方式如下:在DOS界面同样可以做查询操作,但是显示不直观,故略。2. PL/SQL:只能用于连接Oracle数据库用户登录方式如下:管理员登录方式如下:3. DBvis:可连接多种常用的数据库(重点介绍)a) 工具共享路径:172.16.82.43b) 拷贝完工具后,直接选中应用程序运行即可c) 创建一个数据库连接此处注意一个问题,当JDBC下拉框中,驱动前没有绿色小勾证明此驱动不可用,DBVIS自带驱动文件,只要手工导入即可,导入方式如下:配置完后,录入数据库连接信息,连接成功后的界面如下(连接用户为default):二、 数据库语言的分类:1. 数据库定义语言(DDL):Create、Alter、Drop、Declarea) 如开发新增一张表、数据库管理员创建用户等;(创建和修改数据库对象)2. 数据库操纵语言(DML):Select、Delete、Update、Inserta) 如测试查询一张表、插入数据到表中等;(查询修改数据库中表内的数据)3. 数据库控制语言(DCL):Grant、Revoke、Commit、Rollbacka) 如数据库管理员对用户进行授权等;(配置执行数据库任务和控制数据库对象的安全性)由上描述可看出,在进行数据库查询数据时,主要使用的是DML,下面着重介绍DML中Select的使用。三、 常用SQL语句的介绍(以DBVIS为例):1. 创建数据库用户:a) create user cp1 identified by 1 default tablespace nnc_data01 temporary tablespace temp-创建一个数据库用户cp1b) grant connect,dba to cp1-为cp1这个用户授权2. 创建数据库表:a) create table xstable(code varchar(5) primary key,name varchar(20),age varchar(10)-创建数据库表xstable,其中包含code、name、age三个字段,code为主键3. 对已有数据库表进行修改:a) alter table xstable add school varchar(20)-为表上新增列,为xstable表新增school一列4. 删除数据库用户:a) drop user cp1 cascade-删除用户的所有数据5. declare:申明变量,多运用于存储过程/游标中6. 查询数据库表所有列:a) select * from xstable-查询xstable表中的所有列7. 向数据库表中插入数据:a) insert into xstable (code,name,age,school) values (41867,陈鹏,22,财经)-向xstable表中插入一条记录8. 修改数据库表中的某条数据:a) update xstable set name=陈大鹏 where code=41866-修改xstable表中的数据9. 删除数据库表中的某条数据:a) delete xstable where code=4186710. commit:提交,大部分SQL语句在执行后都需要提交11. rollback:回滚,事务执行错误时,进行回滚12. revoke connect,dba from cp1-收回用户的权限四、 DML-Select详细介绍(一):select * from md_table-万能的元数据表(NC产品中)在里面能找到大部分的单据表名和基础档案表名,寻找方式如下:如想找到凭证相关的表:select id,displayname from md_table where displayname like %凭证%id,displayname为列名,like%凭证%的意思是查询出displayname字段中包含凭证的所有记录,如下:下面以NC系统中的总账凭证的数据在数据库中的查询为例:1. Select * from gl_voucher-查询出的是凭证查询结果共16条记录,意味着在NC总账系统中有16条对应的记录可查询出来只有15条,通过数据库数据可看到,其中最后一条数据是来自期初,所以总数是对的。2. 如果想查询现有的凭证都录在哪个期间内的话,可以这样:select distinct period from gl_voucher-其中distinct字段是将重复记录过滤掉下面我们将加distinct和不加的两种结果进行比较:不加:加上:结果显而易见,这是distinct的用法。3. 用Select进行查询的时候,如何按一定要求查询出数据,我们常常用where+查询条件来实现,如我想查询其中某一个账簿中的数据,如下:select * from gl_voucher where pk_accountingbook=1001CC1000000000016F-查询时查询条件where的用法那么查询的结果就是只会把财务核算账簿主键为1001CC1000000000016F这个的凭证查询出来,结果如下:对应11条,包含期初。4. And or 的用法:在查询出某账簿之后,还想根据凭证的发生额进行过滤,那么可以进行如下操作:select * from gl_voucher where pk_accountingbook=1001CC1000000000016F and totalcredit5000 or (totalcredit100 and totalcredit500)-查询某账簿且贷方发生大于5000或者在100到500之间的凭证,查询结果如下:5. In的用法:对查询条件的补充,针对某个查询条件的多个值,如想根据凭证的摘要进行查询,查询摘要为欠钱、还钱、捡钱的凭证,操作如下:6. Between and的用法:对查询条件的补充,针对某个查询条件的某一范围,想查询2014-01-23到2014-01-24这之间新增的凭证,操作如下:Select * from gl_voucher where creationtime between 2014-01-23 and 2014-01-24-查询的是创建时间在2014-1-23和2014-1-24之间的凭证,结果如下:7. Like的用法:对查询条件的补充,针对某个查询条件的模糊匹配,在之前说到的在md_table中查询出凭证相关的表,select id,displayname from md_table where displayname like %凭证%,这就是like的用法。以上是查询数据库表后,数据的直接展示,下面在看看如何间接展示数据库中的数据。五、 DML-Select详细介绍(二)1. Order by的用法:在查询数据时,如果希望某一列数值型数据进行升降序排序的话,操作如下:Select * from gl_voucher order by totalcredit ASC(升)/DESC(降)-即按贷方排序,查询结果如下:2. Sum函数的用法:NC系统中有许多账表,如何将明细数据与账表进行核对,以凭证和科目余额表为例,希望查询出某一账簿库存现金的1月份发生合计,操作如下:Select sum(debitamount) from gl_detail where pk_accountingbook=1001CC1000000000016F and periodv=01 and accountcode=1001SQL的条件与NC查询的条件是一致的,如accountcode=1001为会计科目编码为1001,pk_accountingbook=1001CC1000000000016F为财务核算账簿pk为1001CC1000000000016F, periodv=01为会计期间为01,查询结果如下:查询NC系统得到的结果如下:3. Count函数的用法:计数处理,如需要查共有凭证多少张,可进行如下操作:Select count(pk_voucher) from gl_voucher where period0而后面的period00这个意思是期间条件不等于0,也就是过滤了期初,查询结果如下:4. Group by的用法:如果想按期间分别查询某科目的借方合计数,可以进行如下操作:Select periodv,sum(debitamount) from gl_detail where accountcode=1001 and pk_accountingbook=1001CC1000000000016F group by period对上述语句进行解析,可以看出,最后展示的是两个字段,而借方合计数是根据期间显示的,查询结果如下:意思是00期间200,01期间1596,02期间78987,03期间32。5. Having函数的用法:在Group by 的基础上,再对数据进行筛选,如我想删选出借方合计大于1500的数据,可以进行如下操作:Select periodv,sum(debitamount) from gl_detail where accountcode=1001 and pk_accountingbook=1001CC1000000000016F group by periodv having sum(debitamount)1500是对上结果的再次筛选,查询结果如下:6. 联合两张表同时查询:之前说的都是一张表内的数据进行查询,那么如果想同时查询两张表的数据,该如何处理,下面我们以gl_voucher和gl_detail这两张表为例,分别是凭证和凭证明细表不难找出,凭证表的主键pk_voucher,在凭证明细表里也有这一字段,那么我们就可以通过这一字段将两张表进行关联比如,现在我想查凭证表头的主键、流水号和表体的科目编码、借贷方发生的话,可以进行如下操作:select gl_voucher.pk_voucher,gl_voucher.num,gl_detail.accountcode,gl_detail.cre

温馨提示

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

评论

0/150

提交评论