Hình ảnh của Freepik
SQL, hay Ngôn ngữ truy vấn tiêu chuẩn, là ngôn ngữ lập trình để quản lý và thao tác dữ liệu trong hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS). Đó là ngôn ngữ tiêu chuẩn được sử dụng ở nhiều công ty để giúp doanh nghiệp truy cập dữ liệu một cách suôn sẻ. Bởi vì nó được sử dụng rộng rãi nên việc làm thường coi SQL là một trong những kỹ năng cần thiết. Đó là lý do tại sao việc tìm hiểu về SQL là điều cần thiết.
Một trong những vấn đề phổ biến đối với mọi người khi học SQL là hiểu các truy vấn, chủ yếu là khi người khác viết chúng. Chúng tôi làm việc theo nhóm trong các công ty và thường cần đọc và hiểu các truy vấn SQL của họ. Vì vậy, chúng ta cần thực hành giải cấu trúc các truy vấn SQL và hiểu chúng.
Bài viết này sẽ hướng dẫn quy trình từng bước để đọc và hiểu các truy vấn SQL. làm sao chúng ta làm việc đó bây giờ? Chúng ta hãy đi vào nó.
Điều đầu tiên chúng ta cần làm khi gặp một truy vấn SQL là hiểu mục đích chung của các truy vấn SQL. Mục đích chung không có nghĩa là chúng tôi biết hoàn toàn về cấu trúc của truy vấn; nó thiên về dòng chảy tổng thể hơn.
Chúng ta nên hiểu các truy vấn SQL tiêu chuẩn để hiểu được truy vấn SQL chung. Hầu hết các truy vấn SQL đều bắt đầu bằng CHỌN mệnh đề và làm theo với TỪ khoản. Tiếp tục từ đó, các truy vấn thường được theo sau bởi THAM GIA, Ở ĐÂU, NHÓM THEO, ĐẶT BỞI, và ĐANG CÓ điều khoản.
Các mệnh đề trên là tiêu chuẩn trong các truy vấn SQL mà chúng ta cần hiểu. Đối với mỗi mệnh đề, chức năng của chúng là:
- CHỌN: Những cột nào sẽ được lấy từ bảng
- TỪ: Dữ liệu đến từ bảng nào
- THAM GIA: Kết hợp các bảng với mã định danh được chỉ định
- Ở ĐÂU: Lọc dữ liệu dựa trên điều kiện
- NHÓM THEO: Sắp xếp dữ liệu dựa trên giá trị của cột và cho phép thực hiện chức năng tổng hợp.
- ĐẶT BỞI: Sắp xếp thứ tự kết quả dữ liệu theo cột cụ thể
- ĐANG CÓ: Điều kiện lọc cho hàm tổng hợp không thể được chỉ định bằng Ở ĐÂU
Đây là các mệnh đề tiêu chuẩn và những gì bạn nên tìm thấy ngay từ đầu khi tìm hiểu cấu trúc truy vấn SQL chung. Hãy sử dụng mã ví dụ để tìm hiểu thêm.
SELECT
customers.name,
purchases.product,
SUM(price) as total_price
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
WHERE
purchases.category = 'kitchen'
GROUP BY
customers.name,
purchases.product
HAVING
total_price > 10000
ORDER BY
total_price DESC;
Khi bạn nhìn vào truy vấn trên, hãy cố gắng xác định các mệnh đề tiêu chuẩn. Mệnh đề này sẽ cung cấp cho bạn sự hiểu biết về dữ liệu nào được chọn (CHỌN), nó đến từ đâu (TỪ và THAM GIA) và điều kiện (Ở ĐÂU, NHÓM THEO, ĐẶT BỞIvà ĐANG CÓ).
Ví dụ: đọc truy vấn ở trên sẽ giúp bạn hiểu những điều sau:
- chúng tôi cố gắng lấy ba loại dữ liệu khác nhau: Tên từ bảng có tên là khách hàng, Sản phẩm từ bảng có tên là mua hàng và tổng hợp các cột giá không xác định bảng đó đến từ đâu và với bí danh Total_price (Thông tin từ mệnh đề CHỌN).
- Dữ liệu tổng thể sẽ đến từ các bảng mua hàng và khách hàng kết hợp với nhau bằng cách sử dụng cột cust_id từ các giao dịch mua hàng và cột id từ bảng của khách hàng (Thông tin từ mệnh đề TỪ) và THAM GIA).
- Chúng tôi sẽ chỉ chọn dữ liệu có giá trị cột danh mục trong bảng mua hàng là 'nhà bếp' (Thông tin từ mệnh đề Ở ĐÂU),
- nhóm cho hàm tổng hợp có cột tên và sản phẩm xuất phát từ bảng tương ứng (Thông tin từ mệnh đề NHÓM THEO),
- cũng được lọc từ tổng kết quả của hàm tổng hợp trong đó tổng_price lớn hơn 10000 (thông tin từ mệnh đề ĐANG CÓ), Và
- sắp xếp dữ liệu giảm dần theo tổng_price (thông tin từ mệnh đề ĐẶT BỞI).
Đó là cấu trúc truy vấn SQL chung mà bạn cần biết và xác định. Từ đó, chúng ta có thể khám phá thêm từ truy vấn nâng cao. Hãy tiếp tục với bước tiếp theo.
Sẽ có lúc bạn gặp phải một truy vấn phức tạp có quá nhiều CHỌN mệnh đề tồn tại trong cùng một truy vấn. Trong trường hợp này, chúng ta nên hiểu kết quả cuối cùng của truy vấn hoặc kết quả cuối cùng (đầu tiên) CHỌN bạn thấy trong truy vấn. Điều quan trọng là phải biết kết quả truy vấn muốn là gì.
Hãy sử dụng một mã phức tạp hơn như mã bên dưới.
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
SELECT
c.name,
pd.product,
pd.total_product_price,
cs.total_spending
FROM
(
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
) AS pd
JOIN customers c ON pd.cust_id = c.id
JOIN customerspending cs ON c.id = cs.id
ORDER BY
pd.total_product_price DESC;
Truy vấn bây giờ có vẻ phức tạp hơn và dài hơn, nhưng trọng tâm ban đầu phải là câu hỏi cuối cùng LỰA CHỌN, dường như đang cố gắng tạo ra tổng chi tiêu và lịch sử mua hàng của khách hàng. Cố gắng đánh giá xem kết quả cuối cùng mong muốn là gì và chia nhỏ nó ra từ đó.
Chúng tôi có cái nhìn sâu sắc về kết quả cần có từ các truy vấn. Phần tiếp theo là xem điều kiện cuối cùng là gì CHỌN là. Điều khoản điều kiện, bao gồm Ở ĐÂU, NHÓM THEO, ĐẶT BỞIvà ĐANG CÓ là những người kiểm soát kết quả dữ liệu tổng thể.
Hãy cố gắng đọc và hiểu các điều kiện của truy vấn và chúng tôi sẽ hiểu rõ hơn về kết quả cuối cùng của truy vấn. Ví dụ: trong truy vấn SQL trước của chúng ta, điều kiện cuối cùng chỉ là ĐẶT BỞI. Điều này có nghĩa là kết quả cuối cùng sẽ được sắp xếp theo tổng giá sản phẩm theo thứ tự giảm dần.
Biết các điều kiện cuối cùng sẽ giúp bạn hiểu được một phần quan trọng của truy vấn và mục đích truy vấn tổng thể.
Cuối cùng, chúng ta cần hiểu dữ liệu đến từ đâu. Sau khi biết về dữ liệu cần chọn và các điều kiện để có được chúng, chúng ta cần hiểu nguồn. Trận chung kết THAM GIA mệnh đề sẽ cho chúng ta hiểu cách các bảng tương tác và luồng dữ liệu.
Ví dụ: truy vấn phức tạp trước đó cho thấy rằng chúng tôi đã thực hiện Tham gia hai lần. Điều đó có nghĩa là chúng tôi đã sử dụng ít nhất ba nguồn dữ liệu để có kết quả cuối cùng. Thông tin này sẽ cần thiết trong các bước sau để hiểu thêm về cách mỗi nguồn dữ liệu đến, đặc biệt khi nguồn dữ liệu đến từ truy vấn phụ.
Sau khi hiểu kết quả cuối cùng sẽ như thế nào và nó đến từ đâu, chúng ta cần xem xét kỹ hơn các chi tiết. Từ đây, chúng ta sẽ quay lại từng truy vấn phụ và hiểu lý do tại sao chúng có cấu trúc như vậy.
Tuy nhiên, chúng tôi không cố gắng xem xét chúng theo cấu trúc từ trên xuống. Thay vào đó, chúng ta nên cố gắng xem xét các truy vấn phụ gần với kết quả cuối cùng hơn và chúng ta tiến tới truy vấn phụ xa nhất với kết quả cuối cùng. Từ ví dụ về mã ở trên, trước tiên chúng ta nên cố gắng hiểu mã này:
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
Sau đó, chúng ta sẽ chuyển sang mã xa nhất là mã này:
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
Chúng tôi có thể theo dõi quá trình suy nghĩ của tác giả một cách rõ ràng khi chia nhỏ từng truy vấn phụ từ truy vấn gần kết quả nhất đến truy vấn xa nhất.
Hãy thử lặp lại quy trình trên nếu bạn cần trợ giúp để hiểu từng truy vấn phụ. Với một số thực hành, bạn sẽ có trải nghiệm tốt hơn trong việc đọc và hiểu truy vấn.
Đọc và hiểu các truy vấn SQL là một kỹ năng mà mọi người nên có trong thời đại hiện đại, vì mọi công ty đều xử lý chúng. Bằng cách sử dụng hướng dẫn từng bước sau đây, bạn sẽ có thời gian hiểu rõ hơn về các truy vấn SQL phức tạp. Các bước bao gồm:
- Hiểu cấu trúc truy vấn SQL chung
- Hiểu sự lựa chọn cuối cùng
- Hiểu điều khoản điều kiện cuối cùng
- Hiểu sự tham gia cuối cùng
- Đọc ngược thứ tự và lặp lại
Cornellius Yudha Wijaya là trợ lý quản lý khoa học dữ liệu và người viết dữ liệu. Trong khi làm việc toàn thời gian tại Allianz Indonesia, anh ấy thích chia sẻ các mẹo về Python và Dữ liệu qua mạng xã hội và phương tiện viết lách.
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- PlatoData.Network Vertical Generative Ai. Trao quyền cho chính mình. Truy cập Tại đây.
- PlatoAiStream. Thông minh Web3. Kiến thức khuếch đại. Truy cập Tại đây.
- Trung tâmESG. Than đá, công nghệ sạch, Năng lượng, Môi trường Hệ mặt trời, Quản lý chất thải. Truy cập Tại đây.
- PlatoSức khỏe. Tình báo thử nghiệm lâm sàng và công nghệ sinh học. Truy cập Tại đây.
- nguồn: https://www.kdnuggets.com/a-step-by-step-guide-to-reading-and-understanding-sql-queries?utm_source=rss&utm_medium=rss&utm_campaign=a-step-by-step-guide-to-reading-and-understanding-sql-queries
- :là
- :không phải
- :Ở đâu
- $ LÊN
- 12
- 17
- 9
- a
- Giới thiệu
- ở trên
- truy cập
- Theo
- tiên tiến
- Sau
- tập hợp
- Allianz
- cho phép
- an
- và
- Một
- LÀ
- bài viết
- AS
- đánh giá
- Trợ lý
- At
- tác giả
- dựa
- BE
- bởi vì
- Bắt đầu
- phía dưới
- Hơn
- Nghỉ giải lao
- các doanh nghiệp
- nhưng
- by
- gọi là
- đến
- CAN
- không thể
- trường hợp
- Phân loại
- Rõ ràng
- gần gũi hơn
- mã
- Cột
- Cột
- kết hợp
- Đến
- đến
- đến
- Chung
- Các công ty
- công ty
- phức tạp
- điều kiện
- điều kiện
- tiếp tục
- kiểm soát
- cs
- khách hàng
- khách hàng
- dữ liệu
- khoa học dữ liệu
- Cơ sở dữ liệu
- Ưu đãi
- chi tiết
- khác nhau
- do
- Không
- dont
- xuống
- mỗi
- việc làm
- gặp gỡ
- chạm trán
- hoàn toàn
- Kỷ nguyên
- đặc biệt
- thiết yếu
- Mỗi
- mọi người
- ví dụ
- tồn tại
- kinh nghiệm
- khám phá
- lọc
- cuối cùng
- Tìm kiếm
- Tên
- dòng chảy
- Chảy
- Tập trung
- theo
- sau
- tiếp theo
- Trong
- từ
- chức năng
- chức năng
- xa hơn
- Tổng Quát
- được
- Cho
- Nhóm
- hướng dẫn
- Có
- có
- he
- giúp đỡ
- tại đây
- lịch sử
- Độ đáng tin của
- HTTPS
- ID
- định danh
- xác định
- if
- in
- bao gồm
- Bao gồm
- Indonesia
- thông tin
- ban đầu
- cái nhìn sâu sắc
- thay vì
- Ý định
- tương tác
- trong
- IT
- tham gia
- jpg
- Xe đẩy
- Key
- các loại
- Biết
- Ngôn ngữ
- một lát sau
- LEARN
- học tập
- ít nhất
- Lượt thích
- còn
- Xem
- yêu
- phần lớn
- quản lý
- hệ thống quản lý
- giám đốc
- quản lý
- thao túng
- nhiều
- nghĩa là
- có nghĩa
- Phương tiện truyền thông
- hiện đại
- chi tiết
- hầu hết
- di chuyển
- di chuyển
- tên
- cần thiết
- Cần
- tiếp theo
- tại
- of
- thường
- on
- ONE
- những
- có thể
- or
- gọi món
- vfoXNUMXfipXNUMXhfpiXNUMXufhpiXNUMXuf
- đầu ra
- tổng thể
- một phần
- người
- thực hiện
- người
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- thực hành
- trước
- giá
- vấn đề
- quá trình
- sản xuất
- Sản phẩm
- Lập trình
- cho
- mua
- mua hàng
- Python
- truy vấn
- truy vấn
- Đọc
- Reading
- lặp lại
- mà
- kết quả
- đảo ngược
- s
- tương tự
- Khoa học
- xem
- dường như
- chọn
- chọn
- Chia sẻ
- nên
- Chương trình
- có ý nghĩa
- kỹ năng
- kỹ năng
- thông suốt
- So
- Mạng xã hội
- truyền thông xã hội
- một số
- nguồn
- nguồn
- riêng
- quy định
- Chi
- SQL
- Tiêu chuẩn
- Bắt đầu
- Bước
- Các bước
- cấu trúc
- cấu trúc
- cấu trúc
- tổng hợp
- hệ thống
- bàn
- Lấy
- nhóm
- hơn
- việc này
- Sản phẩm
- Nguồn
- cung cấp their dịch
- Them
- Đó
- họ
- điều
- điều này
- nghĩ
- số ba
- Thông qua
- thời gian
- lời khuyên
- đến
- bên nhau
- Tổng số:
- theo dõi
- thử
- Hai lần
- hiểu
- sự hiểu biết
- us
- sử dụng
- đã sử dụng
- sử dụng
- thường
- giá trị
- thông qua
- đi bộ
- muốn
- we
- TỐT
- Điều gì
- khi nào
- cái nào
- trong khi
- tại sao
- rộng rãi
- sẽ
- với
- ở trong
- Công việc
- đang làm việc
- sẽ
- sẽ cho
- nhà văn
- viết
- bạn
- zephyrnet