oracle学习笔记(2)

2019-03-22 09:36

**创建表student

CREATE TABLE STUDENT_GH( ID NUMBER(4),

NAME VARCHAR2(20), GENDER CHAR(1) )

**查看

DESC STUDENT_GH **插入

INSERT INTO STUDENT_GH

VALUES(1000,'李莫愁','F'); INSERT INTO STUDENT_GH

VALUES(1001,'林平之',NULL);--显示插入 INSERT INTO STUDENT_GH(ID,NAME)--隐身插入 VALUES(1002,'张无忌'); **查看内容

SELECT * FROM STUDENT_GH **修改性别

UPDATE STUDENT_GH SET GENDER =NULL COMMIT

**删gender为null的

判定是否为null是使用 is null 或 is not null DELETE STUDENT_GH WHERE GENDER IS NULL ***null的计算

null与字符串a拼接,结果是字符串a null与数字运算,结果是null **查看emp表中的工资加奖金 SELECT

ENAME,SAL,COMM,SAL+COMM FROM EMP_GH **空值函数

NVL(A1,A2)

若A1为null,则返回A2值,该函数作用就是将null值转变成非null值A2 **查看工资

SELECT ENAME,SAL,COMM,SAL+NVL(COMM,0) FROM EMP_GH **查看每个人的奖金情况,

有奖金就显示有奖金,没有奖金就显示没有奖金

NVL2(A1,A2,A3),如果A1不为null 返回 A2 ,为null返回 A3 SELECT

ENAME,COMM,

NVL2(COMM,'有奖金','没有奖金')

FROM EMP_GH

***TEST*********************

1:查询emp表中数据,列出一列,内容为名字与职位 显示格式:ename:JOB SELECT

ename||':'||JOB FROM EMP_GH SELECT

CONCAT(ENAME,CONCAT(':',JOB)) FROM EMP_GH

2:查看每个员工职位的字符个数 SELECT

JOB,LENGTH(JOB) FROM EMP_GH

3:将所有员工的名字以小写形式,与首字母大写形式 查询出来,第一列为小写形式,第二列为首字母大写 SELECT ename FROM EMP_GH

WHERE LOWER(eNAME)='ward' SELECT ename FROM EMP_GH

where INITCAP(ENAME)='Scott'

4:将字符串'aaaaaabaaaaa'中左右两边的a去除 SELECT

trim('a' FROM 'aaaaaaabbaaaaaa') FROM DUAL

5:显示每个员工的名字,要求显示10位,第一列左对齐效果,第二列 SELECT

RPAD(ENAME,10,' ') FROM EMP_GH SELECT

LPAD(ENAME,10,' ') FROM EMP_GH

6:截取字符串'DOCTOR WHO'中的'WHO' SELECT

SUBSTR('DOCTOR WHO',8,3) FROM DUAL

7:查看'DOCTOR WHO'中'WHO'的位置 SELECT

INSTR('DOCTOR WHO','WHO',4) FROM DUAL

右对齐效果 8:分别查看55.789四舍五入保留小数点后2位,整数位,十位后的 数字,显示成三列。 SELECT

ROUND(55.78,2), ROUND(55.78), ROUND(55.78,-1) FROM DUAL

9:分别查看55.789截取后保留小数点后2位,整数位,十位后的 数字,显示成三列。 SELECT

TRUNC(55.789,2), TRUNC(55.789), TRUNC(55.789,-1) FROM DUAL

10:查看每名员工工资百位以下的数字? SELECT

ENAME,SAL,MOD(SAL,100) FROM EMP_GH

11:查看每名员工从入职到今天一共多少天,若有小数则向上取整。 SELECT

ENAME,HIREDATE,

CEIL( SYSDATE-HIREDATE) FROM EMP_GH

12:查看从2008-08-08号到今天为止一共经历了多少天? SELECT

TRUNC(SYSDATE-TO_DATE('2008-08-08','YYYY-MM-DD')) FROM DUAL

13:将每名员工入职时间以例如: 1981年12月3日 的形式显示 SELECT

ENAME,JOB,

TO_CHAR(HIREDATE,'YYYY-MM-DD') FROM EMP_GH

14:查看每个员工入职所在月的月底是哪天? SELECT

LAST_DAY(HIREDATE) FROM EMP_GH

15:查看每名员工转正日期(入职后3个月) SELECT

ADD_MONTHS(HIREDATE,3) FROM EMP_GH

16:查看每名员工入职至今共多少个月? SELECT

MONTHS_BETWEEN(SYSDATE,HIREDATE) FROM EMP_GH

17:查看从明天开始一周内的周日是哪天? SELECT

NEXT_DAY(SYSDATE,1) FROM DUAL

18:查看82年以后入职的员工的入职日期,82年以前的按照 1982年01月01号显示。格式都是DD-MON-RR(默认格式) SELECT

ENAME,HIREDATE,

GREATEST(HIREDATE,TO_DATE('1982-01-01','YYYY-MM-DD')) FROM EMP_GH

19:查看每名员工的入职年份? SELECT

ENAME,HIREDATE,

EXTRACT(YEAR FROM HIREDATE) FROM EMP_GH

20:显示每个员工的总收入(工资加奖金),奖金为NULL的只看工资 SELECT

ENAME,SAL,COMM, SAL+NVL(COMM,0) FROM EMP_GH

21:使用NVL2实现20题的需求 SELECT

ENAME,SAL,COMM,

NVL2(COMM,SAL+COMM,SAL) FROM EMP_GH

*************************day03***********查询语******************************** 字句就是关键字+xx 列 SELECT enama SELECT 字段,表达式,函数 ****别名

在使用表达式或函数时,字段变长,可以使用除关键字以外的作为别名

添加方式,1.AS 别名 TO_CHAR(HIREDATE,'YYYY-MM-DD') AS HIERDATE

2.在表达式后空格加别名,别名不能有空格 TO_CHAR(HIREDATE,'YYYY-MM-DD') HIERDATE

3.要求区分大小写,使用双引号,且别名中间可以用空格 SELECT TO_CHAR(HIREDATE,'YYYY-MM-DD') \

句SELECT SELECT

SELECT ENAME,SAL*12 AS SAL,TO_CHAR(HIREDATE,'YYYY-MM-DD') AS HIREDATE FROM EMP_GH

SELECT ENAME,SAL*12 SAL,TO_CHAR(HIREDATE,'YYYY-MM-DD') HIREDATE FROM EMP_GH

SELECT ENAME,SAL*12 \ FROM EMP_GH

***WHERE 条件语句 >, < , >=,<=,<>(不等于),= 查找10号员工的信息, SELECT * FROM EMP_GH WHERE DEPTNO=10; 查找 销售人员的信息

SELECT ENAME,SAL,JOB FROM EMP_GH WHERE JOB='SALESMAN' 查工资高于2000

SELECT ENAME,SAL,JOB FROM EMP_GH WHERE SAL>2000

查部门不是10的信息

SELECT ENAME,SAL,JOB,DEPTNO FROM EMP_GH WHERE DEPTNO<>10

查找入职时间在1982-1-1之后的人员信息 SELECT ENAME,SAL,JOB FROM EMP_GH

WHERE HIREDATE

****AND OR 关键字 ,and的优先级高于or ,及先计算and 在计算or 满足条件 SAL>1000 或 DEPTNO<>10 SELECT ENAME,SAL,DEPTNO FROM EMP_GH WHERE SAL>1000 OR DEPTNO<>10 满足条件 SAL>1000 且 DEPTNO<>10 SELECT ENAME,SAL,DEPTNO FROM EMP_GH WHERE SAL>1000 AND DEPTNO<>10 工资大于1000,job是salesman 和 SELECT ENAME,SAL,JOB FROM EMP_GH

WHERE SAL>1000 AND (JOB = 'SALESMAN' OR JOB = 'CLERK') ****LIKE 条件

可以进行模糊匹配字符串,支持两个通用符 %:0-多个字符串; _:单一的字符 查看第二个字符为A的

SELECT ENAME,SAL,JOB FROM EMP_GH WHERE ENAME LIKE '_A%' ***IN 和 NOT IN

IN(LIST),NOT IN(LIST)

JOB中包含'MANAGER'和'CLERK'的所有员工信息 SELECT ENAME,JOB,SAL FROM EMP_GH WHERE JOB IN ('MANAGER','CLERK')


oracle学习笔记(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:形势与政策

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: