热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

SQL语法总结

1.按条件读取字段,定义某个字段只取规定的几个值,或一个值selectos.*fromblis_ordero,blis_orderserviceoswhereo.orderid=os.orderidando.ordertypeidnotin(4,8,10,11)ando.stat

  1.按条件读取字段, 定义某个字段只取规定的几个值,或一个值

  select os.* from blis_order o,blis_orderservice os where o.orderid=os.orderid and o.ordertypeid not in (4, 8, 10, 11) and o.status in ('New','Accepted','Pending-approval','Pending-effective','Pending-correction') and snp.status='Active' and b.entityid=1

  2.去掉重复(互异)的字段distinct

  select distinct op.name,op. from blis_chargeactivation ca,blis_orderparameter op where op.mastertype='charge' and ca.chargeactivatiOnid=op.masterid and ca.parentcode like '%NBR Storage Charge%'

  3.某个字段不可为null

  select os.orderserviceid,os.orderofferid,o.ordertypeid,o.status from Blis_Order o, Blis_Orderservice os where o.orderid=os.orderid and os.orderofferid is not null

  4.删除满足某个条件的记录

  delete from blis_bstoffermigplan bsf where bsf.keyid='110206'

  5.取name_a字段,放入字段别名name_b

  select bsf.keyid subcode,bsf.bstoffermigplanid from blis_bstoffermigplan bsf

  这里取的是keyid字段, 显示的为subcode字段。

  6.connection rollback commit

  rollback 就是把在内存中做的行为取消,不持久化到数据库中,commit就是把内存中做的行为持久化到数据库中。

  7. 在Oracle中使用Dual, Dual是Oracle一个特有的虚拟表, Oracle中很多系统的sequence(序列),sequence一般和表建立了一一对应关系,但是要编程插入的话,必须手工指定,比如增加条account数据,相应的值插入SEQ_ACCOUNT.nextval,变量和函数都可以通过Dual中获得

  S: select getdate();

  O: select sysdate from dual;

  select SEQ_INTEGRATIONTASK.NEXTVAL from DUAL

  8.(PK)主键(PK) (for database)

  9.排序(数字,字母由大到小)

  select bsf.* from blis_bstoffermigplan bsf order by bsf.ordertypeid desc

  10.插入一条记录

  insert into blis_bstoffermigplan (bstoffermigplanid, entityid, keyid, subioncode, ordertypeid, type, templatecode, currencycode, exceptioncount, lastexception, att1, att2, att3,att4,att5,offercode, status, createdby, creationdate, lastmodifiedby, lastmodifieddate) values (seq_bstoffermigplan.nextval, ?, ?, ?, ?, ?,?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?,sysdate, ?, sysdate)

  11,更新一条记录

  update offermigplan.db_table_name set entityid=?,keyid=?,subiOncode=?,ordertypeid=?,type=?,templatecode=?,currencycode=?,exceptiOncount=?,lastexception=?,att1=?,att2=?,att3=?,att4=?,att5=?,offercode=?,status=?,createdby=?,lastmodifiedby=?,lastmodifieddate=sysdate where bstoffermigplanid=?

  12.插入数据量比较大的类型clob

  13.查询日期

  下列两条语句功能相同

  select * from blis_account acc where to_char(acc.lastmodifieddate,'YYYYMMDD')>'20050101'

  select * from blis_account acc where acc.lastmodifieddate>to_date('2005-01-01','yyyy-mm-dd')

  14找出根据某个字段中的值重复的记录

  比如找出chargeactivationid 有相同值的blis_usageaccess记录

  select * from blis_usageaccess where chargeactivationid in (select chargeactivationid from blis_usageaccess group by chargeactivationid having count(*) >1)

  USAGEACCESSID CHARGEACTIVATIONID SERVICEACCESSCODE

  292518 148701 AUDIO-BROADCAST@

  292517 148701 VOIP@

  292516 148701 CALLIN-DID@

  292515 148701 CALLBACK-INTL@

  292512 148701 CALLIN@

  292513 148701 CALLIN-TOLLFREE@

  292514 148701 CALLBACK@

  292478 147945 AUDIO-BROADCAST@

  292477 147945 VOIP@

  292475 147945 CALLBACK-INTL@

  292476 147945 CALLIN-DID@

  292472 147945 CALLIN@

  15.通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值

  select nvl(ob.bookingvalue,0) bookingvalue from blis_order o, blis_orderbooking ob where o.orderid=ob.orderid and o.orderid =125034 and ob.bookingtypeid = 215 and ob.status = 'Active'

  这里关心nvl的用法,nvl(arg,value)代表如果前面的arg的值为null那么返回的值为后面的value

  16.知道一个column的名字,但不清楚它属于哪张table时,可以使用

  select * from user_col_comments ucc where ucc.column_name = 'column_name'

  比如: select * from user_col_comments ucc where ucc.column_name = ‘ORDERID’ 就会查出一系列有ORDERID字段的表。

  17.遍历两字段排列

  select (pf.offername || ' '|| cur.name) offercode from blis_packageoffer pf,blis_currency cur where cur.status='Active' and pf.status='Active'

  结果如下:

  offercode

  a1 b1

  a1 b2

  a2 b1

  a2 b2

  18.条件判断

  case when pc.provisiOningby= 'BPS' then 'True'

  else 'False' end

  select sos.Sosorderserviceid, st.sosprovisionticketid,

  (case when pc.provisiOningby= 'BPS' then 'True'

  else 'False' end) isConnector

  from blis_sosprovisionticket st, blis_sosorderform sof,

  blis_sosorderservice sos, blis_packagecomponent pc

  where sof.sosorderformid = sos.sosorderformid

  and sos.sosorderserviceid = st.sosorderserviceid

  and sos.status = 'Active' and st.status = 'Active'

  and pc.tagname(+) = st.servicetag and pc.provisioningby

  and sof.sosorderformid = 104789

  19. pc.tagname(+) =st.servicetag

  当pc.tagname存在值,st.servicetag不存在值的话,记录也可以检索出来。

  20.让表可以手工编辑

  select rowid,st.* from blis_sosprovisionticket st where st.sosprovisiOnticketid=102508

  用classes12.zip 还是会抛出classNotFoundException:oracle.jdbc.driver.OracleDriver,换用class12.jar就正常了,classes12.zip 或class12.jar是JDBC oracle驱动类

  创建数据库:

  查看所有表: select * from dba_all_tables

  查看所有用户: select * from all_users

  查看所有DBA用户:select * from dba_users

  创建role :create role BLIS_ADMIN_ROLE;

  创建新用户:create user username identified by password

  授予表空间使用权:grant resource to username

  授予创建表权限:grant create table to username

  授予连接数据库的权限:grant create session to username

  查看所有表空间: select * from dba_tablespaces

  把任何表授予某用户: grant create any table to BLIS_ADMIN_ROLE;

  授予某用户检索功能:grant create any index to BLIS_ADMIN_ROLE;

  授予某用户对某表有检索,插入,更新,删除功能:grant select, insert, update, delete on BLIS_ACCAGENCYCOMMISSION to BLIS_ADMIN_ROLE;

  导出数据库:比如: exp blis/blis@dbls full=y file=d:1.dmp

  连接ORACLE数据库的字符串格式是

  jdbc:oracle:thin:@主机:端口:SID

  注意是SID 而不是数据库名

  SID不对的话会抛出异常:java.sql.SQLException: Io 异常: Connection refused(DEION=(TMP=)(VSNNUM=153092352)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(

 


推荐阅读
  • 本文介绍了如何使用Power Design(PD)和SQL Server进行数据库反向工程的方法。通过创建数据源、选择要反向工程的数据表,PD可以生成物理模型,进而生成所需的概念模型。该方法适用于SQL Server数据库,对于其他数据库是否适用尚不确定。详细步骤和操作说明可参考本文内容。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了通过mysql命令查看mysql的安装路径的方法,提供了相应的sql语句,并希望对读者有参考价值。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
author-avatar
毛残品_394
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有