Oracle笔记——安装以及简单查询

准备工作:

安装Oracle(Oracle11g):

https://www.2cto.com/database/201701/588135.html

卸载Oracle(安装出错重新安装时需要):

https://blog.csdn.net/Devin_LiuYM/article/details/59539020

访问数据库

方法一:

Sqlplus:sqlplus是Oracle自带的访问Oracle数据库的工具

打开运行(或者win + R)输入sqlplus点击回车

方法二:

CMD运行:通过Windows系统自带的cmd进入Oracle

  • 1.环境变量
  • 2.打开运行(或者win + R)输入 sqlplus 用户/密码

SQL语句

SQL语言分类:

数据定义语言(DDL Data Definition):
  • create创建
  • alter更改
  • truncate截断
  • drop删除
数据操纵语言(DML Data Manipulation Language):
  • insert插入
  • select选择
  • delete删除
  • update更新
事务控制语言(TCL Transaction Control Language):
  • commit提交
  • savepoint保存点
  • rollback回滚
数据控制语言(DCL Data Control Language):
  • grant授予
  • revoke回收

简单查询(执行顺序)

DISTINCT:消除重复

  • 【3.选择所需要的数据链】SELECT[DISTINCT] * | 列 [别名],列 [别名]…
  • 【1.确定数据来源】FROM 表名称 [别名]
  • 【2.筛选数据行】[WHERE限定条件]
数据连接查询:用 “||”(EMPNO与ENAME分别是表emp中的字段)

例子:SELECT EMPNO || ENAME FROM EMP

EMPNO||ENAME

  • 7369SMITH
  • 7499ALLEN
    如上所示:|| 是将字段做了拼接然后展示出来

关系运算符

关系运算符主要进行大小的判断

  1. where
    Select * from emp where sal<1200;

Select * from emp where sal=1200;

  • 对于 = 需要注意:
    也可以用来查询字符串
    Select * from emp where ename = ‘SMITH‘;
  • 在oracle中,数据是区分大小写的。
    对于不等于的判断,有两个 ‘!=‘,’<>’;
    除了and 与 or之外,还可以使用NOT进行求反
    Select * from emp where not sal>2000;
    取得是 sal不大于两千的数,也就是小于等于。

范围运算between..and

  • between..and的主要功能是进行范围的查询,其使用语法形式如下
  • Where 字段|数值 between 最小值 and 最大值。

使用between。。and与关系运算符相比效率更高。

  • 在Oracle中的所有运算符都不受数据类型的控制,在之前使用的数字进行判断,除了数字外,还可以用字符串或者是日期判断,重点看日期判断

    例子:

  • select * from emp where hiredate between ‘01-1月-1981’and’31-12月-1981’

空判断

在某些数据列上是允许存在null值的,但是对于null不能够使用关系运算符进行判断,可以使用is null来判断为空用is not null 来判断不为空


-查询所有领取佣金的雇员

  • select * from emp where comm is not null

In操作符(谓词IN)

In指的是根据一个指定的范围进行数据查询

  • 例子:
  • select * from emp where empno=7499 or empno=7521 or empno=7844;
    如果按照以上代码查询的话,将会查询三次,性能很差,面对指定范围数据查询的时候可以用IN操作
  • select * from emp where empno in(7499,7521,7844);
  • select * from emp where empno in(7499,7521,null);
    将代码变为以上代码,会提升性能,在in中可以使用null

对数据进行筛选的时候也可以用not in

  • select * from emp where empno not in(7499,7521,7844);
    以上代码含义是查询到不包含以上三个中的任意一个。
  • 但是:如果使用not in就不可以使用null

模糊查询

like可以实现数据的模糊查找操作,使用like,必须使用如下两个匹配符号:

  1. “_”:匹配任意一位符号
  2. “%”:匹配任意符号(包含匹配0位、1位、多位)
  3. 字符串用单引号’’

查询排序 order by子句

一般是自然顺序是不可控的,所以往往由用户自己进行排序操作。那么使用orderby

  • 【3.选择所需要的数据链】SELECT[DISTINCT] * | 列 [别名],列 [别名]…
  • 【1.确定数据来源】FROM 表名称 [别名]
  • 【2.筛选数据行】[WHERE限定条件]
  • 【4.数据排序】[ORDER BY 排序字段 [ASC|DESC],排序字段 [ASC|DESC],…]
    Order by 是在select后面执行,说明它可以使用select定义的别名:
  • 升序:ASC默认不写就是升序
  • 降序:DESC,由高到低排序
    排序可以在任意字符串上进行,包括字符串、日期
  • 例:
  • 按照日期排序降序
  • select * from emp order by hiredate desc

总结:

Select子句确定数据列;
Where子句控制数据行;
Orderby子句永远最后执行。