Computer >> Máy Tính >  >> Lập trình >> SQL

Truy vấn con SQL:Hướng dẫn đầy đủ

Truy vấn con SQL là một truy vấn bên trong một truy vấn khác. Nó được sử dụng trong mệnh đề WHERE hoặc HAVING của một câu lệnh SQL. Truy vấn con cho phép bạn chỉ định kết quả của một truy vấn làm đối số trong một truy vấn khác.

Khi bạn đang viết một SQL truy vấn, bạn có thể muốn chỉ định một tham số dựa trên kết quả của một truy vấn khác. Ví dụ:giả sử bạn có một danh sách khách hàng. Bạn có thể muốn có được danh sách những khách hàng đã đặt hàng có giá trị cao hơn một số lượng nhất định. Thông tin đặt hàng và khách hàng được lưu trữ trong một bảng khác.

Đó là nơi mà Truy vấn con SQL hoạt động có trong. Truy vấn con , còn được gọi là truy vấn lồng nhau, là SELECT truy vấn trong WHERE mệnh đề của một SQL khác truy vấn. SQL chính sau đó truy vấn sử dụng kết quả của truy vấn con.

Trong hướng dẫn này, chúng ta sẽ thảo luận về cách sử dụng truy vấn con trong SQL, có tham khảo một số ví dụ.

Truy vấn con SQL:Hướng dẫn

Truy vấn con SQL là một truy vấn trong một truy vấn khác. Chúng được sử dụng để chạy một truy vấn phụ thuộc vào kết quả của một truy vấn khác. Truy vấn con cho phép bạn thực hiện việc này mà không cần phải viết hai truy vấn riêng biệt và sao chép-dán kết quả. Truy vấn con xuất hiện trong mệnh đề WHERE hoặc HAVING.

Đây là cú pháp cho một truy vấn con trong câu lệnh SQL SELECT:

 CHỌN nameFROM sản phẩmWHERE provider_idIN (CHỌN id TỪ nhà cung cấp WHERE local =True); 

Truy vấn này chọn tên của tất cả các sản phẩm do một công ty địa phương cung cấp. Chúng tôi sử dụng một truy vấn con làm đầu vào cho câu lệnh SQL IN. Câu lệnh SQL IN trả về tất cả các bản ghi từ bảng "sản phẩm" trong đó cung cấp_id nằm trong kết quả truy vấn con của chúng tôi.

Chúng ta có thể sử dụng các truy vấn con trong các câu lệnh INSERT, UPDATE và DELETE.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

Một truy vấn con phải xuất hiện trong dấu ngoặc đơn. Điều này phân biệt bên trong của một truy vấn con với một truy vấn con khác.

Bạn nên đảm bảo rằng bạn chọn dữ liệu có liên quan trong truy vấn con của mình. Trong truy vấn con của chúng tôi ở trên, chúng tôi đã chọn id từ nhà cung cấp chiếc bàn. Nếu chúng tôi đã chọn một cột khác, truy vấn của chúng tôi sẽ không hoạt động. Điều này là do truy vấn chính của chúng tôi phụ thuộc vào ID nhà cung cấp.

Ví dụ về truy vấn con SQL:SELECT

Giả sử bạn muốn nhận danh sách các sinh viên được vinh danh, bạn có thể sử dụng truy vấn con . Điều này giả sử thông tin danh dự nằm trong một bảng khác.

Hãy sử dụng một ví dụ để minh họa cách Truy vấn con SQL công việc. Truy vấn sau sẽ trả về danh sách tất cả khách hàng đã đặt hàng trị giá trên 200 đô la:

 SELECT * FROM customerWHERE id IN (SELECT DISTINCT customer_id FROM đơn đặt hàng WHERE chi phí> 200); 

Truy vấn phụ của chúng tôi trả về như sau:

name email địa chỉ yal_plan id
Katy katy.l@gmail.com Mountain View, CA Không có 4
John john.p@outlook.com Boston, MA Không có 1

(2 hàng)

Trên dòng đầu tiên, chúng tôi chọn mọi cột từ khách hàng của chúng tôi chiếc bàn. Sau đó, chúng tôi chỉ định rằng chúng tôi chỉ muốn có được những khách hàng có ID khách hàng nằm trong một truy vấn con . Truy vấn phụ của chúng tôi chọn tất cả các ID khách hàng duy nhất từ ​​ đơn đặt hàng của chúng tôi bảng trong đó mặt hàng có giá hơn $ 200. Hồ sơ phù hợp với các điều kiện này bao gồm những khách hàng đó trong kết quả.

Truy vấn con SQL:INSERT

Chúng tôi muốn chèn tất cả hồ sơ của những khách hàng đã mua hàng trị giá trên 200 đô la vào một bảng có tên là high_value_customers. Để làm như vậy, chúng ta có thể sử dụng truy vấn con SQL và lệnh SQL INSERT:

 INSERT INTO high_value_customersSELECT * TỪ khách hàng 

Nếu chúng tôi truy vấn high_value_customers của mình , chúng ta có thể thấy tất cả các khách hàng giá trị cao của mình trong một bảng:

name email địa chỉ yal_plan id
Katy katy.l@gmail.com Mountain View, CA Vàng 4
John john.p@outlook.com Boston, MA Không có 1

(2 hàng)

Truy vấn con SQL:CẬP NHẬT

Chúng tôi có thể sử dụng một truy vấn con để cập nhật dữ liệu trong bảng. Ví dụ:giả sử chúng tôi muốn cập nhật gói khách hàng thân thiết của tất cả những khách hàng đã mua hàng có giá trị cao cho Đồng . Chúng tôi có thể sử dụng truy vấn sau để thực hiện thao tác đó:

 CẬP NHẬT khách hàngSETyal_plan ='Giá trị cao'WHERE id IN (CHỌN DISTINCT customer_id TỪ đơn đặt hàng WHERE chi phí> 200); 

Khi chúng tôi truy vấn khách hàng của mình , chúng ta có thể thấy rằng các kế hoạch về mức độ trung thành cho hai giá trị cao của chúng ta khách hàng đã được cập nhật:

name email địa chỉ yal_plan id
Katy katy.l@gmail.com Mountain View, CA Giá trị cao 4
John john.p@outlook.com Boston, MA Giá trị cao 1

(2 hàng)

Truy vấn con SQL:DELETE

Bạn có thể sử dụng truy vấn phụ với câu lệnh SQL DELETE để xóa từng hàng hoặc nhiều hàng trong bảng.

Hãy viết một lệnh xóa đơn đặt hàng của những khách hàng có giá trị cao mà chúng tôi đã chuyển sang một bảng mới trong cơ sở dữ liệu. Để làm điều này, chúng tôi sẽ cần phụ thuộc vào một truy vấn con:

 XÓA khỏi đơn đặt hàngWHERE customer_id IN (CHỌN id TỪ khách hàngWHERE trung thành_plan ='Giá trị cao'); 

Chúng tôi có thể thấy tất cả các đơn đặt hàng từ những khách hàng có giá trị cao của chúng tôi đã bị xóa. Truy vấn con lồng nhau của chúng tôi trả về:

id item_name chi phí customer_id
5 Ghế gỗ sồi 100 3

(1 hàng)

Kết luận

Truy vấn con SQL là một truy vấn trong một truy vấn khác. Truy vấn con cho phép bạn phụ thuộc vào kết quả của một truy vấn trong một truy vấn khác. Truy vấn con được chỉ định trong mệnh đề HAVING hoặc WHERE của câu lệnh SQL.

Truy vấn phụ giúp bạn dễ dàng chạy một truy vấn phụ thuộc vào kết quả của một truy vấn khác. Trong hướng dẫn này, chúng tôi đã thảo luận về cách viết một truy vấn con trên SQL máy chủ. Chúng tôi cũng đã nói về cách sử dụng truy vấn con trong SELECT , CHÈN , CẬP NHẬT XÓA SQL tuyên bố.

Bạn có muốn tìm hiểu thêm về cách viết mã trong SQL? Hãy xem hướng dẫn Cách học SQL của chúng tôi. Hướng dẫn này chứa lời khuyên của chuyên gia về việc học SQL. Bạn cũng sẽ tìm thấy danh sách các khóa học hàng đầu để giúp bạn tiếp tục hành trình học tập của mình.