`

Oracle_学习使用SQL语句二

阅读更多
一、like操作符
 
    like操作符用于执行模糊查询,当执行查询操作时,如果不能完全确定某些信息的查询条件,但这些信息又具有某些特征,那么可以使用模糊查询,当执行模糊查询时,需要使用通配符"%"和"_",其中"%"(百分号)用于表示0个或多个字符,"_"(下划线)用于表示一个字符,如果要将"%"、"_"、"'"、"&"做为查询条件时,那么需要通过escape对"%"、"_"进行转义或通过ASCII编码进行转义,而"&"则通过ASCII编码或"||"将查询的字符进行拼接,"'"则通过ASCII编码或通过''替换'进行转义,下面实例说明使用like操作符的方法:
1、查询首字符为"a"的所有员工姓名的信息:
    
select * from temps where name like "a%";

2、查询第三个字符为大写"A"的所有员工姓名的信息:
    
select * from temps where name like "__A%";

二、Oracle转义符
1、对"&"进行转义,update、insert、select操作均需要进行转移,但是不能通过转义字符查找,可以通过ASCII编码或"||"将查询字符拼接进行查询,例如:
update temps set name='myjsp?page=1'|| '&' ||'page=10'  where id=27;
update temps set name='index.do?page=1' || chr(38) || 'page=10' where id=88;
select * from temps where name like '%'||chr(38)||'%';
select *from  temps where name like '%.do%' ||chr(38)|| '%';

   2、对"-"进行转义,insert、update操作可以不需要转义,但是select操作需要通过escape或通过ASCII进行转义,例如:
update temps set name='index.do_1' where id=28;
select * from temps where name like 'a=_%' escape '=';
select * from temps where name like 'a__%' escape '_';
select * from temps where name like '__/_%' escape '/';
select * from temps where name like '%\_%' escape '\';
----查询带有--字符并且以ab开始的记录的记录
select * from temps where name like 'ab=_=_%' escape '=';
select * from temps where name like '%\_\_%' escape '\';

3、对"%"进行转义,insert、update操作可以不需要转义,但是select操作需要通过escape或通过ASCII进行转义,例如:
update temps set name='index.do%' where id=100;
--查询带有%字符的记录
select * from temps where name like '%\%%' escape '\';
select * from cip_temps where name like 'index.do=%%' escape '=';
---查询带有%%字符的记录
select * from temps where name like 'index.do\%\%%' escape '\';
select * from temps where name like '%/%/%%' escape '/';
select * from temps where name like '%=%=%%' escape '=';
select * from temps where name like '%'%';

3、对"'"进行转义,insert、update操作可以不需要转义,但是select操作需要通过 ''替换'或通过ASCII进行转义,例如:
--用两个''代替'。
update temps set name='index''99' where id=67;
--用ascii码
select * from cip_temps where name like '%'||chr(39)||'%';
三、in操作符
IN操作符用于执行列表匹配操作,当列或表达式结果匹配于IN列表中的任意一个值时,则返回true。例如:
select * from temps where name in('aa','bb','cc');

四、is null操作符
is null 操作符用于检测列或表达式结果是否为null,如果结果为null则返回true,否则返回false,例如:
select * from temps where name is null;

当于null进行进行比较时,不能使用"="、'<>'等逻辑操作符进行比较,尽管使用他们进行比较不会报错,但是条件子句返回总是false。例如:
select * from temps where name = null;
结果是没有查询出记录。

五、order by子句
  在执行查询操作时,经常对查询的结果进行排序,以显示更直观的数据,数据排序是使用order by子句来实现的,其语法是:
SELECT "栏位名" FROM "表格名" [WHERE "条件"]ORDER BY "栏位名" [ASC, DESC]

主意:当select语句中同是包含多个子句(where、group by、having、order by等)时,order by必须是最后一条子句。
1、升序排序
  默认情况下,当使用order by执行排序操作时,数据以升序方式排序,也可以在排序列后制定ASC关键字。例如:
select * form order by id[asc]


注意:当执行升序排序时,如果排序列包含null值,那么null会显示在最后面,Oracle在Order by 时缺省认为null是最大值。

2、降序排序
当使用order by 子句进行排序操作时,如果进行降序排序操作,则必须制定desc关键字。例如:
select * form order by id desc


注意:当执行降序排序时,如果排序列包含null值,那么null会显示在最前面,Oracle在Order by 时缺省认为null是最大值

3、使用多列排序
当使用order by子句进行排序操作时,不仅可以基于单列或单个表达式进行排序,也可以基于多个列或多个表达式进行排序,当基于多个列或多个表达式进行排序操作时,首先按照第一列或表达式进行排序,当第一列或表达式存在相同数据时,然后以第二列或表达式进行排序操作,以此类推.....,例如:
select *from temps order by age asc,name desc;

4、使用非选择列进行排序
可以使用没有必须显示的列或表达式进行排序,例如:
select age from temps order by name desc;

5、使用列别名进行排序
如果为列或表达式定义了别名,那么进行排序操作时,可以通过别名进行排序,例如:
select name as "姓名" from cip_temps order by "姓名";

6、根据列位置编号进行排序
可以按照列或表达式在选择列表中的位置进行排序,例如:
select name,age from temps order by 2 desc;
分享到:
评论
1 楼 welody 2009-11-06  
is null 操作符可以选定 某字段为null 的记录
is not null 操作符可以选定 某字段不为null 的记录

相关推荐

    ORACLE__SQL语句教学

    ORACLE__SQL语句教学 ORACLE__SQL语句教学

    oracle_V$SQLAREA_.rar_oracle_oracle V$sqlarea

    在Oracle数据库系统中,`V$SQLAREA` 是一个非常重要的动态性能视图,它提供了关于解析、编译和执行的SQL语句的详细信息。这个视图是DBA和性能调优专家用来监控和分析SQL性能的关键工具。标题中的"oracle_V$SQLAREA_....

    ORACLE__SQL语句教学(附有sql最常用经典语句)

    本资源"ORACLE__SQL语句教学(附有sql最常用经典语句)"显然是一个针对Oracle SQL的深入学习资料,旨在帮助数据库编程者提升技能,成为真正的高手。 首先,让我们来看看SQL的基本概念。SQL是一种用于管理关系型...

    Oracle Sql语句转换成Mysql Sql语句

    在使用这个工具时,开发者需要确保源代码中的SQL语句是标准的Oracle SQL格式,避免使用特定Oracle数据库的特性,以提高转换的成功率。同时,转换后还需要对生成的MySQL SQL进行测试,确保在目标数据库环境中能正常...

    oracle_commond.rar_odbc api_oracle_oracle 客户端_oracle sql_sql

    在"oracle常用命令集.sql"中,可能包含了如DML(INSERT、UPDATE、DELETE)语句,DDL(CREATE、ALTER、DROP)语句,以及查询优化技巧,例如使用索引、子查询、联接操作等。 4. 数据库操作实例 描述中的"oracle常用...

    Oracle_PL-SQL.rar_ORACLE PL_oracle_oracle sql_oracle 教程_pl sql

    5. **存储过程和函数**:存储过程是一组预编译的PL/SQL语句,可以在数据库中存储并重复调用,而函数则返回一个值,两者都是数据库模块化设计的基础。 6. **触发器**:触发器是一种特殊的存储过程,会在特定的数据库...

    SQL(oracle).rar_oracle_oracle sql_oracle 总结_pl sql_sql

    本资料包"SQL(oracle).rar"显然是针对Oracle数据库系统,特别是其SQL语法和PL/SQL编程的深入学习总结。 首先,Oracle SQL与标准SQL略有不同,它包含了一些特定于Oracle的功能,如子查询、连接操作、游标、函数和...

    oracle_dynamic_sql.rar_Dynamic SQL ORAC_oracle_oracle dynam_orac

    在Oracle中,动态SQL是一种重要的编程技术,尤其在处理不确定或在运行时才能确定的SQL语句时,它显得尤为关键。本文将深入探讨动态SQL的使用及其在级联删除中的应用。 首先,让我们理解什么是动态SQL。在静态SQL中...

    ORACLE_SQLDeveloper使用教程

    本文详细介绍了如何使用 Oracle SQL Developer 和其他开发工具,包括 Oracle Database Home Page 的使用方法、如何在 Oracle 中使用 SQL*Plus、如何使用 SQL Developer 操作 Oracle 数据库以及如何执行 SQL 语句等...

    Oracle-SQL.rar_oracle_oracle sql_sql

    10. **数据库连接与管理工具**:如SQL*Plus、SQL Developer等,是与Oracle数据库交互的常用工具,它们能帮助我们执行SQL语句,管理数据库对象,以及监控数据库状态。 通过这份“Oracle SQL.ppt”,初学者可以逐步...

    DatabaseHelper_oracle_c#Oracle_C#_ManagedDataAccess_oracle操作_

    2. OracleCommand:用于执行SQL语句或存储过程。你可以设置CommandText属性为SQL语句,或者通过CommandType设置为StoredProcedure来执行存储过程。 3. OracleDataAdapter:用于填充DataSet或DataTable,实现数据的...

    ORACLE_SQL语句优化资料

    ORACLE_SQL语句优化资料

    oracle 查看当前会话执行的sql语句

    ### Oracle 查看当前会话执行的SQL语句 在Oracle数据库管理中,有时我们需要了解某个特定会话(Session)正在执行哪些SQL语句。这在性能调优、问题诊断等场景下尤为重要。以下将详细介绍如何通过不同的方法来查看...

Global site tag (gtag.js) - Google Analytics