18 điểm bởi GN⁺ 2024-02-07 | 1 bình luận | Chia sẻ qua WhatsApp

SQL for the Weary

  • Đối tượng mục tiêu: Rachel, có bằng thạc sĩ sinh học tế bào, đang làm công việc phân tích tế bào tại một bệnh viện nghiên cứu và muốn trở thành nhà khoa học dữ liệu.
  • Kiến thức nền tảng cần có: Các lệnh Unix cơ bản và khả năng phân tích dữ liệu dạng bảng.
  • Kết quả học tập: Giải thích sự khác biệt giữa cơ sở dữ liệu và quản trị viên cơ sở dữ liệu, viết SQL, định nghĩa bảng và thao tác dữ liệu, giải thích các loại join, sử dụng hàm window để làm việc với các hàng liền kề, hiểu về transaction và trigger, thao tác dữ liệu JSON bằng SQL, tương tác với cơ sở dữ liệu thông qua Python.

Thiết lập

  • Tải bản phát hành mới nhất: Giải nén các tệp bao gồm ví dụ cơ sở dữ liệu SQLite, truy vấn SQL, script Python, v.v. vào thư mục tạm.

Khái niệm nền tảng

  • Cơ sở dữ liệu: Tập hợp dữ liệu có thể tra cứu và truy xuất.
  • Hệ quản trị cơ sở dữ liệu (DBMS): Chương trình quản lý một loại cơ sở dữ liệu cụ thể.
  • SQLite: Lưu cơ sở dữ liệu trong một tệp duy nhất; PostgreSQL phân tán thông tin trên nhiều tệp để đạt hiệu năng cao hơn.
  • Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS): Lưu dữ liệu trong các bảng và truy vấn bằng SQL.
  • Cơ sở dữ liệu NoSQL: Cũng tồn tại các cơ sở dữ liệu như MongoDB không sử dụng bảng.

Kết nối cơ sở dữ liệu

  • Kết nối cơ sở dữ liệu: Không phải là truy vấn thực tế, nhưng là bước cần thiết trước khi thực hiện các thao tác khác.

Lệnh quản trị

  • Lệnh quản trị của SQLite: Không phải là một phần của SQL tiêu chuẩn; các lệnh đặc biệt của PostgreSQL bắt đầu bằng \.
  • Định dạng đầu ra: Sử dụng .headers on.mode markdown để hiển thị kết quả dễ đọc hơn.

Thao tác với bảng

  • Tạo bảng: Định nghĩa bảng và các cột bằng lệnh create table.
  • Chèn dữ liệu: Thêm dữ liệu vào bảng bằng lệnh insert into.
  • Cập nhật hàng: Thay đổi dữ liệu của các hàng thỏa mãn điều kiện cụ thể bằng lệnh update.
  • Xóa hàng: Xóa các hàng thỏa mãn điều kiện cụ thể bằng lệnh delete from.

Join

  • Join: Thao tác kết hợp thông tin từ hai bảng.
  • Inner join: Dùng inner join để chỉ kết hợp các hàng khớp nhau của hai bảng.
  • Left join: Dùng left join để giữ lại mọi hàng của bảng bên trái và điền các giá trị thiếu từ bảng bên phải bằng null.

Hàm tổng hợp

  • Tổng hợp: Thao tác gộp nhiều giá trị thành một.
  • Các hàm tổng hợp phổ biến: Dùng sum, max, min, avg v.v. để tổng hợp dữ liệu.
  • Nhóm dữ liệu: Dùng group by để nhóm các hàng theo tổ hợp giá trị duy nhất của những cột cụ thể và thực hiện tổng hợp cho từng nhóm.

Ý kiến của GN⁺

  • Bài viết này là tài liệu giúp hiểu những khái niệm cơ bản về cơ sở dữ liệu và SQL, hữu ích cho kỹ sư phần mềm mới bắt đầu hoặc những ai quan tâm đến khoa học dữ liệu.
  • Bài viết giải thích nhiều chức năng khác nhau của SQL kèm ví dụ thực tế, từ đó cung cấp kiến thức thực tiễn về quản lý và thao tác cơ sở dữ liệu.
  • Đặc biệt, các nội dung như join cơ sở dữ liệu, hàm tổng hợp và thao tác với bảng rất quan trọng trong các công việc liên quan đến phân tích dữ liệu, và bài viết này giúp hiểu rõ các khái niệm đó.

1 bình luận

 
GN⁺ 2024-02-07
Ý kiến trên Hacker News
  • Có thể dùng ChatGPT để viết các truy vấn phức tạp như một nhà khoa học dữ liệu. Nhờ đó có thể thu được các chỉ số hữu ích như tỷ lệ chuyển đổi, tỷ lệ nhấp vào tin nhắn, v.v.
  • Ý nghĩa của thuật ngữ nhà khoa học dữ liệu đã thay đổi kể từ thời nó được gọi là “nghề quyến rũ nhất”. Bài viết nhắc đến Rachel, người có bằng thạc sĩ sinh học, đang phân tích tế bào tại một bệnh viện nghiên cứu và muốn trở thành nhà khoa học dữ liệu. Trước đây, các nhà khoa học dữ liệu là những người có cả nền tảng định lượng lẫn kỹ thuật phần mềm, nhưng hiện nay đôi khi lại bị xem là “nhà phân tích dữ liệu bị thổi phồng quá mức”.
  • Có lẽ nên viết lại hướng dẫn này bằng DuckDB. Hiện tại DuckDB được các nhà khoa học dữ liệu sử dụng thường xuyên hơn SQLite.
  • Đây là một hướng dẫn SQL rất súc tích, dạy rất tốt thông qua ví dụ. Ở các trường đại học Mỹ, nội dung này được dạy trong cả một học kỳ, nhưng hướng dẫn này là đủ cho hầu hết các vị trí kỹ sư phần mềm trong ngành, ngoại trừ tối ưu hóa cơ sở dữ liệu.
  • Có thể luyện tập SQL thông qua ứng dụng Mac tên là TextQuery. Có thể nhanh chóng nhập các bộ dữ liệu CSV và chạy truy vấn SQL, và bản beta hiện đang được dùng miễn phí.
  • Thật tốt khi tải về một bài hướng dẫn dài trên một trang duy nhất để đọc trong lúc bay khi Wi-Fi không ổn định. Không rõ liệu có hướng dẫn tương tự cho các ngôn ngữ hay công nghệ khác ngoài SQL hay không.
  • Nhiều truy vấn chỉ hợp lệ với SQLite, và có chứa những tính năng không được một số DBMS hỗ trợ. Ví dụ, lọc trên hàm tổng hợp không được hỗ trợ trong MySQL, MS SQL, Oracle, v.v.
  • Có vẻ đây là một bản tóm tắt tốt về SQL nói chung hơn là một hướng dẫn dành riêng cho nhà khoa học dữ liệu.
  • Phần giải thích về left outer join chỉ áp dụng cho điều kiện đẳng thức, và có thể tạo ra nhận thức sai về left join. Kiểu giải thích này rất phổ biến nhưng dễ gây hiểu lầm.