7 khái niệm SQL cơ bản cần biết cho khoa học dữ liệu – Đưa ra quyết định dựa trên dữ liệu
Khi thế giới đang tiến tới số hóa, hầu hết các công ty hiện đang chú trọng đến việc sử dụng dữ liệu hiệu quả. Lượng dữ liệu khổng lồ mà họ thu thập được lưu trữ trong cơ sở dữ liệu. Việc quản lý, phân tích và xử lý dữ liệu này được thực hiện thông qua DBMS (Hệ thống quản lý cơ sở dữ liệu). Do có sự chuyển đổi này, khoa học dữ liệu đã trở thành một trong những lĩnh vực mới nổi với vô số cơ hội việc làm.
Một nhà khoa học dữ liệu cần trích xuất dữ liệu từ cơ sở dữ liệu và đây chính là lúc SQL phát huy tác dụng. Bạn hẳn đã nghe nói về các kỹ năng khoa học dữ liệu cần thiết hàng đầu để trở nên thành thạo lĩnh vực này và SQL là một trong số đó. Bây giờ, câu hỏi là: Tôi có thực sự cần phải thành thạo SQL để trở thành một nhà khoa học dữ liệu giỏi không?
Câu trả lời là KHÔNG, nhưng cần phải có kiến thức cơ bản về SQL vì nó đã trở thành tiêu chuẩn cho nhiều hệ thống cơ sở dữ liệu. Bài viết này nhằm đề cập đến tất cả các yếu tố chính của SQL mà bạn phải biết và được các nhà khoa học dữ liệu khuyến nghị.
Cần SQL trong Khoa học dữ liệu
SQL là viết tắt của Structured Query Language – Ngôn ngữ truy vấn có cấu trúc và nhằm mục đích quản lý cơ sở dữ liệu quan hệ. Trước tiên chúng ta hãy hiểu sự cần thiết của SQL trong khoa học dữ liệu. Điều gì rất quan trọng và là một trong những kỹ năng được tìm kiếm nhiều nhất trong khoa học dữ liệu? Dưới đây là một số điểm giúp bạn hiểu được tầm quan trọng của nó:
- Sử dụng rộng rãi: Mặc dù đã gần 40 năm tuổi nhưng nó được sử dụng để truy vấn trong phần lớn các hệ thống cơ sở dữ liệu quan hệ và đã trở thành công cụ tiêu chuẩn để thử nghiệm dữ liệu.
- Đơn giản hóa việc hiểu dữ liệu: SQL rất thuận tiện trong việc điều hướng qua nội dung cơ sở dữ liệu. Nó làm cho bạn hiểu những đặc trưng dữ liệu một cách hiệu quả.
- Dễ học: Đây là điểm khởi đầu hoàn hảo cho người mới với cú pháp đơn giản giống như tiếng Anh và bạn có thể trích xuất những hiểu biết có giá trị chỉ bằng một vài dòng mã.
- Cho phép xử lý khối dữ liệu lớn: SQL cho phép bạn quản lý một lượng dữ liệu khổng lồ theo cách có tổ chức, khiến nó trở thành lựa chọn lý tưởng cho các ứng dụng khoa học dữ liệu.
- Khả năng tương thích với các ngôn ngữ lập trình & ứng dụng khác : Tích hợp SQL với các ngôn ngữ như Python, C++, R, v.v. rất thuận tiện. Nó cũng hỗ trợ các công cụ trực quan hóa dữ liệu và thông minh kinh doanh như Power BI và Tableau giúp quá trình phát triển dễ dàng hơn một chút.
Dưới đây là 07 khái niệm SQL cơ bản
1) Hiểu biết về các lệnh cơ bản
Kiến thức về các lệnh cơ bản tạo nền tảng cho việc học suốt đời. Nếu không, bạn sẽ chỉ ghi nhớ các sự kiện mà không hiểu chúng ăn khớp với nhau như thế nào. Một số lệnh SQL thông dụng nhất như sau:
- SELECT & FROM: Lấy các thuộc tính của dữ liệu từ bảng đã đề cập.
- SELECT DISTINCT : Loại bỏ các hàng trùng lặp và chỉ hiển thị các bản ghi duy nhất.
- WHERE : Lọc bản ghi và chỉ hiển thị những bản ghi thỏa mãn điều kiện đã cho.
- AND, OR, NOT : Truy vấn theo điều kiện. Trong khi, AND và OR được sử dụng kết hợp nhiều điều kiện.
- ORDER BY : Sắp xếp dữ liệu theo thứ tự tăng dần hoặc giảm dần
- GROUP BY: Gom nhóm dữ liệu giống nhau.
- HAVING: Lọc thêm dữ liệu tổng hợp theo Group By.
- Các hàm tổng hợp: Các hàm tổng hợp như COUNT(), MAX(), MIN(), AVG() và SUM() được sử dụng để thực hiện các thao tác trên dữ liệu đã cho.
Hãy lấy một ví dụ để áp dụng chúng cho bảng Nhân viên:
No | Name | Department | Salary ($) | Gender |
1 | Julia | Admin | 20000 | F |
2 | Jasmine | Admin | 15000 | F |
3 | John | IT | 20000 | M |
4 | Mark | Admin | 17000 | M |
Bây giờ, chúng ta muốn lấy Mức lương trung bình của nữ làm việc trong Bộ phận Hành chính.
SELECT Department, AVG(Salary)
FROM Employees
WHERE Gender=“F”
GROUP BY Department
HAVING Department = “Admin”;
Kết quả:
Admin | 17500.0
2) Case When
Nó là một câu lệnh thực sự mạnh mẽ và linh hoạt trong SQL được sử dụng để viết các câu lệnh điều kiện phức tạp. Nó cung cấp chức năng của câu lệnh IF.THEN.ELSE. Hãy xem cú pháp của nó:
CASE expression
WHEN value_1 THEN result_1
WHEN value_2 THEN result_2
…
WHEN value_n THEN result_n
ELSE result
END
Nó thực hiện các câu lệnh theo thứ tự và trả về giá trị ngay khi điều kiện True. Nếu không có điều kiện nào được thỏa mãn thì khối ELSE được thực thi và nếu không có, thì NULL được trả về.
Giả sử, chúng ta có Cơ sở dữ liệu sinh viên và chúng ta muốn xếp hạng dựa trên điểm của họ thì có thể sử dụng câu lệnh SQL sau:
SELECT student_name,
marks,
CASE
WHEN marks >= 85 THEN ‘A’
WHEN marks >= 75
AND marks < 85 THEN ‘B+’
WHEN marks >= 65
AND marks < 75 THEN ‘B’
WHEN marks >= 55
AND marks < 65 THEN ‘C’
WHEN marks >= 45
AND marks < 55 THEN ‘D’
ELSE ‘F’
END AS grading
FROM Students;
3) Subqueries – Truy vấn phụ
Là một nhà khoa học dữ liệu, kiến thức về Subqueries là cần thiết vì chúng cần hoạt động với các bảng khác nhau và kết quả của một truy vấn có thể được sử dụng lại để hạn chế việc tăng dữ liệu trong truy vấn chính. Nó còn được gọi là truy vấn lồng nhau hoặc truy vấn bên trong. Truy vấn con phải được đặt trong dấu ngoặc đơn và nó được thực thi trước truy vấn chính. Nếu nó trả về nhiều hơn một hàng, thì nó được gọi là truy vấn con nhiều dòng và các toán tử nhiều dòng phải được sử dụng với nó.
Giả sử rằng công ty bảo hiểm giới thiệu một chính sách mới và hủy bỏ bảo hiểm của những người đã trên 80 tuổi. Điều này có thể được thực hiện với sự trợ giúp của truy vấn con như sau:
DELETE
FROM INSURANCE_CUSTOMERS
WHERE AGE IN
(SELECT AGE
FROM INSURANCE_CUSTOMERS
WHERE AGE > 80 );
Truy vấn con bên trong chọn tất cả các khách hàng trên 80 tuổi và sau đó thao tác Xóa được thực hiện trên nhóm này.
4) Joins
SQL Join được sử dụng để kết hợp các hàng dữ liệu từ nhiều bảng dựa trên mối quan hệ logic giữa chúng. 4 loại phép nối SQL được liệt kê dưới đây:
- Inner Join bên trong: tham gia bên trong chỉ hiển thị những hàng từ cả hai bảng đáp ứng điều kiện nhất định. Nó có thể được gọi là một giao lộ theo thuật ngữ tập hợp.
SELECT Student.Name
FROM Student
INNER JOIN Sports ON Student.ID = Sports.ID;
Nó trả về những sinh viên đã đăng ký tham gia thể thao. Lưu ý: ID thể thao giống với ID đăng ký của Học sinh.
- Left Join: Trả về tất cả các bản ghi từ bảng TRÁI trong khi chỉ các bản ghi phù hợp từ bảng bên phải được hiển thị.
SELECT Student.Name
FROM Student
LEFT JOIN Sports ON Student.ID = Sports.ID;
- Right Join: Ngược lại với Left Join.
SELECT Student.Name
FROM Student
RIGHT JOIN Sports ON Student.ID = Sports.ID;
- Full Join: Trả về tất cả các hàng từ cả hai bảng và nếu nó không có mục khớp tương ứng thì giá trị NULL sẽ được hiển thị.
SELECT Student.Name
FROM Student
FULL JOIN Sports ON Student.ID = Sports.ID;
5) Stored Procedures
Các hàm thủ tục được lưu trữ cho phép chúng tôi lưu trữ nhiều câu lệnh SQL trong cơ sở dữ liệu của mình để sử dụng chúng sau này. Nó cho phép sử dụng lại và cũng có thể nhận các giá trị tham số khi được gọi. Nó nâng cao hiệu suất và dễ dàng thực hiện bất kỳ sửa đổi nào với nó.
CREATE PROCEDURE SelectStudents @Major nvarchar(30), @Grade char(1) AS
SELECT *
FROM Students
WHERE Major = @Major
AND Grade = @Grade GO;
EXEC SelectStudents @Major = ‘Data Science’,
@Grade = ‘A’;
Stored Procedures này cho phép chúng ta trích xuất các sinh viên thuộc các chuyên ngành khác nhau dựa trên điểm số của họ. Ví dụ: chúng ta đang cố gắng trích xuất tất cả các sinh viên theo chuyên ngành Data Science có điểm A. Lưu ý rằng CREATE PROCEDURE giống như khai báo hàm và nó cần được gọi bằng EXEC để thực thi.
6) String Formatting
Chúng ta đều biết rằng dữ liệu thô cần được làm sạch để tăng năng suất tổng thể dẫn giúp cho việc đưa ra quyết định có chất lượng hơn. Định dạng chuỗi đóng một vai trò rất lớn trong bối cảnh này và nó liên quan đến việc thao tác trên các chuỗi để loại bỏ những thứ không liên quan. SQL cung cấp nhiều String Formatting để chuyển đổi và làm việc với chuỗi. 5 hàm được sử dụng phổ biến nhất trong số đó là:
- CONCAT: dùng để gộp hai hoặc nhiều chuỗi lại với nhau.
SELECT CONCAT(Name, ‘ has a major of ‘, Major)
FROM Students
WHERE student_Id = 37;
- SUBSTR: Trả về phần chuỗi lệnh truy vấn theo vị trí bắt đầu và độ dài của chuỗi từ các tham số được gán.
SELECT student_name,admission_date,
SUBSTR(admission_date, 4, 2) AS day
FROM Students
Cột ngày sẽ xuất hiện riêng biệt được trích xuất từ ngày nhập học.
- TRIM: Xóa các ký tự ở đầu chuỗi, cuối chuỗi hoặc cả hai. Bạn phải chỉ định đầu, cuối hoặc cả hai, sau đó là ký tự cần xóa và theo sau là chuỗi cần xóa.
SELECT age,
TRIM(trailing ‘ years’ FROM age)
FROM Students
Nó sẽ thay đổi “26 year” thành “26”.
- INSERT: nó cho phép chúng ta chèn chuỗi vào trong chuỗi đã cho tại vị trí đã chỉ định. Bạn phải đề cập đến vị trí và độ dài của chuỗi con mới mà bạn muốn viết. Lưu ý rằng chuỗi mới này sẽ ghi đè lên văn bản trước đó.
SELECT INSERT(“OldWebsite.com”, 1, 9, “4TechNews”);
Nó sẽ được cập nhật lên 4TechNews.com.
- COALESCE: nó có thể được sử dụng để thay thế các giá trị null bằng các giá trị do người dùng gán thường được sử dụng trong khoa học dữ liệu.
SELECT COALESCE (NULL, NULL, 10, ‘John’’)
Các giá trị này sẽ trả về 10.
7) Window Functions
Window Functions tương tự như các Aggregate Functions nhưng nó không gom dữ liệu thành một hàng sau khi tính toán. Thay vào đó, các hàng giữ lại danh tính riêng biệt của họ. Chúng được nhóm thành ba loại chính:
- Aggregate functions: nó hiển thị các giá trị tổng hợp từ các cột số như AVG(), COUNT(), MAX(), MIN(), SUM(), v.v.
SELECT name,
AVG(salary) over (PARTITION BY department)
FROM Employees;
Nó hiển thị mức lương trung bình của các bộ phận khác nhau từ Bảng nhân viên.
- Value functions: mỗi phân vùng được gán một số giá trị bằng cách sử dụng các hàm cửa sổ giá trị. Một số hàm giá trị được sử dụng phổ biến nhất là LAG(), LEAD(), FIRST_VALUE(), LAST_VALUR() và NTH_VALUE().
SELECT
bank_branch, month, income,
LAG(income,1) OVER (
PARTITION BY bank_branch
ORDER BY month
) income_next_month
FROM Bank;
Chúng ta so sánh thu nhập của các chi nhánh ngân hàng khác nhau trong tháng hiện tại với tháng trước.
- Ranking Functions: chúng rất hữu ích để chỉ định xếp hạng cho các hàng dựa trên một số thứ tự được xác định trước.ROW_NUMBER(), RANK(), DENSE_RANK(),PERCENT_RANK(),NTILE().
SELECT
product_name, price,
RANK () OVER (
ORDER BY list DESC
) price_hightolow
FROM Products;
Các sản phẩm được xếp hạng dựa trên giá của chúng bằng cách sử dụng RANK().
Hy vọng bạn thích đọc bài viết này và nó giúp bạn hiểu toàn diện về lượng SQL bạn cần biết với tư cách là một nhà khoa học dữ liệu.
(Nguồn: Tổng hợp)