Jinsi ya Kuangalia Data na Muundo wa Jedwali la MySQL (SHOW TABLES, DESCRIBE, SELECT, INFORMATION_SCHEMA)

目次

1. Utangulizi

Unaposhughulikia hifadhidata kwa MySQL, kuna hali nyingi ambapo unataka “kuangalia kilicho ndani ya jedwali.” Kwa mfano, unaweza kutaka kuthibitisha kuwa data ya majaribio imehifadhiwa kwa usahihi, au kuthibitisha kuwa data inayotarajiwa inaingizwa wakati wa kuendeleza programu. Kuwa na uwezo wa kuchunguza haraka yaliyomo kwenye jedwali ni muhimu sana.

Katika maendeleo na shughuli za kila siku, pia mara nyingi unahitaji taarifa kama “Muundo wa jedwali unaonekana vipi?” au “Aina za safu na vikwazo ni nini?” Hata hivyo, ikiwa haujui MySQL, inaweza kuwa ghafla haieleweki jinsi ya kuangalia yaliyomo na muundo wa jedwali.

Katika makala hii, tutaelezea kila kitu kutoka kwa misingi ya kuangalia yaliyomo na muundo wa jedwali katika MySQL hadi amri za vitendo zinazotumika mara kwa mara na mbinu za juu, pamoja na makosa ya kawaida na utatuzi wa matatizo. Mwongozo huu unajumuisha taarifa muhimu kwa wanaoanza na kwa wale wanaotumia MySQL mara kwa mara—kwa hivyo tafadhali utumie kama rejea.

2. Sharti la Msingi: Jinsi ya Kuunganisha kwa MySQL

Ili kuangalia yaliyomo na muundo wa majedwali ya MySQL, kwanza unahitaji kuunganisha kwa seva ya MySQL. Hapa, tunaelezea jinsi ya kuingia kwenye MySQL kutoka kwa mstari wa amri (Terminal au Command Prompt) na jinsi ya kuchagua hifadhidata.

Jinsi ya Kuingia kwenye MySQL

Ili kuunganisha kwa MySQL, tumia amri ifuatayo.

mysql -u username -p

Badilisha “username” na jina lako la mtumiaji la MySQL. Unapoendesha amri, utaulizwa uweke nenosiri—andika nenosiri sahihi.

Chagua hifadhidata

Baada ya kuingia kwa mafanikio, utaona kibonyezo cha MySQL (mysql>). Ili kuchagua hifadhidata unayotaka kufanya kazi nayo, ingiza amri ifuatayo.

USE database_name;

Baada ya hili, shughuli zinazofuata zitatendeka dhidi ya hifadhidata iliyochaguliwa.
Ukisahau hatua hii, unaweza kupata kosa kama “No database selected,” hivyo kuwa makini.

Jinsi ya Orodha ya Hifadhidata

Ikiwa unataka kuona orodha ya hifadhidata zilizopo kwenye seva, unaweza kutumia amri ifuatayo.

SHOW DATABASES;

Hii itaonyesha majina yote ya hifadhidata katika orodha. Kama inahitajika, thibitisha jina la hifadhidata lengwa hapa na badilisha kwa kutumia USE database_name;.

3. Angalia Orodha ya Jedwali (Onyesha Orodha ya Majedwali)

Baada ya kuunganisha kwa MySQL na kuchagua hifadhidata lengwa, mara nyingi utataka kuthibitisha “je, majedwali yapo.” Hapa, tunatambulisha njia ya msingi ya kuorodhesha majedwali, pamoja na mbinu muhimu za kupunguza hadi majedwali unayohitaji tu.

Amri ya Msingi ya Orodhesha Majedwali

Ili kuonyesha orodha ya majedwali, tumia amri ifuatayo.

SHOW TABLES;

Kutumia amri hii kunaonyesha orodha ya majina yote ya majedwali katika hifadhidata iliyochaguliwa kwa sasa.
Kwa mfano, unaweza kuona majina ya majedwali kama “users,” “orders,” na “products” yameorodheshwa wima.

Angalia Orodha ya Majedwali katika Hifadhidata Nyingine

Ikiwa unataka kuangalia orodha ya majedwali ya hifadhidata tofauti ambayo haijachaguliwa, andika amri kama ifuatayo:

SHOW TABLES FROM database_name;

Kwa njia hii, unaweza kuangalia haraka majedwali katika hifadhidata iliyobainishwa bila kubadilisha hifadhidata kwa kutumia amri ya USE kila wakati.

Tafuta (chuja) majina maalum ya majedwali

Kuna majedwali mengi, unaweza kutaka kupata jedwali lengwa haraka. Katika hali hiyo, unaweza kuchuja kwa kutumia chaguo la LIKE.

SHOW TABLES LIKE 'search_word%';

Kwa mfano, ikiwa unataka kuonyesha majedwali yanayoanza na “user,” eleza kama SHOW TABLES LIKE 'user%';.

Pia, kulingana na toleo la MySQL, unaweza kutumia kifungu cha SHOW TABLES WHERE.

SHOW TABLES WHERE Tables_in_database_name LIKE '%keyword%';

Kuoandisha majedwali ni operesheni ya msingi ya MySQL, lakini ubunifu kidogo unaweza kuboresha sana usimamizi na ufanisi wa utafutaji.

4. Angalia Muundo wa Jedwali (Orodha ya Safu)

Kabla ya kuangalia maudhui ya jedwali, ni muhimu sana kuelewa “ni nguzo zipi zilizopo na aina za data na vikwazo vimewekwa.” Kujua muundo wa jedwali inakusaidia kuchukua na kuhariri data kwa usahihi, na pia inakusaidia kuzuia matatizo wakati wa maendeleo na shughuli za mfumo.

Amri ya msingi: DESCRIBE (DESC)

Amri ya kawaida zaidi ya kuangalia muundo wa jedwali ni DESCRIBE. Unaweza pia kutumia kifupi DESC.

DESCRIBE table_name;

au

DESC table_name;

Ukifanya amri hii, MySQL inaonyesha orodha ya majina ya nguzo, aina za data, vikwazo vya NULL, taarifa za ufunguo wa msingi, na zaidi.

Vipengele kuu vinavyoonyeshwa:

  • Field (jina la nguzo)
  • Type (aina ya data)
  • Null (ikiwa NULL inaruhusiwa)
  • Key (ufunguo wa msingi, ufunguo wa kigeni, n.k.)
  • Default (thamani ya chaguo-msingi)
  • Extra (taarifa za ziada kama auto-increment)

Amri ya SHOW COLUMNS

SHOW COLUMNS FROM table_name; inaonyesha maudhui karibu sawa na DESCRIBE. Kulingana na hali, kutumia amri hii pia ni sawa.

Ikiwa unataka taarifa zaidi ya kina

Ikiwa unahitaji taarifa zaidi ya kina za nguzo, tumia SHOW FULL COLUMNS FROM table_name;. Hii inajumuisha taarifa za ziada kama collation (Collation) na privileges (Privileges).

Wakati angalia muundo wa jedwali ni muhimu

  • Elewa “ni nguzo zipi zilizopo” wakati wa maendeleo mapya au matengenezo
  • Angalia aina za nguzo, NULLability, na taarifa za ufunguo wa msingi wakati wa kuchunguza mfumo uliopo au kufanya uunganishaji wa data
  • Fafanua “aina ya data gani itahifadhiwa” wakati wa kuandika code

Ili kuangalia maudhui ya jedwali kwa usalama na usahihi, anza kwa kuthibitisha muundo wa jedwali kwanza.

5. Angalia Maudhui ya Jedwali (Data)

Pindi utakapoelewa muundo wa jedwali, hatua ya pili ni kuangalia data gani kweli inahifadhiwa kwenye jedwali. Katika MySQL, unaweza kuchukua data kutoka kwenye jedwali kwa urahisi kwa kutumia taarifa ya SELECT.

Angalia data zote

Ikiwa unataka kuonyesha safu zote kwenye jedwali, andika swali kama hili:

SELECT * FROM table_name;

Kufanya amri hii inaonyesha safu zote (rekodi) kwenye jedwali.
Hata hivyo, ikiwa jedwali lina kiasi kikubwa cha data, kuonyesha kila kitu mara moja kunaweza kuwa ngumu kusoma—kwa hivyo tumia tahadhari.

Chagua nguzo tu unazohitaji

Ikiwa huhitaji nguzo zote na unataka kuona taarifa maalum tu, bainisha majina ya nguzo unayotaka kuchukua:

SELECT column1, column2 FROM table_name;

Hii inaonyesha nguzo zilizobainishwa tu, ikifanya iwe rahisi kurekebisha au kukusanya data.

Chuja data kwa hali

Ikiwa unataka kuangalia data tu inayolingana na hali fulani, tumia kifungu cha WHERE:

SELECT * FROM table_name WHERE column_name = 'value';

Kwa mfano, ikiwa unataka kuangalia “mtumiaji tu na id = 10” kwenye jedwali la users, andika kama:
SELECT * FROM users WHERE id = 10;

Ikiwa unataka kutafuta kwa kutumia mechi ya sehemu, tumia opereta ya LIKE:

SELECT * FROM table_name WHERE column_name LIKE 'A%';

Katika mfano huu, rekodi tu ambazo thamani ya nguzo inaanza na “A” itaonyeshwa.

Pima idadi ya safu zinazorudishwa (kifungu cha LIMIT)

Ikiwa jedwali lina idadi kubwa sana ya safu, ni muhimu pia kupima idadi ya matokeo yanayoonyeshwa kwa kutumia kifungu cha LIMIT:

SELECT * FROM table_name LIMIT 10;

Hii inaonyesha safu 10 za kwanza tu.
Aidha, unaweza kutumia OFFSET kubainisha safu gani kuanza nayo:

SELECT * FROM table_name LIMIT 10 OFFSET 20;

Hii inachukua safu 10 kuanzia safu ya 21, ambayo ni muhimu kwa kurasa na kurekebisha data kubwa.

6. Pata Taarifa zaidi ya Kina za Jedwali

Katika MySQL, kuna amri si tu za kuangalia maudhui na muundo wa jedwali, bali pia za kuchukua taarifa zaidi ya kina. Hapa, tunaeleza jinsi ya kuangalia hali ya jedwali, maelezo ya uundaji, saizi ya jedwali, na zaidi.

Angalia hali ya jedwali (SHOW TABLE STATUS)

Ikiwa unataka muhtasari wa hali ya jedwali na taarifa za msingi, tumia amri ya SHOW TABLE STATUS:

SHOW TABLE STATUS;

Kutumia amri hii inaonyesha orodha ya taarifa kama ifuatayo kwa jedwali zote katika hifadhidata iliyochaguliwa kwa sasa:

  • Jina la jedwali (Name)
  • Injini (Engine)
  • Idadi ya safu (Rows)
  • Ukubwa wa jedwali (Data_length, Index_length)
  • Muda wa kuundwa (Create_time)
  • Muda wa mwisho wa kusasishwa (Update_time)
  • Ulinganifu (Collation), n.k.

Ikiwa unataka kuangalia jedwali maalum pekee, liainishe kama ifuatavyo:

SHOW TABLE STATUS LIKE 'table_name';

SQL iliyotumika kuunda jedwali (SHOW CREATE TABLE)

Ikiwa unataka kujua “SQL gani ilitumiwa kuunda jedwali hili?”, amri ya SHOW CREATE TABLE ni ya manufaa:

SHOW CREATE TABLE table_name;

Inapotekelezwa, inatoa tamko kamili la CREATE TABLE lililotumika kuunda jedwali. Amri hii ni msaada mkubwa kwa uhamishaji wa majedwali, nakala za akiba, na kuunda tena jedwali hilo katika mazingira mengine.

Wakati taarifa za jedwali kwa undani ni muhimu

  • Elewa ukubwa wa jedwali na idadi ya safu kwa ajili ya maboresho ya utendaji na usimamizi wa hifadhi
  • Angalia DDL (mafafanuzi ya jedwali) kama nyenzo ya rejea kwa ajili ya uhamishaji na urekebishaji
  • Chunguza aina ya injini, seti ya herufi, na taarifa za faharasa ili kusaidia kutambua sababu za matatizo ya mfumo

Kwa kumudu amri hizi, unaweza kupanua sana kile unachoweza kufanya katika shughuli za MySQL na utatuzi wa matatizo.

7. Kukagua kupitia INFORMATION_SCHEMA (Ya Juu)

MySQL hutoa hifadhidata maalum iitwayo INFORMATION_SCHEMA. Inahifadhi aina mbalimbali za metadata kuhusu seva nzima ya MySQL, ikijumuisha taarifa za jedwali, maelezo ya safu, faharasa, ruhusa, na mengineyo. Kwa kuitumia, unaweza kupata taarifa za jedwali na safu kwa njia yenye kubadilika zaidi na ya kina.

Pata taarifa za jedwali kwa kutumia INFORMATION_SCHEMA

Kwa mfano, ikiwa unataka kupata orodha ya majina ya jedwali zote katika hifadhidata maalum, unaweza kutumia SQL ifuatayo:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'database_name';

SQL hii ni ya manufaa wakati unahitaji kuchunguza jedwali nyingi kwa kutumia zana za usimamizi au kukusanya taarifa kiotomatiki kwa maandishi.

Pata taarifa za safu na faharasa

Unaweza kupata taarifa za safu kwa njia inayofanana:

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_KEY
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'database_name'
  AND TABLE_NAME = 'table_name';

Unaweza pia kupata kwa urahisi maelezo ya faharasa, vikwazo, funguo za nje, na metadata nyingine kwa kutumia INFORMATION_SCHEMA.

Uhusiano na ANALYZE TABLE

Kwa urekebishaji wa utendaji na kusasisha takwimu, amri ya ANALYZE TABLE hutumika. Unapoendesha amri hii, takwimu za jedwali husasishwa, na thamani za takwimu zinazopatikana kutoka INFORMATION_SCHEMA (kama vile makadirio ya idadi ya safu) huwa sahihi zaidi.

ANALYZE TABLE table_name;

Wakati wa kutumia INFORMATION_SCHEMA

  • Unapohitaji kupata taarifa kuhusu majedwali au safu nyingi kwa wakati mmoja
  • Unapokagua miundo ya jedwali na safu katika usindikaji wa kundi au maandishi ya otomatiki
  • Unapohitaji taarifa za kina kama vile faharasa, funguo za nje, au maoni ya jedwali

INFORMATION_SCHEMA ni chombo chenye nguvu cha kupata uelewa wa kina wa MySQL na kuichukua kwa ufanisi zaidi. Tumia kikamilifu katika kazi za usimamizi wa kila siku na maendeleo ya mfumo.

8. Zana za CLI na Njia za Mkato

Unapokagua maudhui na muundo wa jedwali katika MySQL, kujua amri na chaguzi za kiolesura cha amri (CLI) zinazofaa kunaweza kuboresha sana ufanisi wako. Hapa, tunatambua zana za CLI zinazotumika mara kwa mara na njia za mkato zenye msaada.

Amri ya mysqlshow

MySQL hutoa zana ya CLI maalum iitwayo mysqlshow. Imebobea katika kuorodhesha hifadhidata na majedwali na inakuwezesha kuangalia taarifa haraka bila kuingia MySQL kwa njia ya mazungumzo.

Onyesha orodha ya hifadhidata

mysqlshow -u username -p

Onyesha majedwali katika hifadhidata maalum

mysqlshow -u username -p database_name

Onyesha taarifa za safu kwa jedwali maalum

mysqlshow -u username -p database_name table_name

Kwa amri hizi fupi, unaweza kukagua muundo na uwepo wa haraka, na kuifanya iwe rahisi kwa usimamizi wa seva na uandishi wa maandishi.

Fanya matokeo yasomeke kwa urahisi kwa chaguo la “\G”

Kawaida, unapotekeleza SQL katika MySQL, matokeo yanaonyeshwa katika muundo wa jedwali wima. Hata hivyo, ikiwa kuna safu nyingi au taarifa nyingi, kutumia “\G” huonyesha matokeo wima, na kuyafanya yasomeke kwa urahisi zaidi.

Mfano wa matumizi

SELECT * FROM table_name\G

Ukivandika kwa njia hii, kila rekodi inaonyeshwa wima, kwa majina ya safu na thamani zikionyeshwa kwa jozi.
Hii ni muhimu hasa unapokagua muundo wa jedwali au ukikagua kwa umakini maelezo ya rekodi moja.

Mbinu nyingine muhimu za CLI

  • Kutumia historia ya amri Unaweza kutumia vitufe vya mishale ya juu na chini kurudisha amri zilizotekelezwa awali, hivyo hupaswi kuandika amri ile ile tena na tena.
  • Ukamishaji wa Tab Unapoandika majina ya jedwali au safu, bonyeza kitufe cha Tab baada ya kuandika sehemu ya jina ili kiijaze kiotomatiki, na kupunguza makosa ya tahajia na ingizo.

Kwa kumudu zana za CLI na njia za mkato, shughuli za MySQL hubadilika kuwa za starehe na ufanisi. Jaribu kuzitumia katika kazi yako ya kila siku na majukumu ya maendeleo.

9. Makosa ya Kawaida na Jinsi ya Kuyatatua

Unapokagua maudhui na muundo wa jedwali katika MySQL, kuna makosa kadhaa ya kawaida ambayo wapenzi wa awali na watumiaji wenye uzoefu hukutana nayo angalau mara moja. Hapa, tunaelezea wazi makosa ya kawaida, chanzo chao, na jinsi ya kuyatatua.

Hakuna hifadhidata iliyochaguliwa

Ujumbe wa kosa

ERROR 1046 (3D000): No database selected

Sababu & Suluhisho
Kosa hili hutokea unapojaribu kufanya kazi kwenye majedwali bila kuchagua hifadhidata kwanza.
Hakikisha unaeleza hifadhidata lengwa mapema kwa kutumia:

USE database_name;

Hifadhidata isiyojulikana

Ujumbe wa kosa

ERROR 1049 (42000): Unknown database 'database_name'

Sababu & Suluhisho
Hii hutokea wakati hifadhidata iliyotajwa haipo. Sababu za kawaida ni makosa ya tahajia, matumizi ya herufi kubwa/kubwa yasiyofaa, au hifadhidata haijaundwa bado.
Tumia amri ifuatayo kuthibitisha jina sahihi:

SHOW DATABASES;

Makosa ya ruhusa (hakuna matokeo yanayoonekana na SHOW TABLES / SHOW COLUMNS)

Mazingira ya mfano

  • Hakuna majedwali yanayotokea wakati wa kutekeleza SHOW TABLES
  • Hakuna taarifa inayoonekana wakati wa kutekeleza SHOW COLUMNS

Sababu & Suluhisho
Hii hutokea wakati mtumiaji wa MySQL hana ruhusa za kutosha kwa hifadhidata au jedwali.
Omba msimamizi (kama mtumiaji root) kumpa ruhusa zinazohitajika, au sanidi ruhusa kwa kutumia amri sahihi ya GRANT.

Safu nyingi sana zimekurudishwa, na matokeo yanakuwa magumu kusoma

Hali ya mfano

  • Kutekeleza SELECT * FROM table_name; husababisha maelfu ya safu kuonekana mara moja

Suluhisho
Tumia kifungu cha LIMIT kupunguza idadi ya safu zilizorudishwa.
Mfano:

SELECT * FROM table_name LIMIT 10;

Majina ya safu au jedwali yaliyoandikwa vibaya

Mazingira ya mfano

  • Safu isiyojulikana ‘column_name’ katika ‘field list’
  • Jedwali ‘database_name.table_name’ halipo

Suluhisho
Ili kuepuka makosa ya tahajia, tumia SHOW TABLES, SHOW COLUMNS, au vipengele vya ukamilishaji wa Tab katika CLI.

Makosa haya mengi yanaweza kuepukwa kwa kufanya ukaguzi wa msingi kwa umakini. Ukipata tatizo, pitia vidokezo vilivyo hapo juu hatua kwa hatua.

10. Muhtasari

Kuna mbinu mbalimbali za kufanya kazi ya msingi ya “kukagua maudhui ya jedwali” katika MySQL. Katika makala hii, tumeshughulikia kila kitu kutoka kwa kuorodhesha majedwali na kukagua muundo wa kina wa majedwali hadi kupata data halisi, pamoja na kupata metadata ya juu na taarifa za usimamizi wa kina.

  • Tumia SHOW TABLES kuorodhesha majedha,
  • Tumia DESCRIBE (DESC) au SHOW COLUMNS kuangalia taarifa za safu na muundo,
  • Tumia taarifa ya SELECT kupata data halisi,
  • Tumia SHOW TABLE STATUS , SHOW CREATE TABLE , na INFORMATION_SCHEMA kuangalia taarifa za usimamizi wa kina na DDL wakati inahitajika,
  • Na kuboresha ufanisi wa maendeleo na shughuli za kila siku kwa zana za CLI, njia fupi, na maarifa ya kutatua matatizo.

Kwa kujifunza mbinu hizi, shughuli za hifadhidata ya MySQL zinakuwa salama na kuaminika zaidi, na makosa au matatizo yanaweza kupunguzwa. Maudhui haya ni muhimu kwa wanaoanza, watumiaji wa kati, na wataalamu wanaofanya kazi katika mazingira ya ulimwengu halisi. Tumia mbinu hizi katika kazi zako za maendeleo na usimamizi wa mfumo za baadaye.

11. FAQ (Masharti Yanayoulizwa Mara Kwa Mara)

Q1. Ninawezaje kuangalia data ya jedwali kwa hali maalum?

A:
Tumia kifungu cha WHERE kama hii:

SELECT * FROM table_name WHERE condition;

Kwa mfano:

SELECT * FROM users WHERE age > 30;

Hii inachukua watumiaji wazee zaidi ya miaka 30 pekee. Unaweza pia kuiunganisha na kifungu cha LIMIT kudhibiti idadi ya safu zinazoonyeshwa.

Q2. Nilitumia SHOW TABLES lakini hakuna jedwali linaloonekana. Kwa nini?

A:
Sababu zinazowezekana ni pamoja na:
(1) Hukuangalia hifadhidata (USE database_name; imekosekana),
(2) Jina la hifadhidata lililotajwa ni lisilo sahihi,
(3) Haki zisizotosha.
Tumia SHOW DATABASES; kuthibitisha jina la hifadhidata na kuangalia kama una ruhusa zinazofaa.

Q3. Ninawezaje kuona muundo wa jedwali kama DDL (taarifa ya CREATE)?

A:
Tekeleza amri ifuatayo:

SHOW CREATE TABLE table_name;

Inaonyesha taarifa halisi ya CREATE TABLE iliyotumiwa kuunda jedwali. Hii ni muhimu kwa uhamisho wa jedwali na nakala za ziada.

Q4. Kuna data nyingi sana katika jedwali hivi kwamba haiwezi kuonekana zote mara moja.

A:
Tumia kifungu cha LIMIT:

SELECT * FROM table_name LIMIT 10;

Unaweza pia kuiunganisha na OFFSET kuangalia anuwai maalum hatua kwa hatua.

Q5. INFORMATION_SCHEMA ni nini na ninapaswa kuitumia lini?

A:
INFORMATION_SCHEMA ni hifadhidata maalum inayohifadhi metadata ya MySQL. Ni muhimu sana wakati unahitaji kupata au kusimamia kiasi kikubwa cha taarifa kuhusu majedha, safu, viashiria, au ruhusa. Kwa kuwa inaweza kuhojiwa moja kwa moja kwa SQL, pia ni bora kwa automation na ripoti.

Q6. Ninawezaje kuonyesha matokeo kwa mpaka wa wima?

A:
Ongeza “\G” mwishoni mwa taarifa yako ya SQL.
Mfano:

SELECT * FROM table_name\G

Hii inaonyesha kila rekodi kwa mpaka wa wima, ikionyesha majina ya safu na maadili katika umbizo la jozi linaloweza kusomwa.