sql

SQL là cách hỏi một câu hỏi về dữ liệu và để cơ sở dữ liệu tự tìm cách trả lời. Ba chặng, đi từ đọc ra một bảng tới giữ cho dữ liệu không sai.

9 cột mốc · 3 có bài trong app

Bắt đầu
  1. 1Đọc dữ liệu ra

  2. 2Nhiều bảng

    Nối dữ liệu nằm rải ở nhiều bảng lại thành một câu trả lời.

    • Khoá chính · khoá ngoạitự tìm hiểuCách hai bảng biết chúng đang nói về cùng một thứ. Không có nó thì không có JOIN.
    • JOINtự tìm hiểuINNER giữ phần chung, LEFT giữ hết bên trái. Chọn sai loại là mất hàng mà không hay biết.
    • GROUP BY · HAVINGtự tìm hiểuGộp nhiều hàng thành một con số. HAVING lọc SAU khi gộp, WHERE lọc trước.
  3. 3Ghi vào và giữ cho đúng

    Thay đổi dữ liệu mà không để lại trạng thái nửa vời.

    • INSERT · UPDATE · DELETEtự tìm hiểuUPDATE hay DELETE mà quên WHERE là sửa cả bảng. Chạy thử bằng SELECT trước.
    • Transactiontự tìm hiểuNhiều lệnh coi như một: hoặc xong hết, hoặc như chưa từng chạy.
    • Indextự tìm hiểuVì sao cùng một câu query mà bảng 10 hàng chạy tức thì còn bảng 10 triệu hàng thì đứng hình.
Đích

Lộ trình dừng ở đây

Ba chặng trên phủ gần hết những câu SQL bạn viết hằng ngày. Phần dưới là hướng đi tiếp.

  • EXPLAINHỏi ngược lại cơ sở dữ liệu: mày định chạy câu này thế nào.
  • Chuẩn hoá dữ liệuChia bảng thế nào để không lưu cùng một sự thật ở hai chỗ.
  • Vấn đề N+1Một query thành một nghìn query mà code nhìn vẫn sạch sẽ.
  • MigrationĐổi cấu trúc bảng trên hệ thống đang chạy mà không mất dữ liệu.