• 结构化查询语言(SQL语言)的分类
    • DQL:数据查询语言 select from where
    • DML:数据操作语言 update insert delete,用于更新、新增、删除表中的数据
    • DDL:数据定义语言 CREATE、DROP、ALTER,用于定义、销毁、修改数据库对象
    • DCL:数据控制语言 GRANT和REVOKE,用于进行授权和收回权限
    • TPL:事务控制语言 COMMIT和ROLLBACK,用于提交和回滚。
    • select * from emp;

  • SELECT子句 表示所需检索的数据列。
  • FROM子句 表示检索的数据来自哪个表。
  • from 表名
  • select 列名
  • 语句:子句的集合,简单来说就是语句就是由子句组成的 select * from emp;
  • 子句:部分的SQL语句 from emp select *
  • SQL语句的书写规则:**
    • ①对象名和关键字不区分大小写 from/From/FrOm SeleCt/select
    • ②关键字最好使用大写
    • ③关键字不可以缩写、分开以及跨行书写
    • ④可以单行来书写,也可以书写多行,建议分多行书写

      1、查询所有员工信息 是通配符表示所有列
      select
      from emp;
      SelEct *
      from EmP;
      2、查询所有员工信息
      select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp; --执行速度较快
      3、查询所有员工的姓名和入职日期 (选择指定列)
      select ename,hiredate from emp;


      表结构
      oracle中的数据类型
      数据库中的数据类型的作用:规定数据列能够存放数据的类型
      NUMBER(4)整型 -10^4~10^4-1 NUMBER(7,2)浮点型 12323.11 VARCHAR2(10):字符类型 date:日期类型
      EMP:
      empno: 雇员编号
      ename: 雇员姓名
      job: 工作
      mgr: 经理编号
      hiredate: 入职日期
      sal: 工资
      comm: 奖金
      deptno: 部门编号


      select * from dept;
      dept
      deptno: 部门编号
      dname: 部门名称
      loc: 部门地点


  • 算术运算符 + — * /
    • 算术运算符优先级 * /> + -
    • 乘除优先于加减
    • 相同优先权的表达式按照从左至右的顺序依次计算
    • 括弧可以提高优先权,并使表达式的描述更为清晰

      4、查询所有员工薪资增长500之后的工资
      select empno,ename,sal+500,sal from emp;
      5、查询所有员工增长200之后的年薪(不计奖金)
      select ename,empno,sal,(sal+200)*12 from emp;


      1.员工转正后,月薪上调20%,请查询出所有员工转正后的月薪。
      select sal1.2,sal from emp;
      2.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得(不考虑奖金部分,年薪的试用期6个月的月薪+转正后6个月的月薪)
      select (sal+sal
      1.2)*6 from emp;


  • 空值NULL
    • 空值是指一种无效的、未赋值、未知的或不可用的值。
    • 空值不同于零或者空格。
    • 注意:和null做算数运算后得到的结果都为null

6、查询所有员工年薪包括奖金部分
select sal,ename,empno,sal12+comm from emp;
select sal,ename,empno,sal
12+nvl(comm,0) from emp;

  • 排除null对算术运算的影响 nvl(a,b):如果a为null用b替换,否者为a

  • 列别名
    • 作用:更改结果集列名,增加可阅读性
    • 语法:
      • 列名 as 别名
      • 列名 别名
    • 注意:以下三种情况列别名两侧需要添加双引号
      • 列别名中包含有空格
      • 列别名中要求区分大小写
      • 列别名中包含有特殊字符
        select sal,ename,empno,sal12+nvl(comm,0) as 年薪 from emp;
        select sal,ename,empno,sal
        12+nvl(comm,0) as yearSal from emp;
        select sal,ename,empno,sal12+nvl(comm,0) yearSal from emp;
        select sal,ename,empno,sal
        12+nvl(comm,0) "year Sal" from emp; --列别名有空格
        select sal,ename,empno,sal12+nvl(comm,0) "yearSal" from emp; --列别名中要求区分大小写
        select sal,ename,empno,sal
        12+nvl(comm,0) "$yearSal" from emp; --列别名中包含有特殊字符

1.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的所有收入(需考虑奖金部分),要求显示列标题为员工姓名,工资收入,奖金收入,总收入。
select sal 工资收入,ename 员工姓名,empno 员工编号,sal*12+nvl(comm,0) 年薪 from emp;

--------------------连接操作符------------------------------
|| 作用:用来连接字符串与列 列与列
列与列
7、查询员工的工资信息,显示的结果为 员工姓名+员工工资(simth800)
select (ename || sal) 工资 from emp;
--字符串与列
8、查询员工的姓名信息,显示的结果为 员工姓名是员工(simth是员工)
select ename || '是员工' from emp;

----------------------原义字符------------------------------

  • 原义字符串是包含在SELECT列表中的一个字符、一个数字或一个日期。
  • 日期和字符字面值必须用单引号引起来。
  • 每个原义字符串都会在每个数据行输出中出现

9、查询员工的姓名信息,显示的结果为 员工姓名是员工(simth是员工)
select ename || '是员工' from emp;
select ename || 6666 from emp;
10、查询员工的工资信息,显示的结果为 员工姓名+员工工资是+员工工资(simth的工资是800)
select ename || '的工资是' || sal 工资 from emp;
--------------------------消除重复行---------------------------

  • 在SELECT字句中使用关键字DISTINCT可消除重复行

11、查询有员工的部门
select distinct deptno from emp;
select from emp;
select
from dept;

--------------------------查看表结构----------------------
注意:desc 表名命令必须去命令行窗口才能执行
desc 表名

1.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的所有收入(需考虑奖金部分),要求显示格式为:XXX的第一年总收入为XXX。
select sal,ename,empno,ename || '的第一年总收入为' || (sal*12+nvl(comm,0)) from emp;

2.查询员工表中一共有哪几种岗位类型。
select distinct job from emp;

最后修改:2020 年 11 月 18 日 12 : 30 PM
如果觉得我的文章对你有用,请随意赞赏