博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle:使用SQL SELECT语句检索数据
阅读量:6715 次
发布时间:2019-06-25

本文共 2315 字,大约阅读时间需要 7 分钟。

一、官档

二、基础语法

SELECT {[distinct]列名,列名,…}|*   FROM 表名  [WHERE 条件] [GROUP BY 分组列名][HAVING 聚合函数] [ORDER BY 排序列名 ASC|DESC]

三、符号

  1. 单引号('):在Oracle中,应该只使用单引号将文本和字符和日期括起来,不能使用引号(包括单双引号)将数字括起来。 
  2. 双引号("):在Oracle中,单双引号含义不同。双引号被用来将包含特定字符或者空格的列别名括起来。双引号还被用来将文本放入日期格式。
  3. 撇号('):在Oracle中,撇号也可以写成彼此相邻的两个单引号。为了在供应商名字中间查找所有带撇号的供应商名字,可以这样编写代码:
    select * from l_suppliers where supplier_name like '%''%'
  4. &符号:在Oracle中,&符号常用来指出一个变量。例如,&fox是一个变量,稍微有点不同的一种&& fox。每当&fox出现在Oracle脚本中时,都会要求您为它提供一个值。而使用&&fox,您只需要在& &fox第一次出现时为它提供变量值。如果想将&符号作为普通的符号使用,则应该关闭这个特性。要想关闭这个特性,可以运行以下的命令: set define off ,这是一个SQLplus命令,不是一个SQL命令。SQLplus设置了SQL在Oracle中运行的环境。 
  5. 双竖线(||):Oracle使用双竖线表示字符串连接函数。 
  6. 星号(*):select *意味着选择所有的列,count(*)意味着计算所有的行,表示通配符时,表示0个或任意多个字符。 
  7. 正斜杠(/):在Oracle中,用来终止SQL语句。更准确的说,是表示了“运行现在位于缓冲区的SQL代码”。正斜杠也用作分隔项。 
  8. 不等于:有多种表达方式:!=、^=、<>、not xxx=yyy、not(xxx=yyy)
  9. 加减乘除:+ - * /

四、别名

SELECT EMPNO AS "员工编号", ENAME AS "员工名称" FROM EMP;SELECT EMPNO 员工编号, ENAME 员工名称 FROM EMP;SELECT EMPNO "员工编号", ENAME "员工名称" FROM EMP;

五、去重

--员工分布在哪些部门 ,列出部门IDSELECT DISTINCT DEPARTMENT_ID FROM EMPLOYEES;

六、DESCRIBE

DESC OWNER.TABLE_NAMESELECT COLUMN_NAME,       DECODE(NULLABLE, 'Y', ' ', 'NOT NULL') NULLABLE,       DECODE(DATA_TYPE,              'RAW', DATA_TYPE || '(' || DATA_LENGTH || ')',              'CHAR', DATA_TYPE || '(' || DATA_LENGTH || ')',              'VARCHAR', DATA_TYPE || '(' || DATA_LENGTH || ')',              'VARCHAR2', DATA_TYPE || '(' || DATA_LENGTH || ')',              'NUMBER', NVL2(DATA_PRECISION,                              DECODE(DATA_SCALE,                                    0, DATA_TYPE || '(' || DATA_PRECISION || ')',                                    DATA_TYPE || '(' || DATA_PRECISION || ',' || DATA_SCALE || ')'),                             DATA_TYPE),              DATA_TYPE) DATA_TYPE  FROM DBA_TAB_COLUMNS WHERE OWNER = UPPER('&sch')   AND TABLE_NAME = UPPER('&tab') ORDER BY COLUMN_ID

七、查询例子

--*:表示查询所有列 select * from employees;--查询固定列 select DEPARTMENT_NAME, MANAGER_IDfrom departments;--*:在运算符里表示乘以 select FIRST_NAME 名字, SALARY * COMMISSION_PCT*12 年度奖金from employeeswhere salary > 10000;--||:拼接字符串  --'':表示单引号,在字符串里显示,用于区分'结束输出  select last_name || ' ''s salary is : ' || salary aaafrom employeeswhere salary > 10000;--多个单引号时使用q'[]',避免多次使用''select last_name || q'[ 's sa'la'ry' is : ]' || salary aaafrom employeeswhere salary > 10000;

转载地址:http://njrlo.baihongyu.com/

你可能感兴趣的文章
Java 关键字final的一小结
查看>>
tp5的include 标签 不能用了么
查看>>
php禁止某ip或ip地址段访问的方法(转载)
查看>>
超级菜鸟的Python之路--前传一
查看>>
设置input框文字垂直居中和宽度
查看>>
WinForm笔记
查看>>
js 获取时间不能大于当前系统时间
查看>>
vue公共
查看>>
LeetCode 191. Number of 1 Bits Question
查看>>
关于前端的大致简介!
查看>>
面向对象设计模式总结
查看>>
JAVA 实用插件
查看>>
Matlab与C++混合编程(依赖OpenCV)
查看>>
BZOJ 4822 [Cqoi2017]老C的任务 ——树状数组
查看>>
Centos上虚拟机搭建
查看>>
cocos2d-html5 onEnter init ctor构造函数 ----js特有特性(和c++有一点不一样)
查看>>
spring发送邮件
查看>>
typescript实现类规则
查看>>
vue中echarts随窗体变化
查看>>
使用python 3.x 对pythonchallenge-----0的解答过程
查看>>