Retrieving Data Using the SQL SELECT Statement
2017-08-29 14:14
363 查看
一、官档
Book → SQL Language Reference → 19 SQL Statements: SAVEPOINT to UPDATE → SELECT二、基础语法
SELECT {[distinct]列名,列名,…}|* FROM 表名 [WHERE 条件] [GROUP BY 分组列名] [HAVING 聚合函数] [ORDER BY 排序列名 ASC|DESC]
三、符号
① 单引号('):在Oracle中,应该只使用单引号将文本和字符和日期括起来,不能使用引号(包括单双引号)将数字括起来。② 双引号("):在Oracle中,单双引号含义不同。双引号被用来将包含特定字符或者空格的列别名括起来。双引号还被用来将文本放入日期格式。
③ 撇号('):在Oracle中,撇号也可以写成彼此相邻的两个单引号。为了在供应商名字中间查找所有带撇号的供应商名字,可以这样编写代码:
select * from l_suppliers where supplier_name like '%''%';
④ &符号:在Oracle中,&符号常用来指出一个变量。例如,&fox是一个变量,稍微有点不同的一种&& fox。每当&fox出现在Oracle脚本中时,都会要求您为它提供一个值。而使用&&fox,您只需要在& &fox第一次出现时为它提供变量值。如果想将&符号作为普通的符号使用,则应该关闭这个特性。要想关闭这个特性,可以运行以下的命令: set define off ,这是一个SQLplus命令,不是一个SQL命令。SQLplus设置了SQL在Oracle中运行的环境。
⑤ 双竖线(||):Oracle使用双竖线表示字符串连接函数。
⑥ 星号(*):select *意味着选择所有的列,count(*)意味着计算所有的行,表示通配符时,表示0个或任意多个字符。
⑦ 正斜杠(/):在Oracle中,用来终止SQL语句。更准确的说,是表示了“运行现在位于缓冲区的SQL代码”。正斜杠也用作分隔项。
⑧ 不等于:有多种表达方式:!=、^=、<>、not xxx=yyy、not(xxx=yyy)
⑨ 加减乘除:+ - * /
四、别名
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_NAME SELECT 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_ID FROM DEPARTMENTS; --*:在运算符里表示乘以 SELECT FIRST_NAME 名字, SALARY * COMMISSION_PCT * 12 年度奖金 FROM EMPLOYEES WHERE SALARY > 10000; --||:拼接字符串 --'':表示单引号,在字符串里显示,用于区分'结束输出 SELECT LAST_NAME || ' ''s salary is : ' || SALARY AAA FROM EMPLOYEES WHERE SALARY > 10000; --多个单引号时使用q'[]',避免多次使用'' SELECT LAST_NAME || q'[ 's sa'la'ry' is : ]' || SALARY AAA FROM EMPLOYEES;
相关文章推荐
- Oracle 学习之SQL(一) Retrieving Data Using the SQL SELECT statement
- 97.Which statement is true about loading data using the conventional path of SQL*Loader?
- Which statement is true about loading data using the conventional path of SQL*Loader? A.Redo is not
- SqlZoo.net习题答案:Using the SELECT statement.【bbc】
- SqlZoo.net习题答案:Using the SELECT statement.【nobel】
- Stairway to T-SQL DML Level 1: The Basic SELECT Statement
- How to select the data type in SQLserver database such as varchar, nvarchar
- ocp 047-141 Evaluate the following SQL statement:SELECT product_name || 'it's not available for orde
- Collecting performance counters and using SQL Server to analyze the data
- Using SOAP Interface with the SQL Server Data Services
- Failed to generate a user instance of SQL Server due to failure in retrieving the user's local application data path 解决(VS2010+IIS7.5)
- LINQ to SQL系列Part 6 - Retrieving Data Using Stored Procedures
- ScottGu之博客翻译-第6部分-用存储过程检索数据-LINQ to SQL (Part 6 - Retrieving Data Using Stored Procedures)
- using JS to control two select(html),the data can be loaded from database and XML,and show in the select
- Using the TIME data type in SQL Server 2008
- Using Profile "Initialization SQL Statement - Custom" to collect sql trace
- the SQL statement is closed和 the cursor is closed,两个关闭的概念不一样
- dbvis MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at lin
- SQL java.sql.SQLException: Parameter metadata not available for the given statement
- dbvis MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at lin