Mwongozo wa Amri za MySQL: Msingi wa Kuanza hadi Kiwango cha Kati, CRUD, Watumiaji, Hifadhi & Utatuzi wa Tatizo

目次

1. Utangulizi

MySQL ni hifadhidata ya uhusiano ya chanzo wazi inayotumika sana kati ya mifumo ya usimamizi wa hifadhidata (DBMS). Inajulikana hasa kwa programu za wavuti na mifumo ya biashara. Katika makala hii, tutaelezea amri muhimu za MySQL kwa undani na kupanga maudhui ili watumiaji wa kiwango cha mwanzo hadi kati waweze kujifunza kwa urahisi.

1.1 MySQL ni Nini?

MySQL ni programu inayotumika kusimamia hifadhidata ya uhusiano (RDB). Data huhifadhiwa katika jedwali, na unashughulikia data kwa kutumia SQL (Lugha ya Maswali Iliyopangwa). MySQL ina sifa zifuatazo:

  • Chanzo wazi na bure kwa yeyote kutumia
  • Haraka na nyepesi katika utendaji
  • Inaendana na lugha nyingi za programu (kama PHP, Python, na Java)
  • Inafaa kwa kuendesha hifadhidata za kiwango kikubwa

1.2 Faida za Kujifunza Amri za MySQL

Ili kutumia MySQL kwa ufanisi, ni muhimu kuelewa amri za msingi. Faida kuu ni pamoja na:

  • Usimamizi wa data bora zaidi : Kumudu amri za SQL hukuwezesha kurejesha, kusasisha, na kufuta data haraka
  • Utaratibu wa kazi otomatiki : Kutumia maandishi (scripts) hukuwezesha kuendesha shughuli za hifadhidata kiotomatiki
  • Ushughulikiaji wa makosa laini : Wakati matatizo yanatokea, unaweza kuyatatua kwa kutumia amri sahihi za SQL

1.3 Unachojifunza Katika Makala Hii

Makala hii inaelezea mada zifuatazo kwa undani:

  • Operesheni za msingi za MySQL (kuanzisha, kuunganisha, na operesheni za hifadhidata)
  • Kuongeza, kurejesha, kusasisha, na kufuta data (operesheni za CRUD)
  • Usimamizi wa watumiaji na mipangilio ya ruhusa
  • Amri muhimu na utatuzi wa matatizo

Baadaye, tutapitia kila sehemu kwa mpangilio. Hebu tuanze na operesheni za msingi za MySQL.

2. Operesheni za Msingi za MySQL (Rafiki wa Mwanzo)

2.1 Kuanzisha na Kuunganisha kwa MySQL

2.1.1 Kuanzisha MySQL

Kwa kuwa MySQL inafanya kazi kama programu ya seva, lazima uanze seva kwanza. Njia ya kuanzisha inatofautiana kulingana na mfumo wa uendeshaji (OS).

Kuanzisha kwenye Linux / macOS

Katika Linux na macOS, unaweza kuanzisha MySQL kwa kutumia amri ya systemctl.

sudo systemctl start mysql

Angalia kama MySQL inaendesha

sudo systemctl status mysql

Ikiwa unaona “active (running)”, MySQL inaendesha kwa kawaida.

Kuanzisha kwenye Windows

Kwenye Windows, MySQL mara nyingi hufanywa kama huduma, hivyo unaweza kutumia amri ya net start.

net start mysql

Au, ikiwa unatumia XAMPP, fungua XAMPP Control Panel na ubofye “Start” kwa “MySQL”.

2.1.2 Kuunganisha kwa MySQL

Ili kuunganisha kwa MySQL, tumia amri ya mysql. Amri ya msingi ya kuunganisha ni kama ifuatavyo:

mysql -u username -p
Unganisha kama mtumiaji root

Kama chaguo-msingi, mtumiaji root anapangwa kama msimamizi. Unaweza kuunganisha kwa amri ifuatayo:

mysql -u root -p

Baada ya kubonyeza Enter, utaulizwa uweke nenosiri. Ikiwa utaweka nenosiri sahihi, utaweza kuingia kwenye MySQL.

Unganisha kwa mwenyeji maalum

Ili kuunganisha kwa seva ya MySQL iliyoko mbali, tumia chaguo -h.

mysql -h hostname -u username -p

Kwa mfano, kuunganisha kwa seva ya MySQL kwenye 192.168.1.100, andika:

mysql -h 192.168.1.100 -u root -p
Unganisha kwa kubainisha nambari ya bandari

Bandari ya chaguo-msingi ya MySQL ni 3306. Ikiwa imebadilishwa, unaweza kuibainisha kwa kutumia chaguo la -P.

mysql -h 192.168.1.100 -P 3307 -u root -p

2.2 Amri za Msingi za MySQL

Mara tu unapounganishwa kwenye MySQL, jaribu kutekeleza baadhi ya amri za msingi.

2.2.1 Angalia toleo la MySQL

Ili kuangalia toleo la MySQL unalotumia kwa sasa, tembea amri ifuatayo:

SELECT VERSION();

2.2.2 Angalia hifadhidata ya sasa

Ili kuangalia hifadhidata ipi imechaguliwa kwa sasa, tembea:

SELECT DATABASE();

Ikiwa hakuna hifadhidata iliyochaguliwa, NULL itarejeshwa.

2.2.3 Orodhesha hifadhidata zinazopatikana

Ili kuorodhesha hifadhidata zilizopo katika MySQL, tumia:

SHOW DATABASES;

2.3 Makosa ya Kawaida na Marekebisho

2.3.1 Hitilafu ya “Access denied”

Mfano wa hitilafu:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Jinsi ya kurekebisha:
  1. Thibitisha kuwa nenosiri ni sahihi
  2. Angalia na urekebishe mamlaka za root
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEW_PASSWORD';
    FLUSH PRIVILEGES;
    

2.3.2 Kosa la “Haiwezi kuunganisha na seva ya MySQL kwenye ‘localhost’”

Mfano wa kosa:

ERROR 2002 (HY000): Can't connect to MySQL server on 'localhost' (10061)
Jinsi ya kurekebisha:
  1. Angalia kama MySQL inaendesha ( systemctl status mysql )
  2. Anzisha upya MySQL
    sudo systemctl restart mysql
    

2.4 Muhtasari

Katika sehemu hii, tumeeleza jinsi ya kuanza MySQL na kuunganisha nayo.

3. Shughuli za Hifadhidata

Katika MySQL, unaunda hifadhidata ili kusimamia data, na kisha kupanga taarifa kwa kuiweka majedwali ndani yake. Katika sehemu hii, tutaeleza shughuli za msingi kama vile kuunda, kuchagua, kuorodhesha, na kufuta hifadhidata kwa undani.

3.1 Kuunda Hifadhidata

Ili kuunda hifadhidata katika MySQL, tumia amri ya CREATE DATABASE.

3.1.1 Unda hifadhidata ya msingi

Ikiwa utaendesha amri ya SQL ifuatayo, unaweza kuunda hifadhidata mpya inayoitwa my_database.

CREATE DATABASE my_database;
Ujumbe wakati wa mafanikio ya kuunda
Query OK, 1 row affected (0.01 sec)

3.1.2 Wakati unajaribu kuunda hifadhidata ambayo tayari ipo

Ikiwa hifadhidata tayari ipo, utaona kosa kama ifuatayo:

ERROR 1007 (HY000): Can't create database 'my_database'; database exists

Ili kuzuia kosa hili, ni muhimu kuongeza chaguo la IF NOT EXISTS.

CREATE DATABASE IF NOT EXISTS my_database;

Wakati unapoendesha amri hii, hifadhidata inaundwa tu ikiwa haipo tayari.

3.2 Kuorodhesha Hifadhidata

Ili kuangalia ni hifadhidata zipi zinazopo kwenye seva ya MySQL ya sasa, tumia amri ya SHOW DATABASES.

SHOW DATABASES;

Mfano wa pato:

+--------------------+
| Database          |
+--------------------+
| information_schema |
| my_database       |
| mysql             |
| performance_schema |
| sys               |
+--------------------+

Tahadhari: Hifadhidata za mfumo kama mysql na information_schema zinahitajika kwa usimamizi wa MySQL.

3.3 Kuchagua Hifadhidata

Katika MySQL, lazima uchague hifadhidata unayotaka kutumia. Ili kubainisha hifadhidata, endesha amri ya USE.

USE my_database;
Ujumbe wakati wa mafanikio
Database changed

Ili kuthibitisha ni hifadhidata ipi inayochaguliwa kwa sasa, tumia amri ifuatayo:

SELECT DATABASE();

Mfano wa pato:

+------------+
| DATABASE() |
+------------+
| my_database |
+------------+

3.4 Kufuta Hifadhidata

Ili kufuta hifadhidata ambayo hautahitaji tena, tumia amri ya DROP DATABASE.

DROP DATABASE my_database;

3.4.1 Maelezo muhimu kabla ya kufuta

  • Kuwa mwangalifu: kufuta hifadhidata kunasababisha kupotea kwa data yote!
  • Ili kuepuka makosa ya bahati mbaya, unaweza pia kuongeza IF EXISTS .
    DROP DATABASE IF EXISTS my_database;
    

Amri hii inamaliza bila kosa hata kama my_database haipo.

3.5 Makosa ya Kawaida na Marekebisho

3.5.1 Kosa la “Access denied for user”

Mfano wa kosa:

ERROR 1044 (42000): Access denied for user 'user_name'@'localhost' to database 'my_database'
Jinsi ya kurekebisha
  • Toa mamlaka kwa kutumia amri ya GRANT
    GRANT ALL PRIVILEGES ON my_database.* TO 'user_name'@'localhost';
    FLUSH PRIVILEGES;
    

3.5.2 Kosa la “Can’t drop database”

Mfano wa kosa:

ERROR 1010 (HY000): Error dropping database (can't rmdir './my_database', errno: 39)
Jinsi ya kurekebisha
  • Anzisha upya MySQL
    sudo systemctl restart mysql
    
  • Futa majedwali yote katika my_database kwanza, kisha endesha DROP DATABASE .

3.6 Muhtasari

Katika sehemu hii, ulijifunza jinsi ya kuunda, kuchagua, kuorodhesha, na kufuta hifadhidata.

4. Shughuli za Jedwali

After creating a database, you need to create meza inside it to organize data. A table is like a grid for storing data, consisting of columns and rows (records).

In this section, we will explain basic operations such as creating, checking, listing, and deleting tables in detail.

4.1 Kuunda Meza

To create a table, use the CREATE TABLE command. If you run the following SQL, it creates a table named users.

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4.1.1 Maelezo ya kila kipengele wakati wa kuunda meza

  • id INT AUTO_INCREMENT PRIMARY KEY
  • Safu ya id ni integer (INT), inaongezeka kiotomatiki (AUTO_INCREMENT), na imewekwa kama ufunguo mkuu (PRIMARY KEY).
  • name VARCHAR(50) NOT NULL
  • Safu ya name ni kamba (VARCHAR) ya hadi herufi 50 na inahitajika kwa sababu ya NOT NULL.
  • email VARCHAR(100) UNIQUE NOT NULL
  • Safu ya email ni kamba ya hadi herufi 100, na kizuizi cha UNIQUE kinazuia anwani za barua pepe zilizo rudufu.
  • created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  • Safu ya created_at inaweka kiotomatiki tarehe/maisha ya sasa kama thamani chaguo-msingi.
Ujumbe wakati wa mafanikio
Query OK, 0 rows affected (0.02 sec)

4.2 Kuangalia Muundo wa Meza

To check the structure of a table you created, use DESC or SHOW COLUMNS.

DESC users;

Or

SHOW COLUMNS FROM users;

Example output:

+------------+--------------+------+-----+-------------------+----------------+
| Field      | Type         | Null | Key | Default           | Extra          |
+------------+--------------+------+-----+-------------------+----------------+
| id         | int(11)      | NO   | PRI | NULL              | auto_increment |
| name       | varchar(50)  | NO   |     | NULL              |                |
| email      | varchar(100) | NO   | UNI | NULL              |                |
| created_at | timestamp    | YES  |     | CURRENT_TIMESTAMP |                |
+------------+--------------+------+-----+-------------------+----------------+

4.3 Kuorodhesha Meza

To list the tables that exist in the current database, run the SHOW TABLES command.

SHOW TABLES;

Example output:

+------------------+
| Tables_in_mydb   |
+------------------+
| users            |
| products         |
| orders           |
+------------------+

4.4 Kufuta Meza

To delete a table you no longer need, use the DROP TABLE command.

DROP TABLE users;

4.4.1 Vidokezo muhimu wakati wa kufuta meza

  • Kuwa mwangalifu: kufuta meza kunafuta data kabisa!
  • Ili kuepuka makosa wakati wa kufuta, ongeza IF EXISTS .
    DROP TABLE IF EXISTS users;
    
Ujumbe wakati wa mafanikio
Query OK, 0 rows affected (0.01 sec)

4.5 Kurejesha Data ya Meza (Futa Safu Zote)

If you want to keep the table structure but delete only the data inside, use TRUNCATE TABLE.

TRUNCATE TABLE users;
Tofauti na DROP TABLE
  • DROP TABLE hushusha meza yenyewe.
  • TRUNCATE TABLE hushusha tu data na huhifadhi muundo wa meza.

4.6 Makosa ya Kawaida na Suluhisho

4.6.1 “Meza tayari ipo” error

Example error:

ERROR 1050 (42S01): Table 'users' already exists
Jinsi ya kutatua
  • Angalia meza zilizopo
    SHOW TABLES;
    
  • Unda meza kwa kutumia IF NOT EXISTS
    CREATE TABLE IF NOT EXISTS users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(50) NOT NULL,
        email VARCHAR(100) UNIQUE NOT NULL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    

4.6.2 “Meza haijulikani” error

Example error:

ERROR 1051 (42S02): Unknown table 'users'
Jinsi ya kutatua
  • Angalia ikiwa jedwali lipo kwa kutumia SHOW TABLES;
  • Ikiwa halipo, ongeza IF EXISTS
    DROP TABLE IF EXISTS users;
    

4.7 Muhtasari

Katika sehemu hii, tulijifunza operesheni za msingi za jedwali la MySQL: kuunda, kuangalia, na kufuta majedwali.