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

W3C SQL 標準教程精華:從基礎查詢到進階連接與資料庫管理

     編輯:MySQL 綜合教學

SQL 核心概念

  • SQL:結構化查詢語言,ANSI 標準,用於存取與操作關聯式資料庫。
  • RDBMS:關聯式資料庫管理系統,如 MySQL、SQL Server、Oracle、PostgreSQL。
  • 資料儲存於表,由列與行組成。

SQL 功能分類

DML(資料操作語言)

  • SELECT:查詢
  • INSERT:新增
  • UPDATE:修改
  • DELETE:刪除

DDL(資料定義語言)

  • CREATE DATABASE/TABLE/INDEX
  • ALTER DATABASE/TABLE
  • DROP TABLE/INDEX

核心查詢語法

SELECT 基礎

SELECT col1, col2 FROM table_name;
SELECT * FROM table_name;

DISTINCT 去重

SELECT DISTINCT col FROM table;

WHERE 條件篩選

SELECT * FROM table WHERE col = 'value';
SELECT * FROM table WHERE col > 100;
SELECT * FROM table WHERE col BETWEEN 10 AND 20;
SELECT * FROM table WHERE col LIKE 'prefix%';

運算子:=, <>(!=), >, <, >=, <=, BETWEEN, LIKE, IN

AND / OR 邏輯組合

SELECT * FROM t WHERE a=1 AND b=2;
SELECT * FROM t WHERE a=1 OR b=2;
SELECT * FROM t WHERE (a=1 OR a=2) AND b=3;

ORDER BY 排序

SELECT * FROM t ORDER BY col ASC|DESC;
SELECT * FROM t ORDER BY col1 DESC, col2 ASC;

資料異動操作

INSERT 新增

INSERT INTO t VALUES (v1, v2);
INSERT INTO t (col1, col2) VALUES (v1, v2);

UPDATE 更新

UPDATE t SET col='new' WHERE id=1;
UPDATE t SET col1='a', col2='b' WHERE id=1;

DELETE 刪除

DELETE FROM t WHERE id=1;
DELETE FROM t; -- 刪除所有資料,保留結構

進階查詢

TOP / LIMIT 分頁

-- SQL Server
SELECT TOP 10 * FROM t;
SELECT TOP 50 PERCENT * FROM t;

-- MySQL / PostgreSQL
SELECT * FROM t LIMIT 10;

-- Oracle
SELECT * FROM t WHERE ROWNUM <= 10;

LIKE 模糊查詢與萬用字元

萬用字元說明
%替代零個或多個字元
_替代單一字元
[charlist]字元清單中任一字元
[^charlist] / [!charlist]非字元清單中任一字元

JOIN 多表連接

-- 內連接
SELECT * FROM t1 INNER JOIN t2 ON t1.id = t2.t1_id;

-- 左連接
SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.t1_id;

-- 右連接
SELECT * FROM t1 RIGHT JOIN t2 ON t1.id = t2.t1_id;

UNION 合併結果集

SELECT col FROM t1 UNION SELECT col FROM t2;     -- 去重
SELECT col FROM t1 UNION ALL SELECT col FROM t2; -- 保留重複

資料庫與資料表管理

CREATE DATABASE / TABLE

CREATE DATABASE db_name;
CREATE TABLE t (
    id INT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    age INT CHECK (age > 0),
    created_at DATE DEFAULT CURRENT_DATE
);

常用約束

  • NOT NULL:非空
  • UNIQUE:唯一
  • PRIMARY KEY:主鍵(唯一+非空)
  • FOREIGN KEY:外鍵
  • CHECK:條件檢查
  • DEFAULT:預設值
  • AUTO_INCREMENT:自增(MySQL)

SELECT INTO 備份/轉存

SELECT * INTO backup_t FROM t;
SELECT col1, col2 INTO backup_t FROM t WHERE city='Taipei';
SELECT t1.col, t2.col INTO backup_t FROM t1 JOIN t2 ON ...;

重要提醒

  • SQL 不分大小寫。
  • 部分資料庫要求語句以分號結尾。
  • 字串值需單引號,數值不需引號。
  • 不同資料庫對 BETWEEN 邊界包含性處理不同,需實測確認。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved