/////////////////基础知识//////////////////

应用场景178:最简单的select语句

SELECT * FROM Employees;

应用场景179:指定要查询的列

COL EMP_NAME FORMAT A20

COL SEX FORMAT A10

COL TITLE FORMAT A10

SELECT Emp_name, Sex, Title FROM HRMAN.Employees;

应用场景180:使用DISTINCTkeyword

SELECT Title FROM HRMAN.Employees;

SELECT DISTINCT Title FROM HRMAN.Employees;

应用场景181:使用ROWNUM

COL EMP_NAME FORMAT A20

COL SEX FORMAT A10

COL TITLE FORMAT A10

SELECT Emp_name, Sex, Title FROM HRMAN.Employees

WHERE ROWNUM<=3;

应用场景182:改变显示的列标题

COL 姓名 FORMAT A20

COL 性别 FORMAT A4

COL 职务 FORMAT A10

COL 身份证 FORMAT A20

SELECT EMP_NAME AS 姓名, SEX AS 性别, TITLE AS 职务, WAGE AS 工资, IDCARD AS 身份证 FROM HRMAN.Employees;

应用场景183:设置查询条件

COL EMP_NAME FORMAT A20

SELECT Emp_Name, Wage FROM HRMAN.Employees WHERE Wage > 3000 AND Wage < 4000;

应用场景184:在查询条件中使用BITWEEN keyword

COL EMP_NAME FORMAT A20

SELECT Emp_Name, Wage FROM HRMAN.Employees WHERE Wage BETWEEN 3000 AND 4000;

应用场景185:在查询条件中使用IN关键

COL EMP_NAME FORMAT A20

COL TITLE FORMAT A20

SELECT EMP_NAME, TITLE, WAGE FROM HRMAN.Employees WHERE Emp_name IN ('张三', '李四', '王五');

应用场景186:实现模糊查询

COL EMP_NAME FORMAT A20

COL TITLE FORMAT A20

COL IDCard FORMAT A20

SELECT EMP_NAME, TITLE, IDCard FROM HRMAN.Employees

WHERE IDCard LIKE '%ddd%';

COL EMP_NAME FORMAT A20

COL TITLE FORMAT A20

COL IDCard FORMAT A20

SELECT EMP_NAME, TITLE, IDCard FROM HRMAN.Employees

WHERE IDCard LIKE '110123_adx_';

应用场景187:排序结果集

COL EMP_NAME FORMAT A20

COL TITLE FORMAT A20

COL IDCard FORMAT A20

SELECT EMP_NAME, TITLE, IDCard FROM HRMAN.Employees

ORDER BY Emp_name;

COL EMP_NAME FORMAT A20

COL TITLE FORMAT A20

SELECT EMP_NAME, TITLE, Wage FROM HRMAN.Employees

ORDER BY Wage DESC;

应用场景188:对多列进行排序

COL EMP_NAME FORMAT A20

COL SEX FORMAT A20

SELECT EMP_NAME, Sex, Wage FROM HRMAN.Employees

ORDER BY Sex, Wage;

应用场景189:使用分组统计

COL 职务 FORMAT A10

SELECT Title AS 职务, AVG(Wage) AS 平均公资 FROM HRMAN.Employees GROUP BY Title;

COL Sex FORMAT A10

COL Title FORMAT A10

SELECT Sex, Title, AVG(Wage) FROM HRMAN.Employees GROUP BY Title;

SELECT Dep_Id, AVG(Wage) FROM HRMAN.Employees

GROUP BY Dep_Id HAVING AVG(Wage) > 4000;

应用场景190:连接查询

内连接

COL Dep_name FORMAT A20

COL Emp_name FORMAT A20

SELECT  t1.Dep_name, t2.Emp_name FROM HRMAN.Departments t1, HRMAN.Employees t2

WHERE t1.Dep_id=t2.Dep_id;

外链接:

COL Dep_name FORMAT A20

COL Emp_name FORMAT A20

SELECT  t1.Dep_name, t2.Emp_name FROM HRMAN.Departments t1 INNER JOIN HRMAN.Employees t2

ON t1.Dep_id=t2.Dep_id;

COL Dep_name FORMAT A20

COL Emp_name FORMAT A20

SELECT  t1.Dep_name, t2.Emp_name FROM HRMAN.Departments t1 LEFT JOIN HRMAN.Employees t2

ON t1.Dep_id=t2.Dep_id;

COL Dep_name FORMAT A20

COL Emp_name FORMAT A20

SELECT  t1.Dep_name, t2.Emp_name FROM HRMAN.Employees t2 RIGHT JOIN HRMAN.Departments t1

ON t1.Dep_id=t2.Dep_id;

COL Dep_name FORMAT A20

COL Emp_name FORMAT A20

SELECT  t1.Dep_name, t2.Emp_name FROM HRMAN.Employees t2 FULL JOIN HRMAN.Departments t1

ON t1.Dep_id=t2.Dep_id;

交叉连接

COL Dep_name FORMAT A20

COL Emp_name FORMAT A20

SELECT  t1.Dep_name, t2.Emp_name FROM HRMAN.Employees t2 CROSS JOIN HRMAN.Departments t1;

应用场景191:在连接查询中对空值中对空值的推断

COL Dep_name FORMAT A20

COL Emp_name FORMAT A20

SELECT  t1.Dep_name, t2.Emp_name FROM HRMAN.Departments t1 LEFT JOIN HRMAN.Employees t2

ON t1.Dep_id=t2.Dep_id;

COL Dep_name FORMAT A20

COL Emp_name FORMAT A20

SELECT  t1.Dep_name, t2.Emp_name FROM HRMAN.Departments t1 LEFT JOIN HRMAN.Employees t2

ON t1.Dep_id=t2.Dep_id

WHERE t2.Emp_id IS NULL;

应用场景192:一个简单地子查询

查询办公室的全部员工:

COL Emp_name FORMAT A20

COL Title FORMAT A20

SELECT Emp_Name, Title FROM HRMAN.Employees WHERE Dep_Id =

(SELECT Dep_Id FROM HRMAN.Departments WHERE Dep_name = '办公室');

返回两个部门的值:

COL Emp_name FORMAT A20

COL Title FORMAT A20

SELECT Emp_Name, Title FROM HRMAN.Employees WHERE Dep_Id =

(SELECT Dep_Id FROM HRMAN.Departments WHERE Dep_name = '办公室' OR Dep_name = '人事部');

应用场景193:在查询中使用具和函数返回值

统计表中全部工资低于品级工资的员工的信息

COL Emp_name FORMAT A20

COL Title FORMAT A20

SELECT Emp_name, Title, Wage FROM HRMAN.Employees WHERE Wage <

(SELECT AVG(Wage) FROM HRMAN.Employees);

应用场景194:INkeyword与返回值的子查询

查询办公室和人事部中的员工信息

COL Emp_name FORMAT A20

COL Title FORMAT A20

SELECT Emp_name, Title, Wage FROM HRMAN.Employees WHERE Dep_Id IN

(SELECT Dep_Id FROM HRMAN.Departments WHERE Dep_name = '办公室' OR Dep_name = '人事部');

应用场景195:EXISTSkeyword与子查询

查询人事部中的员工信息

COL Emp_name FORMAT A20

COL Title FORMAT A20

SELECT Emp_name, Title, Wage FROM HRMAN.Employees e

WHERE EXISTS

(SELECT Dep_id FROM HRMAN.Departments d

WHERE e.Dep_id = d.Dep_id AND d.Dep_name='人事部');

使用INkeyword:

COL Emp_name FORMAT A20

COL Title FORMAT A20

SELECT Emp_name, Title, Wage FROM HRMAN.Employees e

WHERE e.Dep_id IN

(SELECT Dep_id FROM HRMAN.Departments d

WHERE e.Dep_id = d.Dep_id AND d.Dep_name='人事部');

应用场景196:使用UNIONkeyword的合并查询

从表中Employee中查询各个部门的部门经理

COL Dep_name FORMAT A20

COL Emp_name FORMAT A20

SELECT Dep_Id, Dep_Name FROM HRMAN.Departments

UNION

SELECT Dep_Id, Emp_Name FROM HRMAN.Employees WHERE Title = '部门经理';

工资大于3000的员工记录:

COL Emp_name FORMAT A20

COL Title FORMAT A20

SELECT Emp_name, Title, Wage FROM HRMAN.Employees

UNION

SELECT Emp_name, Title, Wage FROM HRMAN.Employees WHERE Wage > 3000;

高效率:

COL Emp_name FORMAT A20

COL Title FORMAT A20

SELECT Emp_name, Title, Wage FROM HRMAN.Employees

UNION ALL

SELECT Emp_name, Title, Wage FROM HRMAN.Employees WHERE Wage > 3000;

应用场景197:使用select语句中的DECODE函数

SELECT Emp_name, DECODE(Sex, '男', '先生', '女', '女士', '未知') AS Sex

FROM HRMAN.Employees;

应用场景198:使用select与剧中CASE函数

SELECT Emp_name, CASE Sex WHEN '男' THEN '先生' WHEN '女' THEN '女士' ELSE '未知' END AS Sex

FROM HRMAN.Employees;

查询表Employees中的员工工资级别:

SELECT Emp_name, Wage, CASE WHEN Wage<=3000 THEN '低' WHEN Wage>3000 AND Wage<5000 THEN '中' WHEN Wage>=5000 THEN '高' END AS GRADE

FROM HRMAN.Employees;

应用场景199:保存查询结果

将办公室的全部员工的姓名和职务信息保存到表中OFFICE:

COL Emp_name FORMAT A20

COL Title FORMAT A20

CREATE TABLE HRMAN.Office AS

SELECT e.Emp_Name, e.Title

FROM HRMAN.Employees e, HRMAN.Departments d

WHERE e.Dep_id = d.Dep_Id AND d.Dep_Name = '办公室';

SELECT * FROM HRMAN.Office;

应用场景200:插入数据语句

INSERT INTO HRMAN.Departments VALUES(100, '公关部');

SELECT * FROM HRMAN.Departments;

INSERT INTO HRMAN.Employees (Emp_Name, Sex,Title,  IdCard, Dep_Id)

VALUES ('小明', '男', '职员', '110123456789', 2);

应用场景201:在插入数据时利用默认值

ALTER TABLE HRMAN.Employees ADD InputDate date DEFAULT(sysdate);

INSERT INTO HRMAN.Employees (Emp_Name, Sex,Title,  IdCard, Wage, Dep_Id)

VALUES ('小李', '男', '职员', '210123456789', 2500, 2);

应用场景202:改动数据语句

将表中的全部记录工资添加10%:

UPDATE HRMAN.Employees SET Wage=Wage*1.1;

将表中全部部门为"办公室"的员工工资添加10%

UPDATE HRMAN.Employees SET Wage=Wage*1.1

WHERE Dep_id = (SELECT Dep_id FROM HRMAN.Departments WHERE Dep_name = '办公室');

应用场景203:改动数据时不同意在唯一性约束列中使用同样的值

ALTER TABLE HRMAN.Employees

ADD CONSTRAINT UK_EMPNAME

UNIQUE(Emp_name);

UPDATE HRMAN.Employees SET Emp_name='张三' WHERE Emp_name='李四';

应用场景204:改动数据是不能违反检查约束

ALTER TABLE HRMAN.Employees

ADD CONSTRAINT CK_EMPWAGE CHECK(WAGE>0);

UPDATE HRMAN.Employees SET Wage=-1 WHERE Emp_Name='张三';

应用场景205:改动数据时不能违反外键约束

为表HRMAN。Departments的DEP_id列和表HRMAN.Employees的DEP_ID列中创建外键约束

ALTER TABLE HRMAN.Employees

ADD CONSTRAINT FK_EMP_DEPID

FOREIGN KEY(Dep_id) REFERENCES HRMAN.Departments(Dep_id);

UPDATE HRMAN.Employees SET Dep_id=200 WHERE Emp_Name='张三';

应用场景206:删除数据语句

DELETE FROM HRMAN.Employees WHERE Emp_Name = '小明';

TRUNCATE TABLE HRMAN.Employees;

Oracle442个应用场景------------基础应用场景的更多相关文章

  1. 性能测试基础---LR场景设置

    ·场景设置. 性能测试场景依托于性能测试脚本,但是又独立于脚本. 所谓场景(scenario),就是用来模拟多用户运行性能测试脚本的情形,是来源于我们对于业务场景的分析的. 性能测试对于业务场景的分析 ...

  2. Redis 的基本数据类型 和 基础应用场景

    Redis 的基础应用场景 获取中奖用户ID,随机弹出之后集合中就不存在了[set] 存储活动中中奖的用户ID,保证同一个用户不会中奖两次[set] 存储粉丝列表,value 为粉丝的用户ID,sco ...

  3. Learning Cocos2d-x for WP8(6)——场景切换和场景过渡效果

    原文:Learning Cocos2d-x for WP8(6)--场景切换和场景过渡效果 C#(wp7)兄弟篇 Learning Cocos2d-x for XNA(6)——场景切换和场景过渡效果 ...

  4. loadrunner 场景设计-目标场景设计

    场景设计-目标场景设计 by:授客 QQ:1033553122 A.   概述 Goals Types for Goal-Oriented Scenarios 在以目标为向导的场景中,定义你想实现的测 ...

  5. loadrunner 场景设计-手工场景方案(Schedule)设计

    场景设计-手工场景方案(Schedule)设计 by:授客 QQ:1033553122 A.   定义方案schedule 在 Scenario Schedule面板中,选择一个方案schedule, ...

  6. loadrunner 场景设计-手工场景设计

    场景设计-手工场景设计 by:授客 QQ:1033553122 概述 通过选择需要运行的脚本,分配运行脚本的负载生成器,在脚本中分配Vuser来建立手工场景 手工场景就是自行设置虚拟用户的变化,主要是 ...

  7. 基于SketchUp和Unity3D的虚拟场景漫游和场景互动

    这是上学期的一次课程作业,难度不高但是也一并记录下来,偷懒地拿课程报告改改发上来. 课程要求:使用sketchUp建模,在Unity3D中实现场景漫游和场景互动. 知识点:建模.官方第一人称控制器.网 ...

  8. 搭建LoadRunner中的场景(一) 创建场景

    一.创建场景 1. 使用场景创建设置对话框 场景分类: 1. 人工场景:相比面向目标场景,人工场景在实际工作中的应用更为广泛. 2. 面向目标场景:预先定义了一个测试目标,LoadRunner将根据这 ...

  9. cocos2dx 3.1从零学习(二)——菜单、场景切换、场景传值

    回想一下上一篇的内容,我们已经学会了创建一个新的场景scene,加入sprite和label到层中.掌握了定时事件schedule. 我们能够顺利的写出打飞机的主场景框架. 上一篇的内容我练习了七个新 ...

随机推荐

  1. SQL数值函数

    /*abs(n)返回参数n所指定数值的绝对值(如果参数值为NULL,则返回结果为NULL,下同).*/--SELECT ABS(-3.14) FROM DUAL; --3.14 /*round(n[, ...

  2. Gradle的简介、安装与配置

    Gradle介绍 Gradle是一个基于JVM的构建工具,它提供了: 像Ant一样,通用灵活的构建工具,对Ant的任务做了很好的集成 同Maven一样是基于约定的构建框架 强大的多工程构建支持.有广泛 ...

  3. http发送post请求

    package com.j1.soa.resource.member.oracle.service; import java.io.BufferedReader; import java.io.IOE ...

  4. Java初转型-jdk安装和配置

    Java 开发环境配置 > * 下载JDK> * 配置环境变量> * 测试JDK是否安装成功> * 使用 Eclipse 运行第一个 Java 程序 下载JDK 首先我们需要下 ...

  5. JavaScript绑定事件的方法[3种]

    在JavaScript中,有三种常用的绑定事件的方法: 在DOM元素中直接绑定: 在JavaScript代码中绑定: 绑定事件监听函数. 一. 在DOM元素中直接绑定 这里的DOM元素,可以理解为HT ...

  6. HTML5 Canvas前台压缩图片并上传到服务器

    1.前台代码: <input id="fileOne" type="file" /> <input id="btnOne" ...

  7. Swift 循环、数组 字典的遍历

    import Foundation // 数组声明 var arr = [String]() // 数组循环添加项 ...{ arr.append("Item \(index)") ...

  8. struct可以拥有class般的构造函数

    struct A { int a, b; A(int x, int y) :a(x), b(y){} }; int main() { A a(1, 2); cout << a.a < ...

  9. 利用css3-animation来制作逐帧动画

    前言 趁着还没有元旦之前先码一篇文章,不然到时候估计又被各种虐了,所以趁现在还有力气先来一篇.今天来聊聊css3中的动画属性animation,对这个属性懵懂是在很早的时候有前辈用这个 animati ...

  10. SelectedNode与e.node的区别

    SelectedNode与e.node的区别 待补.......