學習不僅需要投入時間和成本,更重要的是通過大量實踐來達到精通的境界。在日常工作和學習中,我們需要掌握的技能繁多,是以,首先應該掌握常用技能,再選擇一個感興趣的領域進行深入學習,進而在保證時間效益的同時,平衡工作與生活。
MySQL的日常操作管理,常用的指令并不多,隻需要簡單掌握就能夠滿足日常工作的需求。
假如資料庫名稱是 school 表名 student 伺服器位址 192.168.0.100,常用的指令分為以下幾類:連接配接指令、資料庫操作指令、資料表操作指令、資料操作指令、查詢指令、使用者管理指令、優化和維護指令。
1、連接配接指令
1.1 mysql -h 192.168.0.100 -u 使用者名 -p #連接配接到 MySQL 伺服器。
2、資料庫操作指令
2.1 CREATE DATABASE school; #建立名為 "school" 的資料庫。
2.2 SHOW DATABASES; #列出所有資料庫。
2.3 USE school; #選擇 "school" 資料庫。
2.4 DROP DATABASE school; #删除 "school" 資料庫。
3、資料表操作指令
3.1 CREATE TABLE student (id INT, name VARCHAR(20), age INT); #建立 "student" 表。
3.2 SHOW TABLES; #列出目前資料庫中的所有表。
3.3 DESCRIBE student; #顯示 "student" 表的結構。
3.4 ALTER TABLE student ADD email VARCHAR(255); #向 "student" 表添加 "email" 列。
3.5 ALTER TABLE student DROP COLUMN email; #從 "student" 表删除 "email" 列。
3.6 ALTER TABLE student MODIFY COLUMN name VARCHAR(30); #修改 "student" 表的 "name" 列資料類型。
3.7 ALTER TABLE student RENAME TO students; #将 "student" 表重命名為 "students"。
3.8 DROP TABLE student; #删除 "student" 表。
4、資料操作指令
4.1 INSERT INTO student (id, name, age) VALUES (1, 'Tom', 18); #向 "student" 表插入一行資料。
4.2 UPDATE student SET age = 19 WHERE id = 1; #更新 "student" 表中的一行資料。
4.3 DELETE FROM student WHERE id = 1; #從 "student" 表删除一行資料。
4.4 TRUNCATE TABLE student; #清空 "student" 表的所有資料。
5、查詢指令
5.1 SELECT * FROM student; #查詢 "student" 表的所有資料。
5.2 SELECT id, name FROM student; #查詢 "student" 表的 "id" 和 "name" 列資料。
5.3 SELECT * FROM student WHERE age >= 18; #查詢 "student" 表中年齡大于等于 18 的資料。
5.4 SELECT * FROM student ORDER BY age DESC; #查詢 "student" 表資料,按年齡降序排列。
5.5 SELECT COUNT(*) FROM student; #查詢 "student" 表的行數。
5.6 SELECT * FROM student LIMIT 10; #查詢 "student" 表的前 10 行資料。
6、使用者管理指令
6.1 CREATE USER 'new_user'@'%' IDENTIFIED BY 'password'; #建立新使用者。
6.2 DROP USER 'new_user'@'%'; #删除使用者。
6.3 GRANT ALL PRIVILEGES ON . TO 'new_user'@'%' WITH GRANT OPTION; #給使用者授權。
6.4 REVOKE ALL PRIVILEGES ON . FROM 'new_user'@'%'; #撤銷使用者權限。
6.5 SHOW GRANTS FOR 'new_user'@'%'; #顯示使用者的權限。
7、優化和維護指令
7.1 ANALYZE TABLE student; #分析表以更新關鍵字分布和表的統計資訊。
7.2 CHECK TABLE student; #檢查表的完整性和結構。
7.3 OPTIMIZE TABLE student; #優化表以提高性能。
7.4 REPAIR TABLE student; #修複損壞的表。
7.5 SHOW VARIABLES; #顯示伺服器的系統變量。
7.6 SHOW STATUS; #顯示伺服器的狀态資訊。
7.7 SHOW PROCESSLIST; #顯示目前連接配接到伺服器的程序清單。
7.8 KILL 程序ID; #殺死指定的伺服器程序。
8、備份與恢複指令
8.1 mysqldump -h 192.168.0.100 -u 使用者名 -p school > backup.sql #将 "school" 資料庫備份到 "backup.sql" 檔案。
8.2 mysql -h 192.168.0.100 -u 使用者名 -p school < backup.sql #從 "backup.sql" 檔案恢複 "school" 資料庫。
9、索引和限制指令
9.1 ALTER TABLE student ADD PRIMARY KEY (id); #為 "student" 表的 "id" 列添加主鍵限制。
9.2 ALTER TABLE student ADD UNIQUE (email); #為 "student" 表的 "email" 列添加唯一限制。
9.3 ALTER TABLE student ADD INDEX (age); #為 "student" 表的 "age" 列添加索引。
9.4 ALTER TABLE student ADD FOREIGN KEY (class_id) REFERENCES class(id); #為 "student" 表的 "class_id" 列添加外鍵限制,引用 "class" 表的 "id" 列。
9.5 ALTER TABLE student DROP PRIMARY KEY; #删除 "student" 表的主鍵限制。
9.6 ALTER TABLE student DROP INDEX age; #删除 "student" 表的 "age" 列索引。
10、事務控制指令
10.1 START TRANSACTION; #開始一個新的事務。
10.2 COMMIT; #送出事務,使修改永久生效。
10.3 ROLLBACK; #復原事務,撤銷未送出的修改。
這些指令能滿足日常管理的工作,尤其在沒有可視化工具軟體的時候,直接在控制台操作,這些已經很完整。