精华内容
下载资源
问答
  • ORACLE 查询

    千次阅读 2019-04-04 16:22:24
    查询作为SQL语言中作重要的组成部分,其作用也是巨大的。一个完整的select语句由select … from …组成。而这个基础的语句可以扩充为: Select … From … Where … (Group by) … Having(where) … Order by… ...

    查询作为SQL语言中作重要的组成部分,其作用也是巨大的。一个完整的select语句由select … from …组成。而这个基础的语句可以扩充为:

    Select … From … Where … (Group by) … Having(where) … Order by…
    

    下面举个最简单的例子:在这里插入图片描述

    得到的查询结果: 在这里插入图片描述

    可以将通配符*换成student表中你需要的字段,如SNO,SNAME,从而得到自己想要的结果。可有时候我们需要的数据不仅仅来源于一张表,这个时候就要进行连表查询。而表格的连接方式又分为很多种:

    • 等值连接(也称为内连接,以两边中相同的字段作为连接条件
    • 非等值连接(范围筛选连接条件)
    • 外连接(使用外连接来查询不满足连接条件的数据)
    • 自连接(本表与本表存在相关联的字段)
    • 叉集(笛卡尔积)
    • 自然连接(以两个表中具有相同名字的列为条件创建等值连接。)

    在表格的连接过程中可能会出现很多问题,首先就是笛卡尔积。笛卡尔积的形成是由于在连表的时候未写连接条件,而导致两表的数据进行一对多随意连接,造成大量甚至是巨量的数据冗余,从而对数据库带来极大的负担。所以在进行连表时一定要注意连接条件的使用,尽量避免笛卡尔积的出现。

    连表时可以使用where来建立连接条件:在这里插入图片描述

    也可以使用on来建立连接条件:在这里插入图片描述

    有些表名冗长难写,这个时候就可以使用别名来简化查询。在不同表中具有相同列名的列可以用表的别名加以区分。使用表名前缀可以提高执行效率。

    有时候我们需要的数据不满足表的连接条件,就得不到想要的结果,例如上面查询的结果为:
    在这里插入图片描述

    有四名同学的信息,可我们又想查询到所有学生,就算没有成绩也可以,这个时候就需要用到外连接,外连接同样针对whereon各有各的写法:

    Oracle SQL语法(where): 在这里插入图片描述

    SQL 1999语法(on): 在这里插入图片描述

    外连接的表格会查询出该表的所有数据,就算不满足连接条件也会查询出来,而不满足的其他表的列值为空。这个时候得到的查询结果为:
    在这里插入图片描述

    Oracle SQL语法与SQL 1999语法都是可用的,不必过分纠结两者的区别,灵活运用也可以提高查询效率。

    为了满足更复杂的要求,在写查询语句的时候可以运用子查询来满足需求,并且简化查询。在查询语句中如果有子查询的存在,那么SQL语句会先执行子查询,再执行外查询,这也印证了“子查询的结果作为外查询的条件”

    如题:查询张三所在班级的所有学生信息。那我们需要先查询出“张三”所在的班级:
    在这里插入图片描述在这里插入图片描述

    然后再根据班级来查询该班的学生信息:
    在这里插入图片描述在这里插入图片描述

    这样要写两个查询语句才能得到结果,但是我们可以发现,第一个查询语句的结果,就是第二个查询语句的条件,那么我们就可以使用子查询来简化它:
    在这里插入图片描述

    这样写得到的结果与前面分两个查询语句写是相同的。

    除了连表以外,还有一个需就是函数的使用。函数可以根据函数本身的功能来对数据进行操作,也可以对数据的类型进行转换。而函数之间也是可以嵌套使用的,就相当于外查询嵌套子查询,内部的函数结果作为外部函数的参数。
    在这里插入图片描述

    最后得到的结果就是将first_name和last_name转换成大写后拼接起来:
    在这里插入图片描述

    函数的使用中还需要注意的就是分组函数,分组函数能处理多条数据并且返回一个值,需要使用group by子句进行分组以及having子句进行筛选。
    在这里插入图片描述
    在这里插入图片描述

    当我们在最终的查询结果出来之后,就可以对其进行排序的操作,这个时候就引入了一个新的语法——ROWNUM(伪列)。顾名思义,伪列就是一个虚拟的列,它可以为当前数据进行标号,效果如下:

    在这里插入图片描述
    在这里插入图片描述

    有伪列之后就可以通过为例进行数据的筛选和排序,但有一点要注意的是,由于Oracle的执行顺序中order by 子句是最后执行的,而伪列是在select 子句中执行,所以在使用伪列的同时又使用了order by 子句,那么伪列原本的顺序将会被打乱,这个时候再使用where 子句对伪列进行数据筛选的时候得到的结果就是错误的:

    在这里插入图片描述
    在这里插入图片描述

    所以我们在使用伪列的过程中一定要注意Oracle的执行顺序,上面的问题可以使用子查询来解决为:
    在这里插入图片描述
    那么得到的结果就是正确的:
    在这里插入图片描述

    Oracle SQL语句的执行顺序为:
    1. from 语句
    2. where/on 语句(连接条件)
    3. where
    4. group by 语句
    5. having 语句
    6. select 语句
    7. union、minus、intersect等
    8. order by

    展开全文
  • Oracle查询语句大全-精华版

    热门讨论 2013-08-05 23:53:44
    Oracle查询语句大全,这个主要适合新人或者转数据库的人做字典型查询
  • oracle查询和Mysql查询

    千次阅读 2016-08-26 11:48:36
    oracle查询 to_char把查询出来的数字类型结果转换为字符串类型 select * from CHK_YWCFSC where ywglsxh=( select to_char(dyzlsxh ) from yz_dyzl where grsxh='462323' ) 在Oracle使用sql语句中如何插入日期...

    oracle查询

    to_char把查询出来的数字类型结果转换为字符串类型

     select * from CHK_YWCFSC where ywglsxh=( select to_char(dyzlsxh ) from yz_dyzl where  grsxh='462323' )

    在Oracle使用sql语句中如何插入日期格式的数据

    update yz_shiyeryzl set jbrq=to_date('2014-7-12','yyyy-mm-dd') where grsxh='251456'

     

    oracle限制查询条数-rownum对于大于某值的查询条件

    select * from(select rownum no ,id,name from student) where no>2;

     

    oracle使用“||”来拼接字符串:

    select '拼接'||'字符串' as Str from student;

     

    Mysql查询

    mysql中Date和String的互相转换

    1.Date  ——>  String
        使用的函数:DATE_FORMAT(date,format)     date:需要转换的日期       format:格式化的样式
       format样式整理:
            年:  %Y  显示四位 : 2015            %y    只显示后两位  :15
            月:  %M 月份的英文显示:October %m  月份的阿拉伯显示:01-12  %b 月份的英文缩略显示:Oct  %c  月份的阿拉伯显示:1-12
            日:  %d 阿拉伯显示:00-31        %D 带有英文后缀:1st-31th     %e 阿拉伯显示:1-31          %j   年的天:001-366   
            时:  %H :00-23           %h:01-12        %I:01-12      %k:0-23      %l:1-12
            分:   %i:00-59
            秒:   %S:00-59        %s:00-59
            微妙: %f
            AM/PM:%p
            12小时制时间:%r:   02:02:44 PM
            24小时制时间: %T:  14:02:44
             周: %W:周的英文显示      %w 周的阿拉伯显示 :0(星期日)-6(星期六)  %a   周的英文缩略显示:Mon-

        eg:DATE_FORMAT(now(),"%Y-%m-%d %T")   2015-09-01 17:10:52
             DATE_FORMAT(now(),"%Y-%m-%d %H:%i:%s %p")     2015-09-01 17:10:52 PM

    2.String ——>Date
         使用的函数:STR_TO_DATE(str,format)       str:字符形式的日期       format:格式化样式

      eg:   STR_TO_DATE('1992-04-12',"%Y-%m-%d")   输出:1992-04-12(日期形式)

    insert into special_task(name,insert_time,start_time) VALUES('周南',now(),STR_TO_DATE('20190401000000',"%Y%m%d%H%i%s"));

    展开全文
  • Oracle查询CLOB

    万次阅读 2018-11-29 09:55:54
    Oracle查询CLOB类型字段的内容: (1)数据长度<4000时,查询CLOB类型的数据: select dbms_lob.substr(字段名) as 别名 from 表名----别名必须写 或者 select to_char(字段名) as 别名 from 表名-----别名...

    Oracle查询CLOB类型字段的内容:
    (1)数据长度<4000时,查询CLOB类型的数据:
    select dbms_lob.substr(字段名) as 别名 from 表名----别名必须写
    或者 select to_char(字段名) as 别名 from 表名-----别名必须写,作为函数的结果
    (2)数据长度>4000时,查询CLOB类型的数据:

    <resultMap type="com.cnpc.oms2.mobile.server.pojo.news.RuleRegulationMobile" id="viewResultMap">
    	    <result column="KEY_WORD" property="keyWord" jdbcType="VARCHAR" />   
    	    <result column="CONTRIBUTE_PERSON" property="contributePerson" jdbcType="VARCHAR" />
    	    <result column="ISSUED_NUMBER" property="issuedNumber" jdbcType="VARCHAR" />
    	    <result column="ATTACHMENT_PATH" property="attachmentPath" jdbcType="VARCHAR" />
    </resultMap>
    <select id="selectOne" resultMap="viewResultMap" parameterType="hashmap">
    	select 				KEY_WORD,
    					CONTRIBUTE_PERSON,
    					ISSUED_NUMBER,
    					ATTACHMENT_PATH,
    					CONTENT 		<!-- content是clob类型 -->
    		from 表名
    </select>
    
    展开全文
  • Oracle查询所有序列

    千次阅读 2019-02-11 14:23:58
    Oracle查询所有序列
                   
    --查看当前用户的所有序列select SEQUENCE_OWNER,SEQUENCE_NAME from dba_sequences where sequence_owner='用户名';--查询当前用户的序列总数select count(*) from dba_sequences where sequence_owner='用户名';--示例:select SEQUENCE_OWNER,SEQUENCE_NAME from dba_sequences where sequence_owner=’WGB;select count(*) from dba_sequences where sequence_owner=’ WGB’;SQL> select SEQUENCE_OWNER,SEQUENCE_NAME from dba_sequences  2  where sequence_owner='WGB';SEQUENCE_OWNER                 SEQUENCE_NAME------------------------------ ------------------------------WGB                            SEQ_FOR_TESTWGB                            SEQ_WGB_ADMINWGB                            SEQ_WGB_COMMONWGB                            SEQ_WGB_COMMONSWGB                            SEQ_WGB_CONTACTORWGB                            SEQ_WGB_FACESWGB                            SEQ_WGB_MEMBERWGB                            SEQ_WGB_MESSAGEWGB                            SEQ_WGB_MONEY_USER已选择9行。SQL> select count(*) from dba_sequences where sequence_owner='WGB';  COUNT(*)----------         9



    注意事项:

    1.      必须以管理员身份登录;

    2.      sequence_owner必须为大写,不管你的用户名是否大写。只有大写才能识别。


    参考资料:

    http://zhidao.baidu.com/question/140904731





               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • oracle查询字段信息

    千次阅读 2019-04-11 20:54:49
    oracle查询字段信息 select A.COLUMN_NAME, A.DATA_TYPE, A.data_length , A.nullable, A.tablespace_name, from user_tab_columns A where table_name = ‘T_EMPLOYEE’; 表名称必须大写 所有table的注释 select * ...
  • Oracle查询优化改写 技巧与案例.pdf

    热门讨论 2016-04-27 15:41:48
    Oracle查询优化改写 技巧与案例.pdf
  • Oracle查询用户所有表

    万次阅读 2015-03-25 09:24:33
    Oracle查询用户所有表 ...下面为您介绍的语句用于实现Oracle查询用户所有表,如果您对oracle 查询方面感兴趣的话,不妨一看。 www.2cto.com     select * from all_tab_comments --
  • python下连接Oracle查询乱码

    千次阅读 2016-08-31 17:40:54
    Python连接Oracle查询乱码
  • ORACLE 查询BLOB字段转换字符串格式

    千次阅读 2018-12-26 16:53:16
    ORACLE 查询BLOB字段转换字符串格式@ORACLE 查询BLOB字段转换字符串格式 ORACLE 查询BLOB字段转换字符串格式 脑壳疼,BLOB字段怎么能够直接查询出来呀! 废话不多说,直接上代码… select utl_raw.cast_to_varchar2...
  • ORACLE 查询SQL执行时间

    千次阅读 2020-01-18 14:07:28
    ORACLE 查询SQL执行时间: SELECT C.sample_time 执行时间, A.ELAPSED_TIME_DELTA / 1000000 "执行耗时(S)", B.sql_text SQL文本, to_char(SUBSTR(B.sql_text,1,400)) SQL文本截取 FROM dba_hist_sqlstat A LEFT ...
  • 个人总结-oracle查询锁表、解锁语句

    万次阅读 2018-11-29 16:59:10
    oracle查询锁表解锁语句 –首先要用dba权限的用户登录,建议用system,然后直接看sql吧 1. 如下语句 查询锁定的表. SELECT L.SESSION_ID SID, S.SERIAL#, L.LOCKED_MODE, L.ORACLE_USERNAME, L.OS_...
  • oracle查询sql执行时间

    千次阅读 2017-05-26 10:30:47
    oracle查询sql执行时间 描述:在性能优化方面有时间需要得到不同sql语句执行的时间,来进行执行时间的定量对比。 方法: SQL> set timing on SQL> select * from tab; TNAME TABTYPE CLUSTERID ---------------...
  • oracle查询数据顺序问题

    千次阅读 2018-12-29 15:41:37
    oracle查询数据顺序问题 [问题点数:20分,结帖人gingkoc] 收藏帖子 回复 gingkoc 结帖率 50% 在不动表数据的情况下,同一句sql每次查询的数据顺序是否是一致的? 问题点数:20分  0 2016-08-31 11:21:...
  • Oracle查询前多少条记录的方法

    千次阅读 2017-11-20 09:53:48
    Oracle查询前几条数据
  • oracle查询用户全部表记录数

    千次阅读 2018-11-06 08:18:18
    oracle查询用户全部表记录数
  • Oracle 查询视图

    千次阅读 2019-03-18 21:48:18
    视图的查询:视图创建成果后,可以从视图中检索数据,这点和从表中检索数据一样。 还可以查询视图的全部信息和指定的数据行和列。 SELECT * FROM salvu50; desc 视图名称 查询表结构与视图结构写法一致,如下所示: ...
  • Oracle 查询表字段和注释声明:Oracle查询字段注释和字段时,表名都必须大写---查询表的名称,字段信息以及字段注释select ut.COLUMN_NAME,--字段名称 uc.comments,--字段注释 ut.DATA_TYPE,--字典类型 ut....
  • Oracle查询所有序列 oracle sql语句大全 oracle中如何创建表的自增ID(通过序列)
  • oracle查询多列时对单列去重

    千次阅读 2019-04-11 17:45:30
    oracle查询多列时对单列去重 最近有一个查询,需要针对查询结果中的某一列进行去重,而又要得到想要的其他列。一开始就想到distinct去重,但是distinct去重的话针对查询结果为单列时有效,如果查询的结果包括多列...
  • Oracle查询某一列的重复部分

    千次阅读 2017-03-17 09:46:36
    Oracle 查询某一列的重复部分
  • Oracle查询数据库中所有表的记录数

    万次阅读 2018-12-05 15:31:31
    Oracle查询数据库中所有表的记录数 查询库中的表名和表中记录数: SELECT T.TABLE_NAME, T.NUM_ROWS FROM USER_TABLES T; 查询库中记录总数: SELECT SUM(A.NUM_ROWS) FROM (SELECT T.TABLE_NAME, T.NUM_ROWS ...
  • oracle查询对某个字段进行去重处理

    万次阅读 2019-08-21 10:10:21
    oracle查询对某个字段进行去重处理需要使用distinct函数 比如从A表查询aa字段和bb字段,然后对aa字段进行去重,查询语句如下: SELECT distinct(a.aa) as aa,a.bb as bb FROM A a 提示:去重的字段必须放在第一...
  • oracle查询字段是否含有中文

    千次阅读 2018-11-12 09:58:57
    1、 SELECT distinct F_HTZZRQ FROM HR_USERS_COMMON WHERE F_HTZZRQ LIKE '%[吖-座]%' 2、首字 SELECT distinct F_HTZZRQ FROM HR_USERS_COMMON WHERE ascii(F_...sql-oracle查询某字段中不包含汉字的记录? ...
  • 原因:没办法起一个望名知意的表名,...Oracle 查询当前数据库获得 所有表名+表名注释 SELECT a.TABLE_NAME,b.COMMENTS FROM user_tables a,user_tab_comments b WHERE a.TABLE_NAME=b.TABLE_NAME ORDER ...
  • oracle 查询某用户某段时间内历史SQL --如查询test用户2018年8月6号18~20点之间执行过的SQL   with his as ( select sql_id, sql_exec_start,user_id from dba_hist_active_sess_history t where user_id = ...
  • Oracle 查询日期显示年月日时分秒格式
  • oracle查询最近7天数据没有展示0

    万次阅读 2017-03-23 13:26:43
    oracle查询最近7天数据没有展示0
  • SQL> select username from dba_...下面为您介绍的语句用于实现Oracle查询用户所有表,如果您对oracle查询方面感兴趣的话,不妨一看。 select * from all_tab_comments -- 查询所有用户的表,视图等 select * from u
  • Oracle查询结果集超过100M,超过后的数据怎么也一起查询出来?我要查询的数据大约有100万条左右 有没有办法一次性查出来 我现在是用rownum分段查询,可是这样太慢了,已经过了1个多小时了,还没查询完

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 525,001
精华内容 210,000
关键字:

oracle查询