加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle数据库界说语句DDL

发布时间:2021-01-11 22:02:33 所属栏目:站长百科 来源:网络整理
导读:1、建表语句: create table 表名(字段名 范例,字段名 范例); --删除表: drop table 表名; --修改表: alter table 表名 add 字段名 范例; --修改字段: alter table 表名 modify(字段名 范例); --重定名字段: alter table 表名 rename?column 字
副问题[/!--empirenews.page--]

1、建表语句:

create table 表名(字段名 范例,字段名 范例);

--删除表:

drop table 表名;

--修改表:

alter table 表名 add 字段名 范例;

--修改字段:

alter table 表名 modify(字段名 范例);

--重定名字段:

alter table 表名 rename?column 字段名 to 新字段名;

--重定名表?:

rename 表名to 新表名;

--删除字段:

alter table 表名?drop column 字段名;

?

?

2、序列(sequence)

--建设sequence

create sequence 序列名

[INCREMENT BY n]

[START WITH n]

[{MAXVALUE/ MINVALUE n| NOMAXVALUE}]

[{CYCLE|NOCYCLE}]

[{CACHE n| NOCACHE}];

?个中:

1)? INCREMENT BY用于界说序列的步长,假如省略,则默以为1,假如呈现负值,则代表Oracle序列的值是凭证此步长递减的。

2)? START WITH?界说序列的初始值(即发生的第一个值),默以为1。

3)? MAXVALUE?界说序列天生器能发生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值界说,这时对付递增Oracle序列,体系可以或许发生的最大值是10的27次方;对付递减序列,最大值是-1。

4)? MINVALUE界说序列天生器能发生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值界说,这时对付递减序列,体系可以或许发生的最小值是?10的26次方;对付递增序列,最小值是1。

5)? CYCLE和NOCYCLE?暗示当序列天生器的值到达限定值后是否轮回。CYCLE代表轮回,NOCYCLE代表不轮回。假如轮回,则当递增序列到达最大值时,轮回到最小值;对付递减序列到达最小值时,轮回到最大值。假如不轮回,到达限定值后,继承发生新值就会产生错误。

6)? CACHE(缓冲)界说存放序列的内存块的巨细,默以为20。NOCACHE暗示差池序罗列办内存缓冲。对序罗列办内存缓冲,可以改进序列的机能。

7)? NEXTVAL?返回序列中下一个有用的值,任何用户都可以引用。

8)? CURRVAL?中存放序列的当前值,NEXTVAL?应在?CURRVAL?之前指定 ,二者应同时有用。

?

--sequence行使:

select 序列名.nextval from dual;

--sequence修改:

alter sequence 序列名 incerment by?10 maxvalue10000 cycle? -- 到10000后从新开始 NOCACHE ;

?

?

3、索引(index)

--建设索引

create or replace unique|bitmap index <schema>.<index_name> 
on <schema>.<table_name>
(<column_name>|<expression> asc|desc,<column_name>|<expression> asc|desc ...)
tablespace <tablespace_name>
storage <storage_settings>
logging|nologging
compute statistics
nocompress|compress<nn>
nosort|reverse
partition|global partition<partition_setting>
  • unique|bitmap :?unique暗示独一值索引,bitmap暗示位图索引,为空则默以为B-tree索引
  • column_name|expression asc|desc,... :可以单列索引,也可以多罗列办连系索引,当为的时辰,为“基于函数的索引”
  • tablespace :?拟定存放索引的表空间(当表和索引在差异的表空间的时辰,服从更高)
  • storage :?可以配置表空间的存储参数
  • logging|nologging :?是否对索激发生redolog(对付大表来说,可以配置为nologging从而来镌汰空间占用,进步服从)
  • compute statistics :?配置为建设索引时,网络统计信息
  • nocompress|compressnn :?是否行使“键压缩”(行使键压缩可以删除一个键列中呈现的一再值)
  • nosort|reverse :?nosort暗示与表中沟通的次序举办建设索引,reverse暗示行使与表中相反的次序举办建设索引
  • partition|nopartition|global partition :?可以在分区表上和未分区表上对建设的索引举办分区

?

索引的特点

  1. 大大加速检索数据的速率
  2. 通过建设独一性索引,可以担保数据库表中每一行数据的独一性
  3. 加快表与表之间的毗连
  4. 查询语句汇总含有分组可能排序的语句时,速率更快
  5. 查询的进程中,行使索引,行使优化潜匿器,从而进步体系的机能

索引的不敷

  1. 建设和维护索引,较量淹灭时刻,跟着数据量的增大而增大
  2. 建设索引,占必然的物理空间(聚簇索引,占用空间会更大)
  3. 在对表举办增编削的时辰,索引响应的也必要进动作态的更新

较量得当成立索引的列的特点

  1. 常常必要搜刮的列上
  2. 主键,一样平常成立独一性索引,保持数据的独一性
  3. 外键,进步表与表之间毗连的速率
  4. 必要排序的列上
  5. where子句后边常常呈现的字段
  6. 常常必要按照范畴举办搜刮的列上,好比日期

不得当成立索引的列的特点

  1. 很少举办搜刮的列上
  2. 列取值较量少的列上
  3. blob范例的列上
  4. 修改频率较量高的列上

限定索引(成立了索引,可是无法行使)

  1. 行使不便是<> 、 != ,(不便是操纵符必然会举办全表扫描)
  2. 行使is null 、 is not null (只要索引中呈现一个null,那么这个索引就报废了。以是在成立索引的时辰,必然要将筹备成立索引的列配置为not null)
  3. 行使函数(where子句中含有trunc()、add_months()之类)的时辰,sql优化器会自动忽略掉索引
  4. where子句中,举办了数据范例不匹配的较量,好比(where row_num = ‘1‘)的时辰,气愤了优化器会限定索引的行使

查询索引

  • dba_indexes
  • user_indexes
  • uesr_ind_columns

组合索引

  1. 索引中,包括不止一个列。
  2. 在Oracle9i之前,必要先行使前导索引,才气行使组合索引。

Oracle rowid

??实体表中,每一行都有rowid,通过每一行的rowid,Oracle提供了会见单行数据的手段。

选择性

??user_indexes中distinct_keys,选择性越高,那么索引返回的值就越少。

聚集因子

??user_indexes中的clustering factor 越靠近 leaf block的值的话,声名表中的数据越有序。

二元高度

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读