学习Oracle的历程 (三)

北战南征 提交于 2020-08-06 09:35:27

    学习就在于坚持,在于持之以恒的去努力!

    今天,我们接着学习Oracle的相关内容, (#^.^#)重点来了!

    因为今天的是关于语句操作的所以小喵就只留截图了哦!

一. 表的操作

    1) 创建表

        语法1 : 创建一个新表

create table 表名(
    字段名   类型   [约束],
    字段名2  类型   [约束],
);

   

 

     语法2:拷贝一个表(结构 + 数据 )

create table 新表名 as 查询语句

    

数据类型

分类     类型  描述 
数值类型 NUMBER  表示整数和浮点数
  INT/INTEGER 整数
  FLOAT 双精度浮点数
字符类型 CHAR(3) 定长字符,最大2000B    
  NCHAR(1) 定长unicode 字符,最大1000B  
  VARCHAR2(3 变长字符,最大4000B
  NVARCHAR2(1) 变长unicode字符,最大1000B
  LONG 变长字符类型,最大4GB(已淘汰)
日期类型 DATE 日期,精确到秒
  TIMESTAMP 日期类型,精确到小数秒
大对象类型 LOB 8-12TB数据 并可分段处理
  CLOB 存储字符,最大可以存4G
  BLOB 存储图像、声音、视频等二进制数据,最多可以存4G

2) 修改表

alter table 表名 具体操作  数据;
-- 添加
alter table 表名 add (列描述,....);
-- 修改
alter table 表名 modify (列描述,....);
-- 删除列
alter table 表名 drop column 列名;

 

3)删除表

drop table 表名

 

二.约束

    1. 约束的概念及作用

        约束是可以更好的保证数据库数据的完整性和一致性的一套机制。

        约束可以限制加入表的数据的类型。

        如果存在依赖关系,约束可以防止错误的删除数据,也可以级联删除数据。

        数据库的约束可以认为是对表的数据的一种规则。

    2. 约束创建的时机

        创建表的时候,同时创建约束。

        表结构创建完成后,可以再添加约束。

    3.  常见的约束类型   

         >    PRIMARY KEY 主键约束

        >     NOT NULL  非空约束

        >     UNIQUE 唯一约束

        >     DEFAULT 默认约束

        >     CHECK—用来检查一个字段的值是否符合某表达式,表达式的结果必须是布尔值。

        >     FOREIGN KEY 外键约束

关键字 描述 特点
primary key 关键字约束 被关键字约束修饰的列 不允许为空,不允许重复
not null 非空约束 被非空约束修饰的列 不允许为空
unique 唯一约束 被唯一约束修饰的列 不允许重复
default 默认约束 被默认约束修饰的列 如果只为null,使用默认值
foreign key 外键约束 通过主外键关系描述一对多关系
check 检查约束 被检查约束修饰的列 修改数据时,使用检查的条件进行校验

        1> 主键约束  ----- primary key

    

        2>唯一约束  ------ unique

            3>非空约束   -----   not null

        

 

       4>默认约束  ----- default

         5> 检查约束  ----- check

            6> 外键约束  ---- foreign key

   4.约束的应用选择

在应用开发中,主键约束一般要设置,其他如非空、唯一、默认值、检查等约束,可以根据实际情况来添加。而外键约束是否要设置,是存在一点争议的。(争议在性能上

一般建议:

  1. 在大型系统中(性能要求不高,安全要求高),可以使用外键;在大型系统中(性能要求高,安全自己控制),不用外键;小系统随便。
  2. 不用外键的话,可以用程序控制数据一致性和完整性,可以在代码的数据层通过代码来保证一致性和完整性。
  3. 用外键要适当,不能过分追求

总结 :

在项目中,我们只使用了主键约束,其余约束没有使用。因为约束越多,

数据库占用的空间越大、执行的速度越慢,而且一般违反了约束,我们无法控制,

所以我们的项目中是通过页面js脚本以及java 的业务层对 非法数据进行过滤.

 

这样我们的约束就告一段落了,其他就需要小伙伴们勤加练习了!

 

三 . DML 语句/操作

    1) 添加

    

    2) 修改

    3)删除

比较truncatedelete实现数据删除?

  1. delete删除的数据可以rollback
  2. delete删除可能产生碎片,并且不释放空间
  3. truncate是先摧毁表结构,再重构表结构

 

今天的知识就分享到这里了,

觉得小喵分享的知识对你有帮助的话,就留下你的痕迹吧!

(^_^)~喵~!!

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!