Oracle数据库基础(三)

这一部分的主要内容是常用对象函数的使用以及语句应用。

用户的创建、权限操作

创建用户:
    create user username identifeid by password;
分配权限:
    grant connect(登录权限),resource(增删改查权限) to username;
撤销权限:
    revoke resource from username;
角色:
    connect —— 临时用户;
    resource —— 更为正式、可靠的用户;
    dba —— 管理员。

数据库表的简单操作

创建数据库表:

    create table 表名 (字段名1 字段属性 约束条件,字段名2 字段属性 ……)
字段属性包含约束性修饰词和字段的数据类型修饰词
约束性字段修饰词:
    primary key —— 主键,要求被该关键字修饰的属性唯一不可为空
    unique key —— 唯一,要求被该关键字修饰的属性唯一
    check —— 检查条件,要求被该关键字修饰的属性需满足一定的条件
    not null —— 非空, 要求被该关键字修饰的属性不能为空
    foreign key —— 外键,用于两表之间建立联系,需指定引用主表的哪列,详细内容见后面**表的约束**中*外键*部分。
数据类型部分修饰词:
    字符型数据类型:
        char —— 存储固定长度的字符串;
        varchar2 —— 存储可变长度的字符串;
    数值型数据类型:
        number —— 存储整数和浮点数,格式为(p,s)其中p代表整数有p位,s代表小数有s位。
    日期时间数据类型:
        date —— 存储日期和时间数据
        timestamp —— 存储比date更加精确的日期和时间数据
    Lob数据类型
        blob —— 二进制对象,如图像视频音频
        clob —— 字符格式的大型对象

修改数据库表

在基本表建立并使用一段时间后可以修改表

格式:
    alter table 表名 add/modify 列名 列名属性;
重命名方法:
    rename oldname to newname;

表的约束

约束的概念

约束条件是一些规则,在对数据进行插入、删除和修改时要对这些规则进行验证,从而起约束作用。
为什么要有约束?没有规矩不成方圆,有了约束,可以保证数据完整性和一致性。

约束分类

从完整性分类

域完整性约束——非空约束,检查约束
实体完整性约束——唯一约束,主键约束
参照完整性约束—— 外键约束

区别:
    域完整性约束是字段约束,约束范围在列
    实体完整性约束是行与行之间的约束
    引用完整性约束是表和表之间的约束

从作用分类:
表级约束,可约束表中任意一列
列级约束,只作用于列

各约束简介及作用

见约束性字段修饰词
外键:
    外键是表与表之间建立连接的桥梁。
如何添加外键:
    foreign key (字段名) references 表名 (字段名)
添加约束语法:
    alter table 表名 add constraint 约束名,约束条件
删除约束:
    alter table 表名 constraint 约束名

序列

序列是oracle专有的对象, 他用产生一个自动递增的数列。
创建语法:
    create sequence seq_name
    increment by n               //递增值
    start with n                 //开始位置
    maxvalue n_nomaxvalue        //最大值范围
    minvaalue n_minvalue         //最小值范围
    cycle/nocycle                //是否循环
    cache n/no_cache             //是否缓存

    序列拥有两个方法,获取下一个值和获取当前值:
        select 序列名.nextval from 表名
        select 序列名.currtval from 表名
    需要注意的是,序列在刚生成时是没有当前值的,需要先走一个下一个值才会由当前值。
    删除序列:
        drop sequence 序列名

索引

基本概念以及语法格式

可以建立类似目录的数据库对象,实现快速查询,这就是索引。
索引类似于目录,是为了提高数据搜索速度,默认采用B树数据结构。

创建索引和删除索引的语法格式:
    create index 索引名 on table (column [column...])
    drop index 索引名

索引的作用

加速对表的查询,减少对磁盘的读写。

需要注意的是,索引在创建以后,在用户撤销他之前不会用到索引的名字,但索引会在用户查询时自动起作用。
索引的创建有两个情况,当用户在表上定义一个主键或唯一时系统自动创建,另外一种是用户自己手动创建一个索引。

视图

定义:
    视图是从若干个基本表和(或)其他视图构造出来的表,视图也叫虚表。

视图的创建,查询与删除:
    create [or replace] view 视图名
    as select column
    from 表名 [with read only]

    select * from 视图名
    drop view 视图名

视图的一些特点:
    视图不利于修改,安全
    视图不存储数据、
    视图可以降低查询难度
    使用with read only 定义只读视图。

事务简介

定义:
    从头到尾的去做一件事,要么完成要么相当不做,事务是为了保证数据库的完整性。
    在oracle中,没有事务开始的语句,在修改、删除和添加时事务就开始了。
关键字:
    commit,提交事务
    roll back ,回滚事务

分页的实现

前n条数据

select rownum * from 
(select sal from emp order by sal) t 
where rownum<=n;

n-m条数据分页查询

select * from
(select rownum r,t.* from (select sal from emp order by sal desc)t
where rownum <= m) a
where a.r>= n;

三大范式

作用:保证数据库设计的合理性。
合理数据库的要求:
    结构合理、冗余较小、尽量避免插入删除修改异常。
范式的分类(这里只介绍前三个):
    第一范式:
        确保每列保持原子性,即同一列中不能有多个值
    第二范式:
        在满足第一范式的基础上,确保数据库表的每一列都和主键相关。
    第三范式:
        在满足第二范式基础上,确保数据表中的每一列数据都和主键直接相关,属性不依赖于别的非主属性。

表与表之间的关系:
    一对一,就像我们与自己的身份证一样,一个中国公民只有一个身份证号。
    一对多,就像一个人可以有多张银行卡一样。
    多对多,就像大学中一个班级可以拥有多个学生, 而学生也可以去多个班级上课,这种的对应关系。一般在数据库操作中,多对多关系会被拆分成两个一对多关系。

这就是我给大家带来的Oracle数据库基础(三)的内容,与大家分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值