MySQL ផ្លាស់ប្តូរបន្ថែមដើម្បីបង្កើនមុខតំណែងវាលច្រើន? ការពន្យល់លម្អិតនៃការប្រើប្រាស់ កែប្រែសេចក្តីថ្លែងការណ៍ជួរឈរ

MySQL ផ្លាស់ប្តូរបន្ថែមដើម្បីបង្កើនមុខតំណែងវាលច្រើន? ការពន្យល់លម្អិតនៃការប្រើប្រាស់ កែប្រែសេចក្តីថ្លែងការណ៍ជួរឈរ

MySQL ពាក្យបញ្ជា ALTER

នៅពេលដែលយើងត្រូវកែប្រែឈ្មោះតារាងទិន្នន័យ ឬកែប្រែវាលតារាងទិន្នន័យ យើងត្រូវប្រើពាក្យបញ្ជា MySQL ALTER ។

មុននឹងចាប់ផ្តើមការបង្រៀននេះ ចូរយើងបង្កើតតារាងមួយដែលមានឈ្មោះ៖ testalter_tbl ។

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)

លុប បន្ថែម ឬកែប្រែវាលតារាង

ពាក្យបញ្ជាខាងក្រោមប្រើពាក្យបញ្ជា ALTER ជាមួយឃ្លា DROP ដើម្បីទម្លាក់ជួរឈរ i នៃតារាងដែលបានបង្កើតខាងលើ៖

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP មិន​អាច​ប្រើ​ដើម្បី​លុប​វាល​មួយ​បាន​ទេ ប្រសិន​បើ​មាន​វាល​តែ​មួយ​នៅ​សល់​ក្នុង​តារាង​ទិន្នន័យ។

ឃ្លា ADD ត្រូវបានប្រើនៅក្នុង MySQL ដើម្បីបន្ថែមជួរឈរទៅតារាងទិន្នន័យ។ ឧទាហរណ៍ខាងក្រោមបន្ថែមវាល i ទៅក្នុងតារាង testalter_tbl និងកំណត់ប្រភេទទិន្នន័យ៖

mysql> ALTER TABLE testalter_tbl ADD i INT;

បន្ទាប់ពីប្រតិបត្តិពាក្យបញ្ជាខាងលើ វាល i ត្រូវបានបន្ថែមដោយស្វ័យប្រវត្តិទៅចុងបញ្ចប់នៃវាលតារាងទិន្នន័យ។

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)

ប្រសិនបើអ្នកត្រូវការបញ្ជាក់ទីតាំងនៃវាលថ្មី អ្នកអាចប្រើពាក្យគន្លឹះ FIRST ដែលផ្តល់ដោយ MySQL (setទីតាំងជួរ​ឈរ​ទី​មួយ​) ឈ្មោះ​វាល​បន្ទាប់​ពី (កំណត់​បន្ទាប់​ពី​វាល​មួយ​) ។

សាកល្បងសេចក្តីថ្លែងការណ៍ ALTER TABLE ខាងក្រោម ហើយបន្ទាប់ពីដំណើរការដោយជោគជ័យ សូមប្រើ SHOW COLUMNS ដើម្បីមើលការផ្លាស់ប្តូរនៅក្នុងរចនាសម្ព័ន្ធតារាង៖

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 និង AFTER ត្រូវបានប្រើតែក្នុងឃ្លា ADD ដូច្នេះប្រសិនបើអ្នកចង់កំណត់ទីតាំងនៃតារាងទិន្នន័យឡើងវិញ អ្នកត្រូវប្រើ DROP ដើម្បីដកវាលចេញ ហើយបន្ទាប់មក ADD ដើម្បីបន្ថែមវាល និងកំណត់ទីតាំង។


កែប្រែប្រភេទ និងឈ្មោះវាល

ប្រសិនបើអ្នកត្រូវការកែប្រែប្រភេទវាល និងឈ្មោះ អ្នកអាចប្រើឃ្លា MODIFY ឬ CHANGE ក្នុងពាក្យបញ្ជា ALTER ។

ឧទាហរណ៍ ដើម្បីផ្លាស់ប្តូរប្រភេទវាល c ពី CHAR(1) ទៅ CHAR(10) សូមប្រតិបត្តិពាក្យបញ្ជាខាងក្រោម៖

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

ជាមួយនឹងឃ្លា CHANGE វាក្យសម្ព័ន្ធគឺខុសគ្នាខ្លាំងណាស់។ភ្លាមៗបន្ទាប់ពីពាក្យគន្លឹះ CHANGE គឺជាឈ្មោះវាលដែលអ្នកចង់កែប្រែ ហើយបន្ទាប់មកបញ្ជាក់ឈ្មោះ និងប្រភេទវាលថ្មី។សាកល្បងឧទាហរណ៍ខាងក្រោម៖

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

ឥទ្ធិពលនៃតារាង ALTER លើតម្លៃ Null និង Default

នៅពេលអ្នកកែប្រែវាលមួយ អ្នកអាចបញ្ជាក់ថាតើត្រូវរួមបញ្ចូលតែ ឬថាតើត្រូវកំណត់តម្លៃលំនាំដើម។

ឧទាហរណ៍ខាងក្រោមបញ្ជាក់ថាវាល j មិនមែនជា NULL ហើយតម្លៃលំនាំដើមគឺ 100 ។

mysql> ALTER TABLE testalter_tbl 
    -> MODIFY j BIGINT NOT NULL DEFAULT 100;

ប្រសិនបើអ្នកមិនកំណត់តម្លៃលំនាំដើមទេ MySQL នឹងកំណត់វាលដោយស្វ័យប្រវត្តិទៅជា NULL តាមលំនាំដើម។


កែប្រែតម្លៃលំនាំដើមរបស់វាល

អ្នកអាចប្រើ ALTER ដើម្បីផ្លាស់ប្តូរតម្លៃលំនាំដើមនៃវាលមួយ សាកល្បងឧទាហរណ៍ខាងក្រោម៖

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)

អ្នកក៏អាចប្រើពាក្យបញ្ជា ALTER ជាមួយនឹងឃ្លា DROP ដើម្បីលុបតម្លៃលំនាំដើមនៃវាលមួយ ដូចក្នុងឧទាហរណ៍ខាងក្រោម៖

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:

ការកែប្រែប្រភេទតារាងទិន្នន័យអាចត្រូវបានធ្វើដោយប្រើពាក្យបញ្ជា ALTER និងឃ្លា TYPE ។សាកល្បងឧទាហរណ៍ខាងក្រោម ដែលយើងប្តូរប្រភេទនៃតារាង testalter_tbl ទៅ MYISAM៖

សម្គាល់ៈដើម្បីមើលប្រភេទតារាងទិន្នន័យ អ្នកអាចប្រើសេចក្តីថ្លែងការណ៍ SHOW TABLE STATUS ។

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)

កែប្រែឈ្មោះតារាង

ប្រសិនបើអ្នកត្រូវការកែប្រែឈ្មោះតារាងទិន្នន័យ អ្នកអាចប្រើឃ្លា RENAME នៅក្នុងសេចក្តីថ្លែងការណ៍ ALTER TABLE ដើម្បីធ្វើដូច្នេះបាន។

សាកល្បងឧទាហរណ៍ខាងក្រោមដើម្បីប្តូរឈ្មោះតារាងទិន្នន័យ testalter_tbl ទៅ alter_tbl៖

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

ពាក្យបញ្ជា ALTER ក៏អាចត្រូវបានប្រើដើម្បីបង្កើត និងលុបលិបិក្រមនៅលើតារាង MySQL ដែលយើងនឹងរៀបរាប់នៅក្នុងជំពូកបន្ទាប់។

ផ្លាស់ប្តូរការប្រើប្រាស់ផ្សេងទៀត។

កែប្រែម៉ាស៊ីនផ្ទុក៖ កែប្រែវាទៅជា myisam

alter table tableName engine=myisam;

ដក​ការ​រឹត​បន្តឹង​សោ​បរទេស​ចេញ៖ keyName ជា​ឈ្មោះ​ក្លែងក្លាយ​សោបរទេស

alter table tableName drop foreign key keyName;

ទីតាំងដែលទាក់ទងនៃវាលដែលបានកែប្រែ៖ នៅទីនេះ name1 គឺជាវាលដែលអ្នកចង់កែប្រែ ប្រភេទ 1 គឺជាប្រភេទដើមនៃវាល ហើយអ្នកអាចជ្រើសរើសមួយក្នុងចំណោមទីមួយ និងបន្ទាប់ ដែលគួរតែច្បាស់ ទីមួយត្រូវបានដាក់មុន ហើយបន្ទាប់គឺ បានដាក់បន្ទាប់ពីវាលឈ្មោះ 2

alter table tableName modify name1 type1 first|after name2;

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) shared "MySQL alter add ដើម្បីបង្កើនមុខតំណែងវាលច្រើន? ការពន្យល់លម្អិតនៃការប្រើប្រាស់សេចក្តីថ្លែងការណ៍ជួរឈរកែប្រែ" មានប្រយោជន៍សម្រាប់អ្នក។

សូមស្វាគមន៍ចំពោះការចែករំលែកតំណភ្ជាប់នៃអត្ថបទនេះ៖https://www.chenweiliang.com/cwl-495.html

សូមស្វាគមន៍មកកាន់ឆានែល Telegram នៃប្លុករបស់ Chen Weiliang ដើម្បីទទួលបានព័ត៌មានថ្មីៗចុងក្រោយបង្អស់!

🔔 ក្លាយជាអ្នកដំបូងដែលទទួលបាន "ការណែនាំអំពីការប្រើប្រាស់ឧបករណ៍ AI ទីផ្សារមាតិកា ChatGPT" ដ៏មានតម្លៃនៅក្នុងបញ្ជីកំពូលរបស់ប៉ុស្តិ៍! 🌟
📚 មគ្គុទ្ទេសក៍នេះមានតម្លៃមហាសាល 🌟នេះជាឱកាសដ៏កម្រ សូមកុំអូសរំលង! ⏰⌛💨
Share និង Like ប្រសិនបើអ្នកចូលចិត្ត!
ការចែករំលែក និងការចូលចិត្តរបស់អ្នកគឺជាការលើកទឹកចិត្តបន្តរបស់យើង!

 

发表评论។

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ 必填项已用។ * 标注។

រំកិលទៅកំពូល