学习Oracle的历程(三)

database

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

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

一. 表的操作

    1) 创建表

        语法1 : 创建一个新表

createtable 表名(

字段名   类型   [约束],

  字段名2 类型   [约束],

);

   

 

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

create table 新表名 as 查询语句

    

数据类型

分类                

类型                            

描述                                                  

数值类型

 

NUMBER    

表示整数和浮点数

INT/INTEGER

整数

FLOAT

双精度浮点数


字符类型


 

CHAR(3)

定长字符,最大2000B    

NCHAR(1)

定长unicode 字符,最大1000B  

VARCHAR23

变长字符,最大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是先摧毁表结构,再重构表结构

 

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

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

(^_^)~喵~!!

 

以上是 学习Oracle的历程(三) 的全部内容, 来源链接: utcz.com/z/533783.html

回到顶部