oracle初学者笔记

永久表创建

 permanent永久表空间关键字

创建用户

创建用户未赋予权限 

分配链接权限

分配系统权限

 创建表

追加字段 

修改字段

修改字段名

删除字段名

删除表

 

 插入数据

修改语句

删除语句 

删除一行

删除所有数据并且不需要commit

 比较truncate和delete实现数据删除?

1.delete删除的数据可以rollback;

2.delete删除可能产生碎片,并且不释放空间;

3.truncate是先摧毁表结构,再重建表结构。

简单查询语句

1.精确查询

2.模糊查询

3.and运算符

 4.or运算符

 5.and和or运算符混合使用

 6.范围查询

 7.空值查询

8.去重复操作

9.排序

10.基于伪列的查询 

rowid本身就是物理地址,具有唯一性,可不用创建主键

 11.聚合统计

1)求和sum

 

2)平均avg

 3)最大值

4)最小值

5)统计个数

 6)分组统计(select后一定是分组聚合的条件或者是聚合函数)

 

 7)分组后条件查询having

 多表连接查询

1.内连接查询

需求:查询显示业主编号,业主名称,业主类型名称

需求:查询显示业主编号,业主名称,地址和业主类型 

需求:查询显示业主编号,业主名称,地址,所属区域,业主分类

需求:查询显示业主编号,业主名称,地址,所属区域,收费员,业主分类 

 2.外连接-左外连接

需求:查询业主的账务记录,显示业主编号,名称,年,月,金额。如果业主没有帐务记录也要列出姓名(使用SQL1999标准) 

oracle的语法

 3.外连接-右外连接

使用SQL1999标准

 oracle的语法

子查询(嵌套查询)

1.where 子句中的子查询

1)单行子查询

只返回一条记录

单行操作符

需求:查询2012年1月用水量大于平均值的台账记录

2)多行子查询-in运算符

需求:查询地址编号为1、3、4的业主记录

需求:查询地址含有‘花园’的业主信息

需求:查询地址不含有‘花园’的业主信息

 2.from子句中的子查询

需求:查询显示业主编号,业主名称,业主类型名称,条件为业主类型为’居民‘,使用子查询实现

 3.select子句中的子查询

需求:列出业主信息,包括ID,名称,所属地址

 需求:列出业主信息,包括ID,名称,所属地址,所属区域

分页查询 

1.简单分页

 2.基于排序的分页(rownum和排序优先级是生成rownum在排序)

字符函数

1.length()求字符串长度

 2.substr(源字符串,从第几位,截取字符数) 求字符串子串

3.concat() 字符串拼接

 

 数字函数

1.round() 四舍五入函数 

2.trunc()数字截取

3.mod()取模 

日期函数 

1.add_months()加月函数

2.last_day()求所在月最后一天

3.trunc()日期截取 (把时间截取掉)

 

按月截取 

按年截取

按小时截取 

 

按分钟截取

 

 转换函数

1.数字转字符串to_char()

2.日期转字符串to_char() 

3.字符串转日期to_date()

4.字符串转数字

空值处理函数NVL

 需求:显示价格表中业主类型ID为1的价格记录,如果上限值为NULL,则显示99999999999

 

空值处理函数NVL2

条件取值 decode()

 条件取值 case when then

 分析函数

第一种:值相同,排名相同,序号跳跃

 第二种:值相同,排名相同,序号连续

第三种:序号连续,无论值是否相等

 用分析函数做分页

 集合运算
1.并集

去重

不去重

2.交集

 

3.差集 

 用minus实现分页

 

 视图

使用视图的优点:

1.简化数据操作:视图可以简化用户处理数据的方式。

2.着重于特定数据:不必要的数据或敏感数据可以不出现在视图中。

3.视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。

4.提供向后兼容性:视图使用户能够在表的架构更改时为表创建向后兼容接口。

创建简单视图

需求:创建视图:业主类型为1的业主信息

查询视图 

修改视图

 带检查约束的视图

需求:根据地址表创建视图,内容为区域为2的记录

 

 只读视图的创建与使用

需求:将上边的视图变为只读

 带错误的视图创建

复杂视图创建 -多表关联 

创建聚合统计的复杂视图

 物化视图

什么是物化视图?

        视图是一个虚拟表(也可以认为是一条语句),基于它创建时指定的查询语句返回的结果集。每次访问它都会导致这个查询语句被执行一次。为了避免每次访问都执行这个查询,可以将这个查询结果集存储到一个物化视图(也叫实体化视图)。

        物化视图与普通的视图相比的区别是物化视图是建立的副本,它类似于一张表,需要占用存储空间。而对一个物化视图查询的执行效率与查询一个表是一样的。

创建手动刷新物化视图

需求:查询地址ID,地址名称和所属区域名称

手动刷新语句

 创建自动刷新物化视图

创建不生成数据的物化视图 

 创建增量更新的物化视图

序列

创建序列

查找序列的下一个值 

获取序列当前值

索引

什么是索引

        索引的用于加速数据存取的数据对象。合理的使用索引可以大大降低I/O次数,从而提高数据访问性能。

        索引是需要占据存储空间的,也可以理解为是一种特殊的数据。形式类似于树,而树的节点存储的就是每条记录的物理地址,也就是伪列。

创建普通索引 

创建唯一索引

需求:在业主表的水表编号一列创建唯一索引

 创建复合索引

  变量声明

 select into 赋值

属性类型(引用型 表名.列名%type)

属性类型(记录型 表%rowtype)

 异常

 判断语句

无条件循环

有条件循环

 for循环

 游标

什么是游标?

游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。我们可以把游标理解为PL/SQL中的结果集。

简单游标

需求:打印业主类型为1价格表

 复杂游标

 for循环游标

 

 存储函数

什么是存储函数

存储函数又称为自定义函数。可以接收一个或多个参数,返回一个结果。在函数中我们可以使用PL/SQL进行逻辑的处理。 

创建存储函数

 查询存储函数

存储过程

存储过程是被命名的PL/SQL块,存储与数据库中,是数据库对象的一种。应用程序可以调用存储过程,执行相应的逻辑。

        存储过程与存储函数都可以封装一定的业务逻辑并返回结果,存在区别如下:

1.存储函数中有返回值,且必须返回;而存储过程没有返回值,可以通过传出参数返回多个值;

2.存储函数可以在select语句中直接使用,而存储过程不能。过程多数是别应用程序调用;

3.存储函数一般都是封装一个查询结果,而存储过程一般都封装一段事务代码。

触发器

什么是触发器?

数据库触发器是一个与表相关联的、存储的PL/SQL程序。每当一个特定的数据操作语句在指定的表上发出时,oracle自动地执行触发器中定义的语句序列。

触发器可用于

1.数据确认

2.实施复杂的安全性检查

3.做审计,跟踪表上所作的数据操作等

4.数据的备份和同步

​​​​​​​

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值