设为首页 收藏本站
查看: 671|回复: 0

[经验分享] 5.Oracle中的数据表

[复制链接]

尚未签到

发表于 2016-7-21 07:11:46 | 显示全部楼层 |阅读模式
  1.数据表的数据类型:
varchar2(size) : 可变字符数据;
char:固定长度字符数据;
number:数值型;
date:日期时间型;
long:可变长度的字符型数据(2G);
clob:单字节的大型字符对象(4G);
raw and long raw : 二进制类型;
blob:二进制大型对象,最大(4G);
bfile:二进制数据,在数据库外部存储文件(4G);
  2.表的创建:
create table 表名
(
字段1 类型1,
字段2 类型2,
... ...
字段n 类型n
)
create table student
(
stuno int,
stname varchar(10)not null,
stBirth date default to_date('1987-6-23','YYYY-MM-DD')
);

  3.数据表的维护:
添加字段:
alter table student add(stuphone varchar(18));
删除字段:
alter table student drop column stuphone;
修改字段:
alter table student modify(stuname varchar(12));
将一列设置为不可使用状态;意味着可以删除掉;
alter table student set unused column stuname;
删除无用字段:
alter table student drop unused columns;
增加约束:
alter table student add constraint pk_stuno primarykey(stuno);
删除约束:
alter table student drop constraint pk_stuno;
查看表约束:

desc user_constraints;
  4.表分区:
第一种方案:范围分区法
这种分区法事根据表中列值的范围对表进行分区;
分区时,首先依据列中的值可能的范围进行划分;
如某省对参加四六级考试的成绩进行整理并保存至数据库。我们可以对于分数段进行如下划分:
60---p1;
75---p2;
85---p3;
100--p4;
create table student
(
student_ID integer not null,
student_name varchar2(20),
score integer
)
partition by range(score)
(
partition p1 values less than(60),
partition p2 values less than(75),
partition p3 values less than(85),
partition p4 values less than(maxvalue)
);
查询表中数据:select * from student partition(p1);
第二种方案:散列分区法
提供了一种通过指定分区编号来均匀的分布数据的方法;
它通过hash函数将数据映射到相应的分区上;
它可使得数据均匀的分布到各个分区上,各个分区大小趋于一致;
create table department
(
deptno int,
deptname varchar(14)
)
partition by hash(depno)
(
partition p1,
partition p2
);
第三种方案:复合分区
先对数据进行范围分区,然后在每个子分区又进行散列泛起的一种分区表方法;
create table salgrade
(
grade number ,
losal number,
hisal number
)
partition by range(grade) --先范围分区;
subpartition by hash(losal,hisal) --然后散列分区;
(
partition p1 values less than(10),
(subpartition sp1,subpartition sp2),
partition p2 values less than(20),
(subpartition sp3,subpartition sp4),
);
第四种方案:列表分区
列表分区允许用户明确地控制行到分区的映射;
不同范围分区或散列分区,他允许按自然方式对无序或不相关的数据集进行分组和组织;
例如:在客户表中记录着客户的国籍信息,他们是中国,美国,法国,英国,加拉大。那么在创建表时, 我们可以对表进行列表分区;
create table customer
(
custno int,
custname varchar(20);
custstate varchar(20)
)
partition by list(custstate)
(
partition asia values('中国','韩国','新加坡'),
partition europe values('英国','法国','德国'),
partition ameria values('美国','加拿大','墨西哥')
);
5.查看表分区语句:
desc user_tab_partitions;
查看表上的分区:
select table_name as 表名,partition_name as 分区名,partition_position from user_tab_partitions;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-247043-1-1.html 上篇帖子: ORACLE性能优化(四) 下篇帖子: 3.Oracle中的函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表