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

SQL 語言設計與編寫入門(上):DDL/DML/DQL/DCL 分類、建表建庫腳本、增刪改查、SELECT 基礎語法

     編輯:MySQL 綜合教學

SQL 四大語言分類

類別全稱核心語句用途
DDLData Definition LanguageCREATE, DROP, ALTER, TRUNCATE定義/管理數據庫對象(庫、表、視圖、索引)
DMLData Manipulation LanguageINSERT, UPDATE, DELETE操作表中數據記錄
DQLData Query LanguageSELECT查詢數據,佔日常 60%+
DCLData Control LanguageGRANT, REVOKE, COMMIT, ROLLBACK權限控制、事務控制

DDL 範例:標準建庫建表腳本(可存文件批量執行)

CREATE TABLE IF NOT EXISTS cats (
    id     INT NOT NULL AUTO_INCREMENT,
    pid    INT NOT NULL DEFAULT 0,
    name   VARCHAR(30) NOT NULL DEFAULT '',
    desn   TEXT NOT NULL DEFAULT '',
    PRIMARY KEY (id),
    INDEX idx_name_pid (name, pid)
);

CREATE TABLE IF NOT EXISTS products (
    id     INT NOT NULL AUTO_INCREMENT,
    cid    INT NOT NULL DEFAULT 0,
    name   VARCHAR(60) NOT NULL DEFAULT '',
    price  DECIMAL(7,2) NOT NULL DEFAULT 0.00,
    num    INT NOT NULL DEFAULT 0,
    desn   TEXT,
    ptime  INT NOT NULL DEFAULT 0,
    PRIMARY KEY (id),
    KEY idx_pname_price (name, price)
);

DML 核心模板

操作語法關鍵點
INSERTINSERT INTO tbl [(col1,col2...)] VALUES (v1,v2...), (...);顯式列出列名,值與列一一對應,順序可調整
UPDATEUPDATE tbl SET col1=expr1[,col2=expr2...] [WHERE cond];WHERE 是靈魂,缺省更新全表
DELETEDELETE FROM tbl [WHERE cond];無 WHERE 清空全表;TRUNCATE tbl 更快並重置自增

DQL:SELECT 基礎骨架

SELECT [ALL | DISTINCT]
    {* | table.* | [table.]col1 [AS alias1] [, [table.]col2 [AS alias2]] ...}
FROM table_name
[WHERE ...]
[GROUP BY ... [HAVING ...]]
[ORDER BY ... [ASC|DESC]]
[LIMIT count]

WHERE 條件常用運算符速查

分類操作符示例
邏輯AND/&&, OR/||, NOT/!WHERE id>10 AND status=1
比較=, <=>(NULL安全), !=/<>, <, <=, >, >=WHERE col <=> NULL
範圍BETWEEN ... AND ..., NOT BETWEENWHERE id BETWEEN 10 AND 20
集合IN (...), NOT IN (...)WHERE id IN (5,10,15)
模糊LIKE _ %, NOT LIKE, REGEXP/RLIKEWHERE name REGEXP '^java'

下一篇預告:「SELECT 進階:別名、DISTINCT 作用域、表達式列、多表連接、子查詢、排序分頁、分組聚合」

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved