為已經存在的表上建立索引

2021-08-28 17:46:36 字數 1961 閱讀 1685

1、使用 alter table 語句建立索引

#在book表中的bookname欄位上建立名為bknameidx的普通索引

mariadb [vincen]> alter table book add index bknameidx(bookname(30));

#格式:alter table 資料表名 add 索引型別 索引名稱(字段);

檢視表中的索引資訊

mariadb [vincen]> show index from book \g

*************************** 1. row ***************************

table: book #表示建立索引的表,book表

non_unique: 1 #索引是否唯一,1代表非唯一,0代表唯一

key_name: bknameidx #索引的名稱是bknameidx

seq_in_index: 1 #表示這個欄位在索引中的位置

column_name: bookname #表示定義索引的列欄位

collation: a

cardinality: 0

sub_part: 30 #表示索引的長度

packed: null

null: #表示該欄位是否能為空值

index_type: btree #表示索引的型別

comment:

index_comment:

2、使用 create index 建立索引

建立一張新錶

mariadb [vincen]> create table books

-> (

-> bookid int not null,

-> bookname varchar(255) not null,

-> authors varchar(255) not null,

-> info varchar(255) null,

-> comment varchar(255) null,

-> year_publication year not null

-> );

使用 create index 建立索引

#在books表中的bookname欄位上建立名為bknameidx的普通索引

mariadb [vincen]> create index bknameidx on books(bookname);

#格式:create 索引型別 索引名稱 on 資料表名(字段);

檢視索引資訊

mariadb [vincen]> show index from books \g

*************************** 1. row ***************************

table: books

non_unique: 1

key_name: bknameidx

seq_in_index: 1

column_name: bookname

collation: a

cardinality: 0

sub_part: null

packed: null

null:

index_type: btree

comment:

index_comment:

可以看到 create index 語句和 alter index 語句的語法基本一樣,只是關鍵字不同

為表建立索引

聚合索引 有多個字段組成,乙個表中只能有乙個 非聚合索引 有單個字段組成,乙個表中可以有多個 如tbstudent建立乙個聚合索引 學號,班級 1 2個非聚合索引 學號 2 班級 3 對於查詢 select from tbstudent where 學號 張三 1 不起作用,2 作用 select ...

為表中已經建立的列新增約束

為表中已經建立的列新增約束 1 新增主鍵 alter table 表名 modify column 列名 int primary key auto increment 2 新增外來鍵 alter table 表名 add constraint 外鍵名 foreign key 列名 reference...

django模型 為已存在的表建立模型

為已經存在的表建立模型 參考 為已經存在的表建立模型 1 python manage.py inspectdb 1.py 2 開啟1.py找到需要的表的模型類,把元選項meta中的 值改為true 3 把改好的模型類複製到models.py中,注意如果定義有管理器,需要再向模型類中新增。4 現在就可...