zoukankan      html  css  js  c++  java
  • Oracle(二)知识点总结

    1、orcale不区分大小写,标志符(表名,列名,别名等)是区分大小写的;标志符没有加双引号,默认自动转换为大写执行
    2、orcale中双引号作用:转义非法标志符为合法,强制标志符原始大小写执行
    3、oracle中日期类型没有常量这一说,默认日期字符串格式dd-mon-rr
    4、oracle空值和任何值作比较运算结果一定为假,oracle数据库没有布尔值true和false
    5、in(值列表):如果表达式等于值列表中的任意一个值,就为真;not in(值列表):表达式不等于值列表中的任意一个值,才为真
    6、like:模糊查询 not like 逻辑非,通配符%代表0到多个任意字符 _代表1个任意字符
    7、排序子句:order by 排序表达式 asc升序(不写默认) desc降序,排序操作非常耗费资源,大量数据排序,必须提前做好数据库的优化
    8、单行函数,每次执行函数,传入一行列值,返回一个结果;多行函数,每次执行函数,传入多行列值,返回一个结果
    9、RDBMS关系型数据库管理系统:核心就是表和表之间的关系
    主表:数据被从表引用
    从表:从主表中引用数据
    主键:主表中的唯一标识列,主键的值不能重复,不能为空
    外键:从主表中引用主键数据的那一列,外键值可以重复,也可以为空,必须是引用的主键列中存在的值
    表和表之间的三种关系:
    一对多:主表的一条记录对应从表的多条记录
    一对一:主表的一条记录对应从表的一条记录
    多对多:一个表的多条记录对应另一个的多条记录(必须通过中间表来衔接,由两个一对多关系间接形成)
    10、数据库设计三范式:
    第一范式:列不可分割(列的数据必须明确,不能一个列表达两个数据)
    第二范式:表必须有一个主键标识符
    第三范式:从表中不能出现引用主表中的非主键列
    11、SQL99连接查询,效率比92语法高
    内连接:inner join,仅查询满足连接条件的数据(默认)
    外连接:查询满足连接条件的数据,不满足连接条件的数据也返回
    左外连接:left outer join
    有外连接:right outer join
    满外连接:full outer join
    连接条件:on 连接条件表达式
    自连接:把一个表看成两个表
    12、分组函数
    sum求和、avg求平均值、max求最大值、min求最小值、count计数
    13、子查询:查询语句中包含的查询,也称为嵌套查询,主查询子查询(外查询内查询),如果同时能使用子查询和连接查询实现,尽量使用连接查询,效率高,子查询必须写在括号中,尽量写在条件右侧,提高效率
    14、any:逻辑或,例如 >any;all:逻辑与,例如 >all
    15、 标准子查询 相关子查询(内外交互式相关子查询)
    执行顺序 子查询先,主查询后 主查询先,子查询后
    使用数据 主查询使用子查询结果 主查询和子查询互相使用查询结果
    执行次数 执行一次 执行次数=主查询的结果集的行数
    16、exists(子查询):如果查询有结果,返回真,否则返回假;not exists(子查询):如果子查询有结果,返回假,否则返回真
    17、DML语句:数据操纵语言,插入,删除,修改表数据
    插入单行数据:insert into 表名[(列1,列2,……)]values(值1,值2,……)所有值必须个数,顺序,类型保持一致,省略列列表,默认就是所有列
    多行插入:把一个子查询的结果直接插入到另一个表,insert into 表名[(列1,列2,……)]子查询
    修改数据:主键值已经生成,后期不允许修改,update 表名 set 列1=值,列2=值,……[where子句]
    删除数据:delete from 表名 [where子句]
    18、数据事务transaction:保证一个操作的完整性,要么一起成功,要么都不执行
    事务的ACID四个特性:
    原子性:提个实务操作必须是一个完整操作,要么一起成功,要么都不执行
    一致性:必须从一个正确的状态直接过度到下一个正确的状态
    隔离性:一个会话无法访问另一个会话未提交的数据(脏数据)
    持久性:事务一旦提交,数据改变会直接持久化到数据库,其他会话可以访问,不能回退
    开始事务:任意一条DML都会开启一个新事务
    结束事务:
    提交事务:
    commit语句
    DDL,DCL语句自动提交事务
    正常退出客户端工具(例如命令行exit退出)
    回退事务:
    rollback语句
    异常退出客户端工具
    19、锁机制:避免用户并发访问数据,锁在事务结束后被释放
    锁按照粒度划分:行级锁和表级锁
    锁按照类型划分:
    共享锁(s锁):如果一个资源(行、表)加上了共享锁,其他会话可以给这个资源也加上共享锁,但是不能加独占锁
    独占锁(x锁,排他锁):如果一个资源(行、表)加上了独占锁,其他会话不能给这个资源加任何锁
    锁按照加锁方式划分:自动锁和手动锁
    自动加锁的情况:
    查询语句:默认不加任何锁
    DML语句:行独占锁,表共享锁
    DDL语句:表独占锁
    手动加锁:
    查询加锁:查询语句 for update;(行独占锁,表共享锁,会像DML一样开启事务)
    手动锁表:
    乐观锁定:lock table 表名 in share mode;
    悲观锁定:lock table 表名 in exclusive mode;
    死锁:两个会话的事务相互等待对方释放锁才能继续向下进行
    20、DDL(数据定义语言):创建(create table),修改(alert table),删除(drop table)数据库对象
    数据表的分类:用户表和系统表(数据字典)
    用户表 : 用户自己创建的数据表
    系统表(数据字典):数据库本身创建维护的,存储的是系统信息
    清空表 delete truncate
    可以回退 不能回退
    逻辑删除 物理删除
    记录日志 不记录日志
    21、约束:限制对表的DML操作,约束既可以创建表同时添加,也可以表创建后追加
    not null :非空约束
    primary key:主键约束,限制主键列值不能为空且不能重复,一个表只能有一个主键,一个主键可以由多列组成
    unique:唯一值约束,限制列值不能重复,不限制空值,一个表可以有多个唯一值约束
    check:检查约束, 限制列值符合自定义条件,忽略空值检查,空值不做检查
    foreign key:外键约束, 限制外键列值必须是引用的主表中的主键列中存在的值
    追加约束
    alter table 表名
    add constraints 约束具体设置:
    外键级联删除:删除主表数据会自动删除引用的从表数据
    外键级联置空:删除主表数据会自动级联引用的从表外键为空值
    22、视图:保存的不是真实数据,而是查询语句(除非是物理化视图,保存的是真实数据)
    作用:控制用户访问权限,简化一些复杂的查询
    创建视图对象:必须有create view权限,如果视图的查询语句中有衍生列,必须起别名
    create or replace view 视图名称
    as
    查询语句
    物理化视图:存储的是物理数据,需要通过程序手动刷新同步数据
    23、序列:自动生成的自增编号,主要用于生成主键值
    24、索引:加快查询速度:但是会降低DML速度,默认情况下,条件检索做的是全表扫描,创建的索引默认都是B-TREE索引,适合列基数比较高的情况
    RBO基于规则的优化:如果列有索引,查询一定会走索引,即使走索引更慢,也会走索引
    CBO基于代价的优化:数据库只能判断是否应该走索引,如果不走索引更快,那么有索引也不会走索引,做全表扫描(oracle默认)
    适合创建索引的清空:
    1、列的基数比较高(重复值很少)
    2、不以空值做条件,索引对查询空值无效
    3、列值经常作为条件查询
    4、表数据量很大
    5、经常做查询操作,很少做DML操作
    6、满足查询条件的数据不超过总记录的15%
    7、模糊查询不走索引,如果模糊查询希望提高效率,必须使用全文检索技术
    25、同义词:给对象起别名,简化对象的名称
    26、DCL:用户权限管理
    授权语句:grant 权限1,权限2,…… to 用户;
    收权语句:revoke 权限1,权限2,…… from 用户;
    27、set集合运算:把多个查询结果进行并集,交集和补集运算,多个查询结果必须是列的个数,顺序,类型保持一致
    并集union(自动消除重复行)
    并集union all(不消除重复行)
    交集intersect
    补集minus

    原文:https://blog.csdn.net/zzw811131619/article/details/83342818
    Oracle高级篇:https://blog.csdn.net/whandgdh/column/info/26514/2

  • 相关阅读:
    硬件设计:蓝牙--蓝牙射频测试
    硬件设计:逻辑电平--差分信号(PECL、LVDS、CML)电平匹配
    硬件设计:元器件--二极管
    硬件设计:逻辑电平--CML
    硬件设计:POE--POE受电设备(PD)电路工作原理
    硬件设计:逻辑电平--LVDS
    硬件设计--阻抗匹配
    硬件设计:电路防护--TVS管
    硬件设计:POE--POE基础
    硬件设计:元器件--二极管常用的七种用法
  • 原文地址:https://www.cnblogs.com/aaronRhythm/p/11289659.html
Copyright © 2011-2022 走看看