• oracle


    SqlPlus 命令


    在oracle中使用sqlplus命令来操作数据库。

    首先在windows下打开cmd命令窗口。

    示例:sqlplus命令使用

    sqlplus回车

    输入用户和命令

    示例:切换到scott用户

    conn scott/tiger

    在scott 用户默认提供有一张emp雇员表,我们使用select语句查询一下。

    select * from emp;

    为了格式化显示我们使用一下命令:

    set linesize 300 –表示设置行的尺寸

    set pagesize 30 –表示设置每页显示多少记录

    服务的配置

    在win 的服务中,把Oracle相关的服务自动设置为手动。

    oracle服务的开启

    监听服务OracleOraDb11g_home1TNSListener

    实例服务OracleServiceORAC

    开启监听和实例服务之后我们就可以正常使用sqlplus来操作oracle了。

    基本的SQL语句示例(增删改查)

    select * from emp;

    select * from dept;

    示例:查询所有雇员的雇员编号、雇员姓名、薪资、职位。

    select empno,ename,sal,job

    from emp;

    示例:查询所有雇员的雇员编号、雇员姓名、年薪。

    select empno,ename,sal*12

    from emp;

    示例:列出emp表中所有的部门编号(dis)。

    select distinct deptno

    from emp;

    示例:列出emp表中所有的职位及对应的部门编号。

    select distinct job,deptno

    from emp;

    切换用户、虚拟表dual

    切换用户时,sys用户必须使用dba身份登录

    conn sys/change_on_install as sysdba

    conn system/manager

    conn scott/tiger

    conn sh/sh

    虚拟表dual

    now() –MySQL日期(函数)

    sysdate –Oracle日期(伪列)

    select sysdate from emp;(不用虚拟表,不方便)

    select sysdate from dual;

    接下来的内容要求有MySql基础。

    练习题目:

    题目1:查询每个部门的平均薪水,之后显示部门平均薪水>2000的部门编号和其平均薪水。

    select avg(sal) from emp group by deptno;

    select deptno,avg(sal)

    from emp

    group by deptno having avg(sal)>2000;

    题目2:描述SQL语句:select deptno,avg(sal) from emp where sal>2000 group by deptno;

    用文字描述,注意:薪资大于2000的雇员筛选出,对筛选出的数据再分组。

    题目2扩展:查询在平均薪水大于2000的部门中,薪水大于三千的员工所在部门的部门编号,部门平均薪水。

    select deptno,avg(sal)

    from emp

    group by deptno having avg(sal)>2000;

    select deptno,avg(sal)

    from emp

    where deptno in(select deptno

             from emp

             group by deptno having avg(sal)>2000)

             and sal >3000

    group by deptno;

    其实与以下语句是等价的

    select deptno,avg(sal)

    from emp

    where sal>3000

    group by deptno having avg(sal)>2000;

    题目3:查询每个部门的薪水和,再计算出所有部门的薪水的平均值。

    select sum(sal)

    from emp

    group by deptno;

    select deptno,sum(sal),avg(sal)

    from emp

    group by deptno;

  • 相关阅读:
    恐怖的东西,C#进入前四,进入正轨。
    JavaScript高级培训-自定义对象
    优秀程序员无他善假于物也
    Java基础知识之泛型全接触
    Haskell函数式编程之二递归
    敏捷的写博客
    生命、宇宙及万物的终极答案《图灵的秘密》读后感
    Java基础知识之Enum全接触
    WebDriver自动化测试利器剖析
    Haskell函数式编程之三纯函数式编程特点
  • 原文地址:https://www.cnblogs.com/xiaominY/p/7889325.html
Copyright © 2020-2023  润新知