首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL SQL 基礎入門:語言分類 (DDL/DML/DCL/TCL)、核心語句語法、數據庫/表操作規範

     編輯:MySQL 綜合教學

SQL 概述

  • ANSI 標準語言,操作關係型數據庫 (MySQL、Oracle、SQL Server、PostgreSQL 等)
  • 各廠商有擴展,但核心關鍵字 (SELECT/INSERT/UPDATE/DELETE/WHERE) 統一
  • 關鍵字慣用大寫,語句以 ; 結尾

四大語言分類

類別全稱核心關鍵字作用
DDLData Definition LanguageCREATE, ALTER, DROP, TRUNCATE, RENAME定義數據庫對象結構 (庫、表、索引、視圖)
DMLData Manipulation LanguageSELECT, INSERT, UPDATE, DELETE操作數據內容 (增刪改查)
DCLData Control LanguageGRANT, REVOKE權限控制 (用戶、角色、權限)
TCLTransaction Control LanguageCOMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION事務控制 (原子性、一致性)

核心 DML 四大金剛

-- 1. 查詢
SELECT col1, col2 FROM table_name WHERE condition ORDER BY col1 LIMIT 10;

-- 2. 插入
INSERT INTO table_name (col1, col2) VALUES (val1, val2);
INSERT INTO table_name (col1, col2) VALUES (v1,v2), (v3,v4);  -- 批量

-- 3. 更新
UPDATE table_name SET col1=val1, col2=val2 WHERE condition;

-- 4. 刪除
DELETE FROM table_name WHERE condition;
TRUNCATE TABLE table_name;  -- 清空表,DDL 性質,不可回滾

常用 DDL 語句速查

對象創建修改刪除
數據庫CREATE DATABASE db_name CHARSET utf8mb4;ALTER DATABASE db_name CHARSET utf8mb4;DROP DATABASE db_name;
表CREATE TABLE t (id INT PRIMARY KEY, name VARCHAR(50));ALTER TABLE t ADD COLUMN age INT;DROP TABLE t;
索引CREATE INDEX idx_name ON t(name);ALTER TABLE t DROP INDEX idx_name;DROP INDEX idx_name ON t;
視圖CREATE VIEW v AS SELECT * FROM t WHERE status=1;ALTER VIEW v AS SELECT * FROM t WHERE status IN (1,2);DROP VIEW v;
存儲過程CREATE PROCEDURE p() BEGIN ... END;DROP PROCEDURE p; CREATE PROCEDURE p() ...DROP PROCEDURE p;
觸發器CREATE TRIGGER trg BEFORE INSERT ON t FOR EACH ROW BEGIN ... END;-DROP TRIGGER trg;

數據庫對象層級關係

實例 (Instance)
  └─ 數據庫 (Database / Schema)
       └─ 表
            ├─ 列
            ├─ 行 (記錄)
            ├─ 索引
            ├─ 約束 (PK, FK, UK, NOT NULL, DEFAULT, CHECK)
            ├─ 觸發器
            └─ 分區

新手規範與避坑

  1. 命名規範:小寫 + 下劃線 (user_info)、表名單數、列名語義化、布爾型 is_xxx/has_xxx
  2. 必加主鍵:InnoDB 聚簇索引依賴 PK,建議 BIGINT UNSIGNED AUTO_INCREMENT
  3. 字符集統一:庫/表/列/連接 全鏈路 utf8mb4
  4. 拒絕 SELECT *:顯式列出所需列,減少網絡/IO、利用覆蓋索引
  5. WHERE 必加索引列:避免全表掃描
  6. 事務最小化:只包含必要寫操作,避免長事務持有鎖
  7. 備份習慣:mysqldump --single-transaction --routines --triggers --events db > backup.sql
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved