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回收

简单查询(执行顺序)

注:以下所有sql示例的表,为Oracle下scott用户中的默认的表

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

单行函数(scott用户下测试)

单行函数可分为以下几种:符串函数、数值函数、日期函数、通用函数

字符串函数

字符串函数是针对字符串数据进行处理的函数
对字符串进行处理:UPPER()、LOWER()、REPLACE()、LENGTH()
INITCAP()、SUBSTR()

UPPER() 小写转大写

格式:UPPER(列|字符串)

  • select upper('Hello')from dual
    
  • 结果为 “HELLO”

例:将用户输入的值转化为大写,并查询:

  • select * from emp where ename=upper('&inputname');
    
  • 加上upper后可以将用户输入的值全部转换为大写,从而提高查询效率
LOWER() 大写转小写

格式:LOWER(列|字符串)

  • select lower('Hello')from dual
    
  • 结果为“hello”
  • dual为虚拟表,upper将所有小写字母转化为大写,lower将所有大写字母转化为小写。
REPLACE() 字符串的替换
LENGTH() 计算字符串的长度

语法: 数字 LENGTH(列 | 数字)

  •  select ename,length(ename) from emp;
    
INITCAP() 首字母大写

语法:字符串 INITCAP(列 | 数据)

  •  select initcap('helloworld')from dual
    
  • 结果 “Helloworld”
SUBSTR() 字符串的截取

SUBSTR(‘被截取的字符串’,指定截取位置,指定结束位置(如果不写默认截取到末尾))

  • 注意:
截取字符串的下标是从1开始的,也就是说截取字符串的下标及时,无论开始点输入0或者是1都当做1来计算。
  • oracle中支持负数截取

总结:

 Select子句确定数据列;
 Where子句控制数据行;
 Orderby子句永远最后执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值