Oracle数据库 拾漏补缺
时间:2022-04-29
本文章向大家介绍Oracle数据库 拾漏补缺,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
select语句的基本使用
可以查询需要的列,行,可以进行多表链接,连接查询。
select e.*,e.sal/30 from p_emp e
select 后面跟的是要显示的结果,可以是通过运算或者连接符号得出的伪列
null 空值
在数据库中不确定的值,未定义的值叫做空值
空值不能引入到运算中,+ - * / 和空值的结果都是空
注意:在查询中可以给表定义一个别名以便于多个表的区分
|| 链接运算符
|| 运算符可以链接列或者字符串到另一个列,生成的字符串表达式作为一个目标列
--将姓名和职位显示到一起
select e.ename||e.job from p_emp e ;
--更有好的显示方法
select e.ename||' 的职务是 '||e.job from p_emp e ;
|| 操作符也可以用于批量操作
--生成批量删除表命令
select 'drop table '|| tname || ';' from tab
distinct 查询去重复
--去重复
select distinct e.job from p_emp e;
限制数据的返回
where 关键字
where 后面跟判断语句 只有表中结果为 true 结果会显示
注意:如果用字符作条件,需要注意大小写
查询Student表中“95031”班
select s.* from student s where s.class= '95031'
and:连接条件, 与
or: 或
not: 非
in:属于
后面可以是多个数据,但数据类型需要一致
查找空值
不能用 = , 因为在 select 中 = 是比较大小,但是 null 空值 没有大小
注意: 在 update 中, = 是赋值, = 后面可以跟 null。
应使用 is not null
--去空值
select e.job from p_emp e where e.mgr is not null;
like 模糊匹配
exits:exists其实等同于表关联后,只取主表部分内容而已,用exists时 小表在前大表在后
connect by
一般用来查找存在父子关系的数据,也就是树形结构的数据;其返还的数据也能够明确的区分出每一层的数据。
select * from table [start with condition1]
connect by [prior] id=parentid
--这种用法就表示从下往上查找数据,可以理解为从叶子节点往上查找父级几点,用第一层数据的parentid去跟表记录里面的id进行匹配,匹配成功那么查找出来的就是第二层数据;
--上面的那种就是从父级节点往下查找叶子节点。
select * from table [start with condition1]
connect by id= [prior] parentid
--第一种,修改prior关键字位置
select t.*, level, CONNECT_BY_ROOT(id)
from tab_test t
start with t.id = 4
connect by t.id = prior t.fid;
--第二种,prior关键字不动 调换后面的id=fid逻辑关系的顺序
select t.*, level, CONNECT_BY_ROOT(id)
from tab_test t
start with t.id = 4
connect by prior t.fid = t.id;
- 数据可视化的秘密
- EntityFramework Core 学习扫盲
- 协议森林03 IP接力赛 (IP, ARP, RIP和BGP协议)
- 从输入url到页面返回到底发生了什么
- 协议森林04 地址耗尽危机 (IPv4与IPv6地址)
- 使用抽象类和接口的优解
- 协议森林05 我尽力 (IP协议详解)
- [译]C#和.NET中的字符串
- 协议森林14 逆袭 (CIDR与NAT)
- 数据库中的左连接(left join)和右连接(right join)区别
- .NET Core全面扫盲贴
- 协议森林13 9527 (DNS协议)
- 协议森林09 爱的传声筒 (TCP连接)
- 协议森林08 不放弃 (TCP协议与流通信)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- golang 多协程的同步方法总结
- C++核心准则T.144:不要特化函数模板
- 三千字带你搞懂XXL-JOB任务调度平台
- Python-科学计算-pandas-14-df按行按列进行转换
- Python实现扫码工具
- C++核心准则T.150:用static_assert检查类和概念的匹配性
- 初学者也能快速写Python脚本啦——通用功能代码分享
- C++核心准则CPL.1:C++比C更好
- C++核心准则CPL.2:如果你必须使用C,使用C和C++的共同子集,并且使用C++编译器编译C代码
- C++核心准则SF.1:如果你的项目没有正在遵从的其他习惯,为代码文件使用.cpp后缀,为接口文件使用.h后缀
- 群晖NAS搭建测速网站,支持万兆
- 二叉树:你真的会翻转二叉树么?
- C++核心准则SF.2:.h文件一定不能包含对象定义或者非inline函数定义
- Vue.js 源码⽬录设计
- 本周小结!(二叉树)