zoukankan      html  css  js  c++  java
  • Oracle数据库基础(2)

    第八章 操作数据

    1.描述DML语句

    2.使用INSERT,UPDATE和DELETE命令操作数据

    3.控制事务

    数据操作语言

    1.使用DML语句可执行:

      1.插入新数据

      2.修改已有数据

      3.删除数据

    2.一个事务是DML语句的逻辑工作单元

    INSERT语句

     

    插入空值

     

    INSERT语句中使用函数

     

    从其他表中拷贝记录

     

    UPDATE语句

     

    课堂作业:

    1.

     

    2.

     

    3.

     

    修改记录

     

    使用多列子查询修改记录

     

    修改记录时违反完整性约束

     

    DELETE语句

     

    从表中删除数据

     

    删除的记录基于其他表的记录

     

    数据库的事务

    1.一组DML语句,修改的数据在他们中保持一致

    2.一个DDL语句

    3.一个DCL语句

    4.开始于第一份执行的语句

    5.结束于:

      1.COMMIT或ROLLBACK

      2.DDL or DCL(grant/revoke)语句

      3.某些错误,退出,或系统崩溃

    事务的自动处理

    1.当下列情况发生时事务自动提交:

      1.执行一个DDL语句

      2.执行一个DCL语句

      3.从SQL*Plus正常退出

    2.当从SQL*PLUS中强行退出或系统失败时,十五万自动回滚

    COMMIT和ROLLBAK的优点:

    1.保证数据一致性

    2.在数据永久性生效前重新查看修改的数据

    3.相关逻辑操作单元

    控制事务

     

    提交或回滚前数据的状态:

    1.以前的数据可恢复

    2.当前的用户可看到DML操作的结果

    3.其他用户不能看到DML操作的结果

    4.被操作的数据被锁住,其他用户不能修改这些数据

    提交后数据的状态:

    1.数据的修改被永久写在数据库中

    2.数据以前的状态永久性丢失

    3.所有的用户都能看到操作后的结果

    4.所有的savepoints被去掉

    提交数据

     

    回滚后数据的状态:

     

    回退到某一个标识

     

    语句回滚:

    1.如果一条DML语句执行时失败,只有此语句回退

      1.Oracle执行了一个自动的savepoint

      2.其他的变化被保留

    2.客户应该执行COMMIT或ROLLBACK以结束事务

    事务特性:

    事务的ACID特性:

    1.原子性(atomicity):

      一个事务中包含的所有sql语句都是一个不可分割的单元。

    2.一致性(consistency):

      事务必须确保数据库的状态是一致的。

    3.隔离性(isolation):
      多个事务独立运行,彼此不影响。

    4.持久性(durability)

      事务一旦提交,数据库的变化就会被永久保留下来。

    读一致性:

    1.读一致性保证了查询数据德奥一致的结果。

    2.不同用户修改的数据不会发生冲突。

    3.对相同的数据操作时确保:

      1.查询时不用等写完成

      2.写时不用等查询完成

    第九章 管理表

    数据库的对象

     

    命名规则

    1.必须以字母开头

    2.可包括数字

    3.只能包含A-Z,a-z,0-9,_,$,and#

    4.不要使用oracle的保留字

    5.同一用户的对象不能同名

    创建表:

    必须有:

    1.建表的权限

    2.有存储区域

    CREATE TABLE [schema.]table

            (column datatype [DEFAULT expr];

    可指定:

    1.表名Table name

    2.列名,列的数据类型,列的大小

    引用其他用户的表

     

    缺省选项

     

    建表

     

    查询数据字典

     

    数据类型

     

    使用子查询创建表

     

    使用CTAS创建表

     

    ALTER TABLE语句

     

    增加列

     

    修改列

     

    删除表:

    1.表中所有数据将删除

    2.事务被提交

    3.所有索引被删除

    4.不能回退

    SQL>DROP TABLE dept30;

    Table dropped.

    改变对象名称

     

    截取表的所有记录

    1.TRUNCATE TABLE语句:

      1.删除表中所有记录

      2.复位HWM

      3.释放表的存储空间

    2.不能回退

    3.和DELETE一样,是删除记录的手段之一

    SQL》TRUNCATE TABLE department;

    Table truncated.

    在表中加注释

     

    课堂练习

     

    第十章 约束

    什么是约束(记忆):

    1.约束是表级强制执行的规则

    2.当表中数据有相互依赖性时,可保护数据不被删除

    3.Oracle有如下类型的约束:

      1.NOT NULL

      2.UNIQUE Key

      3.PRIMARY KEY

      4.FOREIGH KEY

      5.CHECK

    约束概念:

    1.Oracle使用SYS_Cn格式命名约束

    2.创建约束:

      1.在建表的同事创建

      2.建表后创建

    3.可定义列级或表级约束

    4.可通过数据字典表查看约束。

    创建约束

     

    非空约束(NOT NULL)

     

    唯一性约束(UNIQUE)

     

    主键约束(PRIMARY KEY )

     

    外键约束(FOREIGN KEY)

     

    外键约束关键字

     1.FOREIGH KEY

      定义子表的哪一列作为外键约束

    2.REFERENCES

      指示主表的参照的列

    3.ON DELETE CASCADE

      删除主表记录时将子表相关记录删除

    4.ON DELETE SET NLL

      将外键引用置为空值

    CHECK约束

     

    加约束

     

    删除约束

     

    使约束失效

     

    使约束生效

     

    查看约束

     

    查看约束建立在哪些列

     

    第十一章 视图

    什么是视图

     

    为什么使用视图:

    1.限制对数据的访问

    2.很容易的写成复杂的查询

    3.允许数据的独立性

    4.不同的视图可获得相同的数据

    简单视图和复杂视图

     

    创建视图

     

     

    查询UESR_VIEWS数据字典视图

     

    修改视图

     

    创建复杂的视图

     

    对视图进行DML操作的规则

     1.可对简单视图执行DML操作

    2.在下列情况下不能删除记录:

      1.视图包括组函数

      2.视图包括GROUP BY子句

      3.视图包括DISTINCT

      4.Rownum为列关键词

    3.在下列情况下不能修改记录:

      1.前面所提到的情况

      2.列是由表达式定义的

      3.包括ROWNUM虚列

    4.在下列情况下不能添加记录:

      1.前面所提到的情况

      2.视图的基表由非空列,但在视图中没有此列

    使用WITH CHECK OPTION子句

     

    删除视图

     

    小结

     

    课堂作业:

     

     

    第十二章 其他数据库对象

    数据库对象

     

    什么是序列号

    1.自动生成唯一的数字

    2.是一个共享的对象

    3.典型的应用于表的主键

    4.可替代应用代码

    5.将序列号值放在缓存中可提高访问速度

    CREATE SEQUENCE语句

     

    创建序列号

     

    确认序列号

     

    使用序列号

     

    修改序列号

     

    什么是索引:

    1.是一种对象

    2.使用指针加快记录访问速度

    3.减小硬盘I/O

    4.索引独立于表而存在

    5.数据库自动使用和维护

    怎么建索引:

    1.自动:

      唯一性索引自动被创建,当定义PRIMARY KEY或UNIQUE约束时。

    2.手动:

      使用CREATE INDEX命令

    创建索引

     

    创建索引规则:

    1.索引列应该经常在WHERE子句中,或是连接条件。

    2.此列值域比较广

    3.此列包含大量空值

    4.在WHERE子句或连接条件中经常一起使用的列

    5.对大表查询的结果小于总数据的2~4%

    6.下列的表不适合建索引:

      1.表很小

      2.列不经常在WHERE子句中使用

      3.对大表查询的结果大于总数据的2~4%

      4.表经常被修改

    确认索引

     

    删除索引

     

    同义词

     

    创建和删除同义词

     

    第十三章 用户及权限

    控制用户的访问

     

    权限

    1.数据库的安全性

      1.系统安全性

      2.数据安全性

    2.系统权限:获得后可访问数据库

    3.对象权限:操作数据库对象的内容

    4.Schema:对象的集合(tables,views,sequences)

    系统权限:

    1.多余100种系统权限可用

    2.DBA有最高系统权限

      1.Create new users

      2.Remave users

      3.Remove tables

      4.Backup tables

    建用户

     

    使用系统权限

     

    授予系统权限

     

    什么是角色

     

    创建角色

     

    改变用户口令

     

    对象权限

     

    授予对象权限

     

    使用WITH GRANT OPTION和PUBLIC关键字

     

    确认权限的数据字典表

     

    收回对象的权限

     

    小结

     

     

    直接插入数据:

     

  • 相关阅读:
    escape
    洛谷 P2158 【仪仗队】
    GIT学习----第五节:管理修改
    前端Webpack
    20 行 JS 代码,实现复制到剪贴板功能
    mysql表分区和分表的实现方式几种以及区别,什么时候用
    微信小程序----解析px、rpx、rem、vw实现页面布局
    微信小程序----相对路径图片不显示
    微信小程序----评价系统中的评星
    微信小程序----session_key失效导致的后台错误wxsp login api aesCbcUtil error info: pad block corrupted
  • 原文地址:https://www.cnblogs.com/luchun/p/8686646.html
Copyright © 2011-2022 走看看