Iru atọka data MySQL iru/ ṣẹda/lo apapo ALTER lilo alaye ni MySQL

MySQLatọka iru / ṣẹda / lilo konbo paarọ niMySQLlilo gbólóhùn gbólóhùn

MySQL atọka

Idasile atọka MySQL jẹ pataki pupọ fun iṣẹ ṣiṣe ti MySQL, ati atọka le mu iyara igbapada ti MySQL pọ si.

Fun apẹẹrẹ, ti MySQL pẹlu apẹrẹ ironu ati lilo awọn atọka jẹ Lamborghini, lẹhinna MySQL laisi awọn atọka ati awọn atọka jẹ kẹkẹ ẹlẹni-mẹta eniyan.

Atọka naa ti pin si atọka ọwọn kan ati atọka akojọpọ.Atọka iwe-ẹyọkan, iyẹn ni, atọka kan ninu iwe kan ṣoṣo, tabili le ni awọn atọka ọwọn-ọpọlọpọ, ṣugbọn eyi kii ṣe atọka akojọpọ.Atọka akojọpọ, iyẹn ni, atọka kan ni awọn ọwọn pupọ ninu.

Nigbati o ba ṣẹda atọka, o nilo lati rii daju pe atọka jẹ ipo ti o kan si ibeere SQL (nigbagbogbo gẹgẹbi ipo ti gbolohun WHERE).

Ni otitọ, atọka naa tun jẹ tabili kan, tabili naa ṣafipamọ bọtini akọkọ ati awọn aaye atọka, ati tọka si awọn igbasilẹ ti tabili nkan naa.

Eyi ti o wa loke jẹ gbogbo nipa awọn anfani ti lilo awọn atọka, ṣugbọn lilo awọn atọka ti o pọju yoo ja si ilokulo.Nitorinaa, atọka naa yoo tun ni awọn ailagbara rẹ: botilẹjẹpe atọka naa mu iyara ibeere pọ si, yoo dinku iyara mimu tabili, bii INSERT, UPDATE and DELETE lori tabili.Nitori nigbati o nmu imudojuiwọn tabili, MySQL kii ṣe fifipamọ data nikan, ṣugbọn tun fi faili atọka pamọ.

Titọka faili atọka ti o nlo aaye disk.


deede atọka

ṣẹda atọka

Eyi ni atọka ipilẹ julọ, ko ni awọn ihamọ.O le ṣẹda ni awọn ọna wọnyi:

CREATE INDEX indexName ON mytable(username(length)); 

Fun awọn iru CHAR ati VARCHAR, ipari le kere si ipari gangan ti aaye naa; fun awọn oriṣi BLOB ati TEXT, ipari gbọdọ wa ni pato.

Ṣe atunṣe eto tabili (ṣe afikun atọka)

ALTER table tableName ADD INDEX indexName(columnName)

Pato taara nigbati o ṣẹda tabili

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);  

Sintasi lati ju ohun atọka

DROP INDEX [indexName] ON mytable; 

oto Ìwé

O jẹ iru si atọka arinrin ti tẹlẹ, iyatọ jẹ: iye ti iwe atọka gbọdọ jẹ alailẹgbẹ, ṣugbọn awọn iye asan ni a gba laaye.Ninu ọran ti atọka akojọpọ, apapọ awọn iye ọwọn gbọdọ jẹ alailẹgbẹ.O le ṣẹda ni awọn ọna wọnyi:

ṣẹda atọka

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

Ṣatunṣe iṣeto tabili

ALTER table mytable ADD UNIQUE [indexName] (username(length))

Pato taara nigbati o ṣẹda tabili

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
UNIQUE [indexName] (username(length))  
 
);  

Ṣafikun ati yọ awọn atọka kuro ni lilo pipaṣẹ ALTER

Awọn ọna mẹrin lo wa lati ṣafikun atọka si tabili data kan:

  • ALTER TABLE tbl_name FI KỌKỌ́ ALÁKÙNRIN (akojọ_ọwọn): Alaye yii ṣafikun bọtini akọkọ kan, eyiti o tumọ si pe awọn iye atọka gbọdọ jẹ alailẹgbẹ ati pe ko le jẹ NULL.
  • ALTER TABLE tbl_name FI UNIQUE index_name (akojọ_ọwọn): Iye atọka ti a ṣẹda nipasẹ alaye yii gbọdọ jẹ alailẹgbẹ (ayafi NULL, NULL le han ni ọpọlọpọ igba).
  • ALTER TABLE tbl_name FI INDEX index_name (akojọ_ọwọn): Ṣafikun atọka deede, iye atọka le han ni igba pupọ.
  • ALTER TABLE tbl_name FI FULLTEXT index_name (akojọ_ọwọn):Gbólóhùn naa ṣe apejuwe atọka bi FULLTEXT fun titọka-kikun.

Apẹẹrẹ atẹle ni lati ṣafikun atọka si tabili kan.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

O tun le lo gbolohun ọrọ DROP lori aṣẹ ALTER lati ju awọn atọka silẹ.Gbiyanju apẹẹrẹ atẹle lati ju atọka naa silẹ:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

Ṣafikun ati yọ awọn bọtini akọkọ kuro ni lilo pipaṣẹ ALTER

Bọtini akọkọ le ṣiṣẹ lori iwe kan nikan Nigbati o ba nfi atọka bọtini akọkọ kan kun, o nilo lati rii daju pe bọtini akọkọ kii ṣe NULL nipasẹ aiyipada (NOT NULL).Awọn apẹẹrẹ jẹ bi atẹle:

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

O tun le pa bọtini akọkọ rẹ pẹlu pipaṣẹ ALTER:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

O nilo lati pato bọtini akọkọ nigbati o ba n sọ bọtini akọkọ silẹ, ṣugbọn nigba sisọ atọka silẹ, o gbọdọ mọ orukọ atọka naa.


ṣafihan alaye atọka

O le lo aṣẹ SHOW INDEX lati ṣe atokọ alaye atọka ti o yẹ ninu tabili.Alaye igbejade le jẹ tito nipasẹ fifi \G kun.

Gbiyanju awọn apẹẹrẹ wọnyi:

mysql> SHOW INDEX FROM table_name; \G
........

Ireti Chen Weiliang Blog ( https://www.chenweiliang.com/ ) pín "MySQL Data Atọka Iru/Ṣẹda/ Lo Ajọpọ ALTER Gbólóhùn Lilo ni MySQL", eyi ti o ṣe iranlọwọ fun ọ.

Kaabo lati pin ọna asopọ ti nkan yii:https://www.chenweiliang.com/cwl-496.html

Kaabọ si ikanni Telegram ti bulọọgi Chen Weiliang lati gba awọn imudojuiwọn tuntun!

🔔 Jẹ ẹni akọkọ lati gba “ChatGPT Akoonu Titaja AI Itọsọna Lilo Ọpa” ti o niyelori ni itọsọna oke ikanni! 🌟
📚 Itọsọna yii ni iye nla, 🌟Eyi jẹ aye to ṣọwọn, maṣe padanu rẹ! ⏰⌛💨
Pin ati fẹran ti o ba fẹ!
Pinpin rẹ ati awọn ayanfẹ jẹ iwuri wa lemọlemọfún!

 

发表 评论

Adirẹsi imeeli rẹ kii yoo ṣe atẹjade. Awọn aaye ti o nilo ni a lo * 标注

yi lọ si oke