ORACLE sql语法的表示问题

  • 情景一:连接情况下,||' '||可以添加我们要表示的字符和文字,但是如果字符是单引号又该怎么表示
    解决方法:用两个单引号表示单引号。
    如:select ename||”’s employee salary is ‘||sal emp_sal from emp1;

上面语句的第2 3个单引号,表示的就是字符’本身
这里写图片描述
结果显示确实含有单引号,成功。

  • 情景二:在语句 LIKE 中,怎么表示%和_
    正如我们知道的,语句
    SQL>SELECT ENAME ,JOB FROM EMP1 WHERE JOB LIKE 'S%';
    会将JOB以字母 S 开头的员工信息全部列出
    但是当员工的JOB含有% _ (如下)又怎么解决呢?

ENAME                JOB
-------------------- --------------------
MENG                 SALER
JOHN                 SALE%_MAN
JAN                  SALE%_/_MAN
ELLEN                CLERK
JACK                 CLERK
MARK                 MANAGER
SMITH                MANAGER

解决方法:采用转义字符,

SQL> SELECT ENAME ,JOB FROM EMP1 WHERE JOB LIKE 'SALE\%%' escape '\';
结果:
ENAME                JOB
-------------------- --------------------
JOHN                 SALE%_MAN
JAN                  SALE%_/_MAN
语句 SELECT ENAME ,JOB FROM EMP1 WHERE JOB LIKE 'SALE\%%' escape '\';
前一个 \% 表示转义字符,即该百分号就是字符串中的普通字符%,而不是修饰符了,后一个%
仍然是修饰符%,表示后面还有多个字符。关键是要在后面加 escape '\',当然反斜杠\也可以换成其他字符,只要前后一致即可。不过反斜杠比较常用。
下划线_同理,用转义字符。
  • 在sqlplus环境下,怎么偷懒,少敲代码?

    - 第一步:
    

    可以查看缓冲区,查看上一条输入的语句:L
    例如:

SQL> L
      1  SELECT ENAME ,JOB ,SAL FROM EMP1
      2* WHERRE ENAME='MENG'
在第二行出现的*表示该行为当前行,想要将当前行改为第一行的话只要输入数字1即可。

- 第二步:改正

正如我上面第二句的 WHERE写错了,那么修改格式为: N text(N为行数,text为修改后的内容)
SQL> 2 WHERE ENANME='MENG'
重新查看以确认:
SQL> L
结果为:
1  SELECT ENAME ,JOB ,SAL FROM EMP1
2  WHERE ENAME='MENG'
可见,已经修改了过来。

如果想要改正的地方只是当前行中的某个单词,那么可以使用C[HANGE]进行替换,
具体格式:C /原来的文本/现在的文本
如:

SQL> C /MENG/JACK
  2* where ename='JACK'

可以看到MENG 已经替换成了JACK

 - 第三步:执行

那么怎么执行呢。只需要输入 / 即可
SQL> /  
结果:
ENAME                JOB                         SAL
-------------------- -------------------- ----------
MENG                 SALER                      4000
所以输入出错了,不要着急着重新输入,改改就能用了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值