`

plsql简单操作

sql 
阅读更多
626
1、pl/sql

--NULL表示不可用、未赋值、不知道、不适用, 它既不是0 也不是空格。
select null + 2 from dual;

--别名 as  字符串区分大小写 别名中有空格
select last_name as "LastName", salary Salary, salary + 300 from employees;

--连接符||
select last_name || ' salary is ' || salary as "雇员工资" from employees;

--去除重复行 distinct
SELECT DISTINCT department_id FROM employees;

--create table t_char(
--a varchar2(20)
--)
select * from t_char for update;

--模糊查询 使用% 或者_ 作为通配符:
--转义字符 使用ESCAPE 标识转义字符
select * from t_char where a like '%\%%' escape '\';
select * from t_char where a like '%k%%' escape 'k';

--大小写转换函数
select LOWER('SQL Course'), Upper('SQL Course'), initcap('SQL course')
  from dual;
--Oracle数据库中的数据是大小写敏感的
SELECT employee_id, last_name, department_id
  FROM employees
WHERE LOWER(last_name) = 'higgins';

--字符串操作函数
select concat('Hello', 'tanke'),
       substr('tanke', 1, 3),
       length('tanke'),
       instr('tanke', 'k'),
       lpad('tanke', 8, '+'),
       rpad('tanke', 9, '-'),
       trim(' tanke ')
  from dual;
SELECT employee_id,
       CONCAT(first_name, last_name) NAME,
       job_id,
       LENGTH(last_name),
       INSTR(last_name, 'a') "Contains 'a'?"
  FROM employees
WHERE SUBSTR(job_id, 4) = 'REP';

--数字操作函数
SELECT ROUND(45.923, 2), ROUND(45.923, 0), ROUND(45.923, -1) FROM DUAL;
SELECT TRUNC(45.923, 2), TRUNC(45.923), TRUNC(45.923, -2) FROM DUAL;
SELECT last_name, salary, MOD(salary, 5000) FROM employees WHERE job_id = 'SA_REP';

--日期操作函数
--返回下个星期的日期,day为1-7或星期日-星期六,1表示星期日
select NEXT_DAY (to_date('2012-06-26','yyyy-mm-dd'),1) from dual;
select ADD_MONTHS (sysdate,6) from dual;
-------------------------------------------------------------------------------
MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')                 19.6774194
ADD_MONTHS ('11-JAN-94',6)                               11-Jul-94
NEXT_DAY ('01-SEP-95','FRIDAY')                          8-Sep-95
NEXT_DAY ('01-SEP-95',1)                                 3-Sep-95
NEXT_DAY (to_date('1995-09-01','YYYY-MM-DD'),1)          2-Sep-95
LAST_DAY('01-FEB-95')                                    28-Feb-95
ROUND('25-JUL-95','MONTH')                               1-Aug-95
ROUND('25-JUL-95' ,'YEAR')                               1-Jan-96
TRUNC('25-JUL-95' ,'MONTH')                              1-Jul-95
TRUNC('25-JUL-95','YEAR')                                1-Jan-95
--------------------------------------------------------------------------------
--修改注册表 nls_lang AMERICAN_AMERICA.ZHS16GBK
select NEXT_DAY ('01-MAY-95',1) from dual;
SELECT last_name,
       (SYSDATE - hire_date) / 7 AS WEEKS,
       sysdate + 1 as tomorrow,
       hire_date + 8 / 24
  FROM employees
WHERE department_id = 90;

--转换测试(隐式转换)
select * from test1;
select * from test1 where column1=2;

--显示转换 to_char to_number to_date
--TO_CHAR(date, 'format_model') ;
--------------------------------------------------------------------------------------
日期格式化元素                                       意义
YYYY                                            4位数字表示的年份
YEAR                                            英文描述的年份
MM                                              2位数字表示的月份
MONTH                                           英文描述的月份
MON                                             三个字母的英文描述月份简称
DD                                              2位数字表示的日期
DAY                                             英文描述的星期几
DY                                              三个字母的英文描述的星期几简称
HH24:MI:SS AM                                   时分秒的格式化
DDspth                                          英文描述的月中第几天
fm                                              格式化关键字,可选
---------------------------------------------------------------------------------------
select to_char(sysdate,'DAY') from dual;
SELECT last_name, TO_CHAR(hire_date, 'fmDD "of" Month YYYY') AS HIREDATE
  FROM employees;
--TO_CHAR() 函数:数字到字符串的转换
----------------------------------------------------------------------------------
数字格式化元素                        意义
9                                   表示一个数字
0                                   强制显示0
$                                   放一个美元占位符
L                                   使用浮点本地币种符号
.                                   显示一个小数点占位符
,                                   显示一个千分位占位符
---------------------------------------------------------------------------------
alter session set NLS_CURRENCY = '¥';
SELECT TO_CHAR(salary, 'L99,999.00') SALARY FROM employees
WHERE last_name = 'Ernst';
--TO_DATE() 函数:字符串到日期的转换
SELECT last_name, TO_CHAR(hire_date, 'DD-Mon-YYYY')
FROM employees
WHERE hire_date < TO_DATE('01-Jan-90', 'DD-Mon-RR');

--其他单行函数
------------------------------------------------------------------------------
函数                                      用途
NVL(expr1, expr2)                   如果expr1为空,这返回expr2
NVL2 (expr1, expr2, expr3)          如果expr1为空,这返回expr3(第2个结果)否则返回expr2
NULLIF (expr1, expr2)               如果expr1和expr2相等,则返回空
COALESCE (expr1, expr2, ..., exprn)
                                    如果expr1不为空,则返回expr1,结束;否则计算expr2,直到找到
                                    一个不为NULL的值或者如果全部为NULL,也只能返回NULL
-------------------------------------------------------------------------------------
--条件表达式
--case
SELECT last_name, job_id, salary,
           CASE job_id
                WHEN 'IT_PROG' THEN 1.10*salary
                WHEN 'ST_CLERK' THEN 1.15*salary
                WHEN 'SA_REP' THEN 1.20*salary
                ELSE salary
           END "REVISED_SALARY"
FROM employees;
--decode
SELECT last_name, job_id, salary,
      DECODE(job_id, 'IT_PROG', 1.10*salary,
                     'ST_CLERK', 1.15*salary,
                     'SA_REP', 1.20*salary,
                      salary) REVISED_SALARY
FROM employees;


--全外连接
SELECT e.last_name, e.department_id, d.department_name
FROM employees e,departments d
where e.department_id(+) = d.department_id
union
SELECT e.last_name, e.department_id, d.department_name
FROM employees e,departments d
where e.department_id = d.department_id(+);

SELECT e.last_name, e.department_id, d.department_name
FROM employees e
FULL OUTER JOIN departments d
ON (e.department_id = d.department_id) ;

--count函数
--insert into test1 values(null);
select * from test1;
select count(*) from test1;--包含空行
select count(1) from test1;--不包含空行
select count(column1) from test1;
select count(distinct column1) from test1;
select count(column1) from (select column1 from test1 group by column1);
select count(*) from (select column1 from test1 group by column1);

--当分组计算函数遇到NULL:avg 不考虑分组
SELECT AVG(commission_pct) FROM employees;
select (select sum(commission_pct) from employees)/(select count(*) from employees ) from dual;
select (select sum(commission_pct) from employees)/(select count(commission_pct) from employees )
from dual;
SELECT AVG(NVL(commission_pct, 0)) FROM employees;

--select * from test1 for update nowait;
分享到:
评论

相关推荐

    plsql简单教程针对实际开发人员定位

    plsql简单教程是针对实际开发人员而编写的一部既简单又实用的一本书

    PLSQL简单教程,简单实用

    PL/SQL DEVELOPER 基本用法详解(建议写过第一个存储过程后的初手必读) 用过oracle的都抱怨,为了稳定 它提供的图形化操作 速度慢的让人伤心呀,p4+128M的机器只要启动一个

    plsql亲测简单好用.zip

    不需要繁琐的配置,按照文档傻瓜式操作就好用

    plsql&&oracle

    plsql 操作oracle 数据库,简单、好用、稳定

    PLSQL/CRT资源包

    包含PLSQL/CRT等用于 在云服务器连接安装Oracle 等,操作简单,配套使用如有问题联系作者

    PLSQL_Developer

    很好用的数据库连接工具,安装简单,使用方便。PLSQL!!!

    plsql10.0.3安装、汉化与破解

    plsql安装汉化破解,有助于简单快捷的操作oracle数据库

    plsql非常简单操作

    pl sql 的界面简单操作,非常适合新人

    plsql命令大全

    plsql是用于操作postgresql的简单命令行程序,相对于pgAdmin操作会更简单更快捷。

    PLSQL Developer内附教程.zip

    PLSQL Developer应用于oracle数据库的链接,操作简单内附教程

    plsql汉化补丁

    plsql汉化补丁,直接双击运行,傻瓜式安装,操作简单。

    plsql

    plsql 简单介绍

    plsql developer 12 64位 Oracle图形化操作工具

    Oracle图形化操作工具 安装简单 功能强大,plsql developer 64 位,最新版本12.0

    PLSQL 基础教程

    本文档用于描述基于PLSQL的一些SQL基础知识及使用技巧,便于相关人员了解基础SQL的语法知识及简单的使用技巧,以便于在实际的工作中能更好的处理遇到的一些问题。 通过本文档的学习希望可以到达能使用PLSQL进行基础...

    PLSQL Developer

    简单操作,中文化。连接oracle 可视化工具。。。。。。。

    plsqldev(oracle)

    oracle数据库操作工具,简单、已用,童叟无欺,数据处理必备工具

    PLSQLDeveloper下载

    PLSQL  PL/SQL(Procedural Language/SQL)是一种过程化语言,属于第三代语言,它与C、C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。它允许SQL的数据操纵语言和查询语句包含在块结构(block_...

    PLSQL试题集

    这是一个关于PLSQL的试题文档集,其中有三套试题和答案,都是对Oracle数据库中默认表Emp和Dept的操作,从最简单的查询到多层子查询以及多表查询,可以说是把Emp表利用的淋漓尽致,希望对大家有所帮助~

    PLSQL Developer.rar

    PLSQL Developer是一块小巧的Oracle数据库查看管理工具。使用方便,操作简单。

    plsqldeveloper,Oracle连接工具

    plsqldeveloper是一款简单实用的oracle连接工具,操作简单,方便使用

Global site tag (gtag.js) - Google Analytics