[独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、View
本系列链接导航:
[独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL
[独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、View
[独孤九剑]Oracle知识点梳理(六)数据库常用对象之Procedure、function、Sequence
[独孤九剑]Oracle知识点梳理(七)数据库常用对象之Cursor
[独孤九剑]Oracle知识点梳理(八)常见Exception
[独孤九剑]Oracle知识点梳理(九)数据库常用对象之package
[独孤九剑]Oracle知识点梳理(十)%type与%rowtype及常用函数
5、数据库对象
Oracle的常用字段类型有:
- varchar2(128) 用于存储字符,
- char(4)固定长度的字符串,不设置长度默认值为1,
- number(p,s)数字型p是位数总长度,s是小树的长度,可存储负数,最长38位,不够位时会四舍五入
- date 日期和时间类型
- lob超长字符,最大可达4G
- clob 超长文本字符串
- blob超长二进制字符串
- bfile超长二进制字符串,保存在数据库外的文件里是只读的
5.1、table的操作
5.1.1、创建表时可以给字段加上约束条件
- 默认值,如date类型的 设置default sysdate,这样每次插入、修改时,不用程序操作这个字段,都能得到动作时间
- 例如: 非空 NOT NULL
- 不允许重复 UNIQUE
- 关键字/主键 PRIMARY KEY
- 按条件检查 CHECK (条件)
- 外键 REFERENCES 表名(字段名)
5.1.2、创建表:
create table person
(
ID number primary key,
name varchar2(32),
gender char default 1
)
tablespace tablespaceName; --设置表空间,不加就默认为当前用户所在表空间 comment on table person is '人员表'; --添加备注
comment on column person.ID is '编号';
comment on column person.name is '姓名';
comment on column person.gender is '性别';
5.1.3、修改表
rename person to people; --修改表名
alter table person rename column name to xingming; --修改列名
alter table person add phonenumber varchar2(11);--添加列
alter table person add birthday date default sysdate not null; --添加列,设置默认值,不可为空
alter table person drop column phonenumber; --删除列
alter table person modify name varchar2(64); --修改列长度
alter table person modify gender char(2); --修改列精度
alter table person modify gender varchar2(2); --修改列的数据类型
alter table person modify gender default 2;--修改列的默认值
5.1.4、约束操作
- primary key
alter table person add constraint pk_person_id parmary key(id);--将id列设置为主键
- foregin key
alter table person add constraint fk_person_gender foreign key(gender); --将gender列设置为外键
- check
alter table person add constraint ck_person_gender check (gender in (1,2));--检查gender列的值必须在1、2中
- not null
alter table person modify name constraint not_null_person_name not null;--name列不能为空
- unique
alter table person add constraint uq_emp_name unique(name); --设置name列唯一约束
- default
alter table person modify birthday date default sysdate; --设置birthday列的默认值
- 约束的控制
--禁用约束
alter table person disable constraint uq_person_name;--禁用uq_person_name这个约束
--启用约束
alter table person enable constraint un_person_name;
--延迟约束
alter table person drop constraint fk_person_gender;
alter table person add constraint fk_person_gender foreign key(gender)
reference genderInfo(genderNo) deferrable initially deferred;
5.1.5、清除、删除表
truncate table person where id>10; --清除表person中的数据,不可恢复
delete table person where id>10; --删除表person中的数据,可恢复
drop table person; --删除表
5.2、View的操作
这里泛指普通视图view,Oracle还包含一种叫物化视图(materialized view)的视图。这里暂不涉及。
视图分为简单视图( 基于单个基表,且不包含函数和数据分组操作 ) 和复杂视图( 基于多个基表或视图);简单视图可以通过视图修改数据. 这些修改包括插入数据. 更新数据和删除数据. 但是对于复杂视图来说, 通过视图修改数据必须满足一定的规则.
在视图定义中没有设定READ ONLY 的前提下, 如果视图包含了下面的内容, 那么不能通过视图删除表中的数据:
- 分组函数, 如SUM,AVG,MIN,MAX 等 * GROUP BY 子句
- 包含了表达式 * ROWNUM 伪列
[关于通过视图修改数据的操作这里不做介绍]
5.2.1、创建view
create or replace view v_person --创建或修改视图
[columnName1,columnName2] --设置列名,也可在select中设置别名
as -- 注1
select a.f1,b.f2 from table1 a,table2 b where a.f0=b.f0;
注1:关于Oracl的is和as,
在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别,
在视图(VIEW)中只能用AS不能用IS,
在游标(CURSOR)中只能用IS不能用AS。
5.2.2、union 和union all
使用union关键字进行合并查询的时候,数据库引擎会自动过滤掉结果集中的重复记录。
使用union all关键字进行合并查询的时候,数据库引擎就不会过滤结果集中的重复数据,因此在执行效率上将union all比union要高上很多。
5.2.3、删除视图
drop view v_person;
[独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、View的更多相关文章
- [独孤九剑]Oracle知识点梳理(九)数据库常用对象之package
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(七)数据库常用对象之Cursor
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(六)数据库常用对象之Procedure、function、Sequence
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(十)%type与%rowtype及常用函数
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(二)数据库的连接
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(八)常见Exception
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(三)导入、导出
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(一)表空间、用户
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
随机推荐
- selection createTextRange setSelectionRange
http://www.cnblogs.com/rainman/archive/2011/02/27/1966482.html http://www.zhangxinxu.com/wordpress/2 ...
- yii2-lock-form 也许这就是你想要的,阻止表单多次提交
是不是被用户的行为所困扰? 一个表单用户点击提交按钮了N次,这也导致了数据提交了N次. 为了此受到了测试的欺辱,受到了老板的批评? 不用怕,它就是来拯救你的. 第一步:打开命令行,敲入 compose ...
- DNS 安装配置
DNS 安装配置 实验环境 一台主机:Linux Centos 6.5 32位 安装包: DNS服务:bind.i686 DNS测试工具:bind-utils DNS 服务安装 1.yum安装DNS服 ...
- Cocos2d-x项目移植到WP8系列之五:播放MP3
原文链接: http://www.cnblogs.com/zouzf/p/3972549.html 这一块的细节还是不太了解,只是东凑西拼能跑起来而已 1.网上下载lamb库 生成需要的lib库,详情 ...
- 基于Visual c++ 2012的php扩展开发 - 环境搭建
软件准备 Apache2.4 php-5.6.20-Win32-VC11-x86 php-5.6.20-src mysql-5.5.45-win32 vcredist_x86.exe vs2012旗舰 ...
- 发现一个小坑的地方,unity的协程,想要停止,必须以字符串启动
今天想要停止一个协成,发现调用 StopCoroutine(ShowDebug()); 竟然不管用,后来看了文档才知道,原来想要停止协成,必须用字符启动协程 StartCoroutine(" ...
- Go Interface概念
简单地说 Interface是一组Method的组合,可以通过Interface来定义对象的一组行为.如果某个对象实现了某个接口的所有方法,就表示它实现了该借口,无需显式地在该类型上添加接口说明.In ...
- Tomcat虚拟目录的配置
Tomcat可以作为应用服务器部署Java应用,同时可以创建虚拟目录存放图片,相当于一个图片服务器使用1. 创建目录 /usr/images/2. 编辑TOMCAT_HOME/conf/server. ...
- 利用Phoenix为HBase创建二级索引
为什么需要Secondary Index 对于Hbase而言,如果想精确地定位到某行记录,唯一的办法是通过rowkey来查询.如果不通过rowkey来查找数据,就必须逐行地比较每一列的值,即全表扫瞄. ...
- Qt QTreeWidget节点的添加+双击响应+删除详解
转自: http://www.cnblogs.com/Romi/archive/2012/08/08/2628163.html 承接该文http://www.cnblogs.com/Romi/arch ...