mfc链接oracle中open函数,Oracle的命令和一些函数的整理(带有事例结果)

一.------------------------->01

set linesize 500

set pagesize 100

run或 r 或 (符号)/------------>都表示 把上一个命令重新执行一次.

alter session set NLS_date_format='YYYY-MM-DD'; 修改用户的会话来修改日期格式

默认的日期格式是:'DD-MON-YY'

SQL> insert into scott.emp(empno,ename,sal)    values(&employeeid,'&name',&employeesal);

输入 employeeid 的值:  9001

输入 name 的值:  jiake02

输入 employeesal 的值:  4000

原值    2: values(&employeeid,'&name',&employeesal)

新值    2: values(9001,'jiake02',4000)

这个命令可以多次使用,如按符号 / 然后回车,可以反复的输入值.

insert语句中使用子查询;例如 insert into managers(id,name,salary,hiredate)

select empno,ename,sa,hiredate

from emp

where job='manager';

二------------------>02

1.Oracle每个SQL语句都是一个事务,当用commit或rollback 来结束事务

2.savepoint update_dept;设置保存点;

可以用rollback  to update_dept;方式,解决分步处理或者有选择的执行;

Orcale连接两个字符串用两个||,而SQL用&

%代表多个任意字符,_代表一个任意字符

IS NULL是判断是否为空

三.lesson--------------------->03

SQL函数:

单行函数:---->General/Character/Number/Date/Conversion

1.字符函数

转换函数---->LOWERselect lower(ename) from scott.emp;

/UPPERselect * from scott.emp where ename=upper('king');

/INTCAP首字母大写,其余为小写

SQL> select initcap(ename) from scott.emp;

INITCAP(EN

----------

Smith

字符操纵函数------>CONCAT

select empno,concat(ename,job) from scott.emp;<=>select ename||job from scott.emp;

EMPNO CONCAT(ENAME,JOB)

------ -------------------

7369 SMITHCLERK

7499 ALLENSALESMAN

/LENGTH

1.select empno,ename,length(ename)from scott.emp;

EMPNO ENAME      LENGTH(ENAME)

------ ---------- -------------

7369 SMITH                  5

2.select length('同学们')from dual;

LENGTH('同学们')

-------------

3

/SUBSTR

select empno,ename,substr(ename,1,4) from scott.emp;

EMPNO ENAME      SUBSTR(E

------ ---------- --------

7369 SMITH      SMIT

7499 ALLEN      ALLE

/INSTR返回位置值

SQL> select ename,instr(ename,'S') from scott.emp;

ENAME      INSTR(ENAME,'S')

---------- ----------------

SMITH                     1

ALLEN                     0

WARD                      0

JONES                     5

/LPAD把字符串按某种模式显示

SQL> select ename,lpad(ename,10,'*') from scott.emp;

ENAME      LPAD(ENAME,10,'*')

---------- --------------------

SMITH      *****SMITH

ALLEN      *****ALLEN

WARD       ******WARD

JONES      *****JONES

数值函数:ROUND

SELECT ROUND(45.923,2),ROUND(45.923,0),ROUND(45.923,-1)

FROM DUAL;

结果:

按顺序是:45.92   46    50

/TRUNC

SELECT TRUNC(45.923,2),TRUNC(45.923,0),TRUNC(45.923,-1)

FROM DUAL;

结果:

按顺序是:45.92   45    40

/MOD

日期函数:

MONTHS_BETWEEN:返回两个日期之间月份的差值

MONTHS_BETWEEN('01-EP-95','11-JAN-94')

===>19.6774194

ADD_MONTHS:在日期上加上份数.

ADD_MONTHS('11-JAN-94',6)

===>'11-JUL-94'

NEXT_DAY:指定日期的后一天.

NEXT_DAY('01-SEP-95','FRIDAY')

===>'08-SEP-95'

LAST_DAY:月份中最后一天.

LAST_DAY('01-SEP-95)

===>'30-SEP-95'

ROUND:四舍五入日期

ROUND('25-JUL-95','MONTH')    ===>01-AUG-95

ROUND('25-JUL-95','YEAR')        ===>01-JAN-96

TRUNC:截断日期

TRUNC('25-JUL-95','MONTH')    ===>01-JUL-95

TRUNC('25-JUL-95','YEAR')        ===>01-JAN-95

日期函数:

YYYY----代表完整的年份

YEAR----年份

MM------两位数月份

MONTH---月份的完整名称

DY------每星期中天的三个字符

DAY-----天的完整名称

1.to_char函数

SQL> select ename,hiredate,to_char(hiredate,'YYYY-MM-DD') from scott.emp;

ENAME      HIREDATE   TO_CHAR(HI

---------- ---------- ----------

SMITH      17-12月-80 1980-12-17

ALLEN      20-2月 -81 1981-02-20

WARD       22-2月 -81 1981-02-22

2.to_date函数

1  insert into scott.emp(empno,ename,hiredate)

2* values(9004,'dtConvert',to_date('1982-05-04','YYYY-MM-DD'))

EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM

------ ---------- --------- ---------- ---------- ---------- ---------- --

9004 dtConvert                       04-5月 -82

3.NVL函数:将NULL值转换成一个实际的值(date,character和number类型可以使用)

eg:NVl(comm,0) 或NVL(hiredate,'01-JAN-97')或NVL(job,'No Job Yet')

4.DECODE 函数:功能类似 CASE or IF-THEN-ELSE 语句,但更容易.语法:DECODE(col/expression,search1,result1

[,search2,result2,......,]

[,default] )

1  select job,sal,

2              DECODE(job,'ANALYST',SAL*1.1,

3                    'CLERK',SAL*1.15,

4                    'MANAGER',SAL*1.20,

5                              SAL)

6         REVISER_SALARY

7* FROM scott.emp

JOB              SAL REVISER_SALARY

--------- ---------- --------------

CLERK            800            920

SALESMAN        1600           1600

SALESMAN        1250           1250

MANAGER         2975           3570

SALESMAN        1250           1250

MANAGER         2850           3420

MANAGER         2450           2940

ANALYST         3000           3300

PRESIDENT       5000           5000

SALESMAN        1500           1500

CLERK           1100           1265

CLERK            950         1092.5

ANALYST         3000           3300

CLERK           1300           1495

5.命令:

save:把sqlplus中的命令,保存在硬盘中.例如:

SQL> save 'D:\selectEmp.txt'

已创建文件 D:\selectEmp.txt

get:把命令从硬盘中加载到sqlplus环境中. 然后 键入 run或r或/ 执行.例如:

SQL> get 'D:\selectEmp.txt'

1* select * from scott.emp

SQL> r

1* select * from scott.emp

EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO

---------- ---------- --------- ---------- ---------- ---------- ---------- ----------

7369 SMITH      CLERK           7902 17-12月-80        800                    20

7499 ALLEN      SALESMAN        7698 20-2月 -81       1600        300         30

7521 WARD       SALESMAN        7698 22-2月 -81       1250        500         30

7566 JONES      MANAGER         7839 02-4月 -81       2975                    20

7654 MARTIN     SALESMAN        7698 28-9月 -81       1250       1400         30

@:把命令从硬盘中加载到sqlplus环境中 并自动执行.例如:

SQL> @ D:\selectEmp.txt

EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO

---------- ---------- --------- ---------- ---------- ---------- ---------- ----------

7369 SMITH      CLERK           7902 17-12月-80          800                    20

7499 ALLEN      SALESMAN        7698 20-2月 -81       1600        300         30

7521 WARD       SALESMAN        7698 22-2月 -81       1250        500         30

7566 JONES      MANAGER         7839 02-4月 -81       2975                    20

7654 MARTIN     SALESMAN        7698 28-9月 -81       1250       1400         30

有问题的地方请指正!!

谢谢!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值