SQL表索引建立 刪除 修改 查詢

2021-08-13 11:45:14 字數 2429 閱讀 8992

-- sql表索引建立/刪除/修改/查詢

-- oracle索引建立

-- 索引的基本資訊,儲存在下面檢視中:all_indexes / dba_indexes / user_indexes

-- 索引對應的字段資訊,儲存再下面檢視中:all_ind_columns / dba_ind_columns / user_ind_columns

-- 建立索引的基本語法:

語法create index

create [unique] index [user.]index

on [user.]table (column [asc | desc] [,column

[asc | desc] ] ... )

[cluster [scheam.]cluster]

[initrans n]

[maxtrans n]

[pctfree n]

[storage storage]

[tablespace tablespace]

[no sort]

advanced

常用舉例:

-- oracle:建立表的單列唯一索引

create unique index idx_table01_name on my_test_table01('col_name');

-- oracle:建立表的聯合唯一索引

create unique index idx_table01_name_class on my_test_table01('col_name', 'col_class');

-- oracle:建立表的單列普通索引

create index idx_table01_name on my_test_table01('col_name');

-- oracle:建立表的聯合普通索引

create index idx_table01_name_class on my_test_table01('col_name', 'col_class');

-- oracle索引刪除

-- 語法:drop index [schema.]indexname;

drop index idx_tb01_name;

-- oracle:修改索引

alter [unique] index [user.]index

[initrans n]

[maxtrans n] 

rebuild 

[storage n]

-- oracle:修改條新增表的單主鍵約束

alter table my_test_table01 add constraint pk_table01_id primary key(id);

-- oracle:修改條新增表的聯合主鍵約束

alter table my_test_table01 add constraint pk_table01_name_class primary key(col_name,col_class);

-- oracle:刪除表的主鍵約束

alter table my_test_table01 drop constraint pk_table01_name;

-- 如果刪除失敗,可以嘗試:

alter table my_test_table01 drop constraints column cascade; --刪除約束

alter table my_test_table01 disable primary_column ; --設定被設定為主鍵的列為無效

drop index index_name; --刪除主鍵索引

-- oracle:檢視指定表的索引(uniqueness index_name table_name column_name,聯合索引會分多行顯示)

select b.uniqueness, a.index_name, a.table_name, a.column_name 

from all_ind_columns a, all_indexes b

where a.index_name=b.index_name 

and a.table_name = upper('my_test_table01')

order by a.table_name, a.index_name, a.column_position;

-- oracle:檢視指定表的索引(聯合索引只顯示一行記錄)

select * from user_indexes where table_name=upper('my_test_table01');

select * from all_indexes  where table_name=upper('my_test_table01');

-- oracle:檢視素有索引

select * from user_indexes;

select * from all_indexes;

SQL建立 修改 刪除表

建立表 create table 表名 列名 資料型別 屬性 列名 資料型別 屬性 增加表的列 alter table 表名 add 欄位名 資料型別 屬性 修改表的列 alter table 表名 modify column 欄位名 資料型別 屬性 刪除表的列 alter table 表名 dro...

sql索引的建立 修改 刪除 檢視

explain select form table name where id 10 explain列的解釋 table 顯示這一行的資料是關於哪張表的 type 這是重要的列,顯示連線使用了何種型別。從最好到最差的連線型別為const eq reg ref range indexhe和all ke...

oracle 建立表,刪除表,修改表,查詢表

1,獲取當前使用者下的所有表資訊 select from user tables 1.1,查詢某一張表的字段資訊 select from user tab columns where table name 表名 1.2,查詢某一張表的注釋 select from user tab comments ...