首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 入門指南(下):資料庫與資料表核心操作完整速查

     編輯:MySQL 資料庫相關知識

操作小技巧

  • 命令未輸入分號直接換行?補上分號再 Enter 即可,支援多行命令。
  • 上下鍵調取歷史命令(需支援 readline 的客戶端)。

常用顯示命令

SHOW DATABASES;USE db_name;SHOW TABLES;DESCRIBE table_name; 或 SHOW COLUMNS FROM table_name;SHOW CREATE TABLE table_name;SHOW INDEX FROM table_name;SHOW TABLE STATUS LIKE 'table_name';\G
操作命令
列出所有資料庫
切換資料庫
列出當前資料庫所有表
檢視表結構
顯示建表 SQL
查看表索引
查看表狀態

建庫、建表、刪除

-- 建立資料庫(指定字元集排序)
CREATE DATABASE school DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 刪除資料庫
DROP DATABASE IF EXISTS school;

-- 切換資料庫
USE school;

-- 建立表(範例:教師表)
CREATE TABLE teacher (
    id INT(3) UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
    name CHAR(10) NOT NULL,
    address VARCHAR(50) DEFAULT '深圳',
    hire_date DATE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 刪除表
DROP TABLE IF EXISTS teacher;

-- 清空表資料(保留結構、重置自增值)
TRUNCATE TABLE teacher;

資料操作(DML)

-- 插入單筆
INSERT INTO teacher (name, address, hire_date) VALUES ('glchengang', '深圳一中', '1976-10-10');

-- 插入多筆(效能較好)
INSERT INTO teacher (name, address, hire_date) VALUES
('jack', '深圳一中', '1975-12-23'),
('mary', '北京二中', '1980-05-15');

-- 查詢所有
SELECT * FROM teacher;

-- 條件查詢
SELECT name, address FROM teacher WHERE hire_date > '1978-01-01';

-- 更新
UPDATE teacher SET address = '廣州三中' WHERE name = 'jack';

-- 刪除
DELETE FROM teacher WHERE name = 'mary';

進階查詢技巧

  • 分頁:SELECT * FROM teacher LIMIT 10 OFFSET 20;(第 3 頁,每頁 10 筆)。
  • 排序:ORDER BY hire_date DESC。
  • 聚合:SELECT COUNT(*), AVG(YEAR(hire_date)) FROM teacher;。
  • 分組:SELECT address, COUNT(*) FROM teacher GROUP BY address;。
  • 連接:SELECT t.name, c.course_name FROM teacher t JOIN course c ON t.id = c.teacher_id;。

備份與還原

# 備份單一資料庫
mysqldump -u root -p school > school_backup.sql

# 備份所有資料庫
mysqldump -u root -p --all-databases > all_backup.sql

# 還原
mysql -u root -p school < school_backup.sql

權限管理基礎

-- 建立帳號並授權
CREATE USER 'app_user'@'%' IDENTIFIED BY 'strongpass';
GRANT SELECT, INSERT, UPDATE, DELETE ON school.* TO 'app_user'@'%';
FLUSH PRIVILEGES;

-- 撤銷權限
REVOKE DELETE ON school.* FROM 'app_user'@'%';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved