`
123003473
  • 浏览: 1047745 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle中的 单引号 和 双引号

 
阅读更多
双引号的作用是:假如建立对象的时候,对象名、字段名加双引号,则示意 Oracle将严格区分大小写,否则Oracl都默认大写。

  而单引号则示意:这个加了单引号的字段是一个字类似字符串,并不区分大小写。

单引号用于标识字符与数字的区别

  当指定字符串文本时,必须用单引号将字符串文本引住。

  Oracle10g之前,假如字符串文本里含有单引号,那么必须运用两个单引号示意。例如:I'm a String!

  字符串文本则为:string_var:='I''m a String!'

  在oracle10g中可以运用其它分隔符(<>,[],{}等),留心,运用这些分隔符时,不仅要在分隔符前后加单引号,还要带有前缀q.例:string_var:=q'[I''m a String!]';

  例如

  select * from table_name where id=1;这种代表查询的是数字

  select * from table_name where id='1';这种代表查询的是字符

  假如是双引号是这样,假如你有个表的字段叫sysdate,因为sysdate属于oracle中的特有字符,但你要查询这个字段的时候

  select "sysdate" from table_name;

  但是你要是用

  select 'sysdate' from table_name;

  那么你查出来的就是字符串,结果是sysdate

  运用如下的更新语句不可以:update device set dept='select * from message where name='tom' ' ;

  处理要领:

  update device set dept='select * from message where name=' 'tom' ' where id=3' ;

  执行成功。

  原来,两个'' 示意了一个'


单引号在 Oracle 中有三种身份:

      1. 用来引用一个字符串常量,也就是界定一个字符串的开始和结束
      2. 转义符,对紧随其后出现的字符(单引号)进行转义
      3. 表示它本身,也就是它作为一个字符串的一部分而出现在一个字符串常量中
当具有不同身份的单引号紧挨着一起出现在 sql 语句中时常常令人迷惑不解,下面我将以自己总结出来的经验为基础,结合具体实例来告诉大家如何弄清每个单引号的含义。

总结经验:
1. 出现在表达式开头和结尾的这两个单引号的含义肯定是表示引用一个字符串,界定字符串的开始和结束
2. 如果单引号出现在表达式中间(即非表达式开头和结尾的单引号),且多个单引号之间没有任何其他字符,那么当我们从左向右分析时,第一对单引号中的第一个是转义符,它对紧随其后的第二个单引号进行转义,以使第二个单引号作为一个字符出现在一个字符串常量中。第二队,第三队,以此类推......
下面用实例来验证自己的经验总结:

示例一:


select '''' from dual;

result '

上图中,表达式 '''' 中第1、4个单引号表示引用一个字符串常量,表达式的剩余部分我们从左往右分析,由于中间是一对单引号,故此对中的第一个是转义符,其对第二个进行转义,使第二个表示单引号本身。分析得出这里有一个字符串常量,其中只有一个单引号字符。sql 语句的运行结果与我们的分析结果一致。


示例二:

select 'exit''''' from dual

result exit''


上图中,表达式 'exit''''' 中第一个和最后一个单引号表示引用一个字符串常量,表达式的剩余部分我们依然从左往右分析。剩余部分中,遇到的第一个单引号后面紧随一个单引号,我们将其作为一对,根据示例一,这一对的解析结果为一个单引号字符本身;然后继续向右走,又遇到一对紧挨着的单引号,同理,他们的解析结果也是一个单引号字符本身。分析得出这里的字符串常量包含exit和两个单引号字符。sql 语句的运行结果与我们的分析结果一致。

分享到:
评论

相关推荐

    SQL中存储过程中SQL语句的单引号和双引号问题[总结].pdf

    SQL 中存储过程中 SQL 语句的单引号和双引号问题 在 SQL 中,单引号和双引号的问题是一个常见的混淆点,特别是在存储过程中编写 SQL 语句时。下面将对此问题进行详细的解释和总结。 一、单引号和双引号的基本概念 ...

    浅谈oracle中单引号转义

    在ORACLE中,单引号有两个作用:   1:字符串是由单引号引用   2:转义。  单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解  1.从第二个单引号开始被视为转义符,如果第二个单...

    oracle与mysql的区别

    MySQL 里可以用双引号包起字符串,Oracle 里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。 4. 翻页的 SQL 语句的处理 MySQL 处理翻页的 SQL 语句...

    mysql和Oracle命令的区别

    在 MySQL 中,字符串可以被双引号或单引号包围,但在 Oracle 中,只能使用单引号。这在编写 SQL 查询时需要特别注意。在 Oracle 中,如果字符串中包含单引号,需要将单引号加倍以正确转义。 3. 翻页查询(LIMIT 和...

    mysql和oracle区别.pdf

    - MySQL 允许使用双引号或单引号包围字符串,而 Oracle 只接受单引号。在处理 Oracle 的字符串时,需要确保单引号的正确处理,例如,将所有单引号替换为两个单引号。 4. **分页查询**: - MySQL 使用 LIMIT 子句...

    mysql和oracle区别.docx

    MySQL 允许使用双引号来包围字符串,而 Oracle 只接受单引号。在 Oracle 中,如果字符串内部含有单引号,需要使用两个单引号来转义。 4. **分页查询**: MySQL 使用 LIMIT 子句轻松实现分页,如 `LIMIT 开始位置,...

    Sql语法转换为Oracle语法

    1. 数据库对象命名:在SQL Server中,表和列名通常用方括号包围(如 `[TableName]` 和 `[ColumnName]`),而在Oracle中,它们用双引号包围(如 `"TableName"` 和 `"ColumnName"`)。 2. 语句开头:SQL Server通常以...

    Oracle中转义字符的详细介绍

    “I”作为字符串,所以语句中I需要加上单引号。 由于数据库中有多张表,我不想一条一条的语句写,希望能够通过sql语句直接生成所有的语句,所以写了如下sql: select 'update ' || table_name || ' set flag = 'I''...

    SQL,条件加逗号神器

    可以快速将字符串转化为大小写、加引号和逗号便于查询 可以快速将字符串转化为大小写、加引号和逗号便于查询

    Oracle与MySQL的几点区别.pdf

    MySQL 允许使用双引号包裹字符串,而 Oracle 只接受单引号。在 Oracle 中插入或更新含单引号的字符串时,需要将单引号替换为两个单引号,如 `'He said, ''Hello''.'`。 4. **翻页查询**: MySQL 使用 LIMIT 子句...

    Oracle与MySQL的几点区别.docx

    - MySQL 允许使用双引号(")或单引号(')包裹字符串,而 Oracle 只接受单引号。在处理字符串时,可能需要进行单引号的替换,例如将单引号替换为两个单引号。 4. **分页查询**: - MySQL 使用 LIMIT 子句轻松...

    oracle 讲义

    - 双引号保留字段名的原始大小写,否则Oracle默认转为大写。 5. **DISTINCT关键字**: - `select distinct`用于去除结果集中重复的行,如`select distinct deptno from emp`。 6. **WHERE子句**: - `where`...

    Oracle到mysql转换的问题总结.doc

    - Oracle 使用单引号 `'` 包裹字符串,而 MySQL 允许使用单引号或双引号 `"`。 - MySQL 在 `FROM` 后面对结果集使用别名是必需的,如 `FROM (SELECT ... ) AS alias`。 - MySQL 的 `DELETE` 语句不支持为表添加...

    Oracle到mysql转换的问题总结.docx

    - Oracle字符串使用单引号,而MySQL接受单引号和双引号。 - MySQL在`FROM`后的子查询必须加别名,如`FROM (SELECT ...) AS alias`。 - MySQL的`DELETE`语句不支持表别名,必须写成`DELETE FROM table1 AS T WHERE...

    尚学堂视频笔记-oracle

    select ename || "abcd" 如果连接字符串中含有单引号,用两个单引号代替一个单引号。 第五课:distinct select deptno from emp; select distinct deptno from emp; select distinct deptno from emp; select ...

    维护项目oracle常用语句

    插入单引号到数据库时,可以使用ASCII码或者双引号来表示。如`insert into t values('i'||chr(39)||'m');`这里的`chr(39)`代表单引号 `'`。另一种方式是使用两个单引号来表示一个,如`insert into t values('I''m')...

    Oracle到mysql转换的问题总结要点.doc

    - Oracle中字符串用单引号包围,而MySQL中可用单引号或双引号。 - MySQL在使用子查询时,如`FROM (SELECT...)`,需要在子查询后添加别名。 - 在删除数据时,MySQL不支持对表使用别名,但可以使用`DELETE T FROM ...

    震撼推出超方便实用的Oracle开发工具 - Oracle SQL Handler,双语界面,智能SQL编辑器,免装Oracle客户端,能运行于Windows, 双语界面

    如 修改、插入行、删除行、提 交(将表格中的数据改变写入相应的数据库表中)、多功能拷贝、将选择的单元格数据导出为 XLS /CSV /INSERT SQL /HTML /XML 等格式、单条记录操作、能方便地查找\替换单元格中的数据、...

Global site tag (gtag.js) - Google Analytics