Məqalələr kataloqu
MySQL birdən çox sahə mövqeyini artırmaq üçün əlavəni dəyişdirin? Dəyişdirmə sütunu ifadəsinin istifadəsinin ətraflı izahı
MySQL ALTER əmri
Məlumat cədvəlinin adını dəyişdirmək və ya verilənlər cədvəli sahələrini dəyişdirmək lazım olduqda, MySQL ALTER əmrindən istifadə etməliyik.
Bu dərsliyə başlamazdan əvvəl gəlin testalter_tbl adlı cədvəl yaradaq.
root@host# mysql -u root -p password; Enter password:******* mysql> use chenweiliang; Database changed mysql> create table testalter_tbl -> ( -> i INT, -> c CHAR(1) -> ); Query OK, 0 rows affected (0.05 sec) mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | i | int(11) | YES | | NULL | | | c | char(1) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Cədvəl sahələrini silin, əlavə edin və ya dəyişdirin
Aşağıdakı komanda yuxarıda yaradılmış cədvəlin i sütununu buraxmaq üçün DROP bəndi ilə ALTER əmrindən istifadə edir:
mysql> ALTER TABLE testalter_tbl DROP i;
Məlumat cədvəlində yalnız bir sahə qalırsa, DROP sahəsini silmək üçün istifadə edilə bilməz.
ADD bəndi MySQL-də verilənlər cədvəlinə sütunlar əlavə etmək üçün istifadə olunur.Aşağıdakı misal testalter_tbl cədvəlinə i sahəsini əlavə edir və məlumat tipini müəyyən edir:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Yuxarıdakı əmri yerinə yetirdikdən sonra i sahəsi avtomatik olaraq verilənlər cədvəli sahələrinin sonuna əlavə olunur.
mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Yeni sahənin yerini təyin etmək lazımdırsa, MySQL tərəfindən verilən FIRST açar sözündən istifadə edə bilərsiniz (setYerləşdirməbirinci sütun), AFTER sahə adı (sahədən sonra təyin olunur).
Aşağıdakı ALTER TABLE ifadəsini sınayın və uğurla icra edildikdən sonra cədvəl strukturunda dəyişikliklərə baxmaq üçün SÜTUNLARI GÖSTER-dən istifadə edin:
ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT FIRST; ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT AFTER c;
FIRST və SONRA açar sözlərindən yalnız ƏLAVƏ bəndində istifadə olunur, ona görə də əgər siz verilənlər cədvəli sahəsinin mövqeyini yenidən qurmaq istəyirsinizsə, sahəni silmək üçün DROP düyməsini, sonra isə sahəni əlavə etmək və mövqeyi təyin etmək üçün ƏLAVƏ düyməsini istifadə etməlisiniz.
Sahənin növünü və adını dəyişdirin
Sahənin tipini və adını dəyişdirmək lazımdırsa, ALTER əmrində MODIFY və ya CHANGE bəndindən istifadə edə bilərsiniz.
Məsələn, c sahəsinin növünü CHAR(1)-dən CHAR(10)-a dəyişmək üçün aşağıdakı əmri yerinə yetirin:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
CHANGE bəndi ilə sintaksis çox fərqlidir.CHANGE açar sözündən dərhal sonra dəyişdirmək istədiyiniz sahənin adıdır və sonra yeni sahə adını və növünü göstərin.Aşağıdakı nümunəni sınayın:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
ALTER TABLE-nin Null və Default Dəyərlərə Təsiri
Sahəni dəyişdirdiyiniz zaman yalnız daxil ediləcəyini və ya standart dəyərin təyin edilib-edilməyəcəyini təyin edə bilərsiniz.
Aşağıdakı nümunə j sahəsinin NULL DEYİL olduğunu və standart dəyərin 100 olduğunu göstərir.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Defolt dəyər təyin etməsəniz, MySQL standart olaraq sahəni avtomatik olaraq NULL olaraq təyin edəcəkdir.
Sahənin standart dəyərini dəyişdirin
Sahənin standart dəyərini dəyişdirmək üçün ALTER-dən istifadə edə bilərsiniz, aşağıdakı nümunələri sınayın:
mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | 1000 | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Aşağıdakı misalda olduğu kimi, sahənin standart dəyərini silmək üçün DROP bəndi ilə ALTER əmrindən də istifadə edə bilərsiniz:
mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec) Changing a Table Type:
Məlumat cədvəlinin növünün dəyişdirilməsi ALTER əmrindən və TYPE bəndindən istifadə etməklə edilə bilər.Testalter_tbl cədvəlinin növünü MYISAM olaraq dəyişdirdiyimiz aşağıdakı nümunəni sınayın:
Qeyd:Məlumat cədvəlinin növünə baxmaq üçün CƏDVƏL VƏZİYYƏTİNİ GÖSTƏRİN ifadəsindən istifadə edə bilərsiniz.
mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM; mysql> SHOW TABLE STATUS LIKE 'testalter_tbl'\G *************************** 1. row **************** Name: testalter_tbl Type: MyISAM Row_format: Fixed Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 25769803775 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2007-06-03 08:04:36 Update_time: 2007-06-03 08:04:36 Check_time: NULL Create_options: Comment: 1 row in set (0.00 sec)
Cədvəlin adını dəyişdirin
Əgər məlumat cədvəlinin adını dəyişdirmək lazımdırsa, bunu etmək üçün ALTER TABLE ifadəsindəki RENAME bəndindən istifadə edə bilərsiniz.
Testalter_tbl verilənlər cədvəlinin adını alter_tbl olaraq dəyişmək üçün aşağıdakı nümunəni sınayın:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
ALTER əmrindən MySQL verilənlər cədvəllərində indekslər yaratmaq və silmək üçün də istifadə oluna bilər ki, bu barədə növbəti fəsillərdə təqdim edəcəyik.
digər istifadələri dəyişdirin
Yaddaş mühərrikini dəyişdirin: onu myisam-a dəyişdirin
alter table tableName engine=myisam;
Xarici açar məhdudiyyətini aradan qaldırın: keyName xarici açar ləqəbidir
alter table tableName drop foreign key keyName;
Dəyişdirilmiş sahənin nisbi mövqeyi: burada ad1 dəyişdirmək istədiyiniz sahədir, type1 sahənin orijinal növüdür və siz birinci və sonradan birini seçə bilərsiniz, bu aydın olmalıdır, birincisi birinci, sonra isə name2 sahəsindən sonra yerləşdirilir
alter table tableName modify name1 type1 first|after name2;
Hope Chen Weiliang Blogu ( https://www.chenweiliang.com/ ) paylaşılan "MySQL birdən çox sahə mövqeyini artırmaq üçün əlavə et? Dəyişiklik Sütunu Bəyanatının İstifadəsinin Ətraflı İzahatı” sizin üçün faydalıdır.
Bu məqalənin linkini paylaşmağa xoş gəlmisiniz:https://www.chenweiliang.com/cwl-495.html
Ən son yenilikləri əldə etmək üçün Chen Weiliang bloqunun Telegram kanalına xoş gəlmisiniz!
📚 Bu təlimatda böyük dəyər var, 🌟Bu nadir fürsətdir, qaçırmayın! ⏰⌛💨
Bəyəndinizsə paylaşın və bəyənin!
Paylaşımlarınız və bəyənmələriniz davamlı motivasiyamızdır!