Oracle数据库

Oracle

数据库管理系统(DBMS)

是一种操作和管理数据库的大型软件,用于建立,使用和维护数据库。大部分 DBMS 提供数据定 义语言 DDL (Data Definition Language)和数据操作语言 DML

存储模型

  1. 关系型数据库:关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织

  2. 非关系型数据库

 

SQL语言

命令分类操作

  1. DDL:数据定义语 表管理命令: create:创建;drop:删除;alter:修改;rename: 重命名; truncate:截断

  2. DML:数据管理语 字段管理命令: insert:插入;delete:删除;update:更新;select:查询

    1. DQL:数据查询语

    2. DML:数据管理语

  3. DCL:数据控制语 命令:grant:授权;revoke:回收权利;commit:提交事务;rollback:回滚事务

表结构

 

 

SELECT

条件查询 : select 要查询的数据 from 数据源 where 行过滤条件 order by 排序字段1,排序字段2...;执行流程 : from --> where --> select -> order by

条件判断运算符 : = < > <= >= != <> 条件连接符 : and or not 区间判断 : 条件1 and 条件2 | between 值1 and 值2(相当于>=与<=)

伪列 : 真实不存的,可以是表达式,整数,字符串

虚表 : dual

排序: order by 排序字段1 desc降序|asc升序默认,排序字段2注意:数据源可以为表也可以为结果集.空值不能用=号来做比较,要用is来比较

  1. select:查询

select * from emp;--查询表中所有字段
--执行流程: from --> select
  1. distinct 去重

select distinct deptno from emp;--对结果多条相同数据进行去重
  1. as 取别名

select ename 员工姓名,sal "empSal",sal*12 as "年 薪" from emp e;--as可以省略
  1. nvl(值1,值2) 处理null值

select ename,sal,comm,nvl(comm,0)+1 from emp;--值1为null输出值2,不为null输出值1
  1. in(值列表)

SELECT * FROM EMP WHERE SAL IN (1500, 2000, 2500, 5000);--匹配值列表
  1. escape('A'):将某一字符定义为转意字符

  2. like 模糊匹配查询(%为任意个数任意字符,_一个任意字符)

select * from emp where ename like '%A%%' escape('A');--将A定义为转意字符
  1. exists (结果集)

select *
from emp e
where exists (select deptno, dname
        from dept d
        where dname in ('SALES', 'ACCOUNTING')
          and e.deptno != d.deptno);

 

子查询

查询语句嵌套查询语句 当条件与要查询的数据在不同的数据源,而两个数据源之间存在一定的关联方式,可以子查询中转查询

-- 查询工资比SMITH高的同一部门的员工信息
SELECT *
FROM EMP
WHERE SAL > (SELECT SAL FROM EMP WHERE ENAME = 'SMITH')
  AND DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME = 'SMITH');
SELECT SAL FROM EMP WHERE ENAME = 'SMITH';--子
SELECT DEPTNO FROM EMP WHERE ENAME = 'SMITH';--子

 

函数

内置函数

自定义函数

  1. 单行函数:一条记录返回一条结果 -- trunc 取整

select ename,trunc(months_between(sysdate,hiredate)) from emp;

日期对象与日期字符串之间相互转换 --to_char

select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select sysdate,to_char(sysdate,'yyyy"年"mm"月"dd"日" hh24:mi:ss') from dual;

--to_date

select sysdate,to_date('2022年02月23日','yyyy"年"mm"月"dd"日"') from dual;

 

  1. 多行函数|组合函数、聚合函数:多条记录返回一个结果。

posted @   hello罗先生  阅读(459)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示