Cấu trúc quyết định SQL IF EXISTS: Giải thích với các ví dụ – sql nếu tồn tại khác

Cấu trúc quyết định IF EXISTS sẽ thực thi một khối mã SQL chỉ khi một truy vấn bên trong trả về một hoặc nhiều hàng.

Bạn đang xem : sql nếu tồn tại khác

Thời gian đọc :

6

phút

SQL Công cụ IF EXISTS là công cụ tuyệt vời cần biết để quản lý luồng kiểm soát mã SQL của bạn.

Trong hướng dẫn rất ngắn gọn này, chúng tôi sẽ thảo luận mọi thứ bạn cần biết về cấu trúc quyết định IF EXISTS trong SQL Server. Chúng ta sẽ thảo luận về các chủ đề này:

  1. Cấu trúc quyết định SQL IF EXISTS là gì?
  2. Ví dụ về việc sử dụng NẾU TỒN TẠI
  3. Mẹo và thủ thuật

Hãy đưa nó từ đầu.

1. Cấu trúc quyết định SQL

IF EXISTS

là gì?

Cấu trúc quyết định IF EXISTS sẽ thực thi một khối mã SQL chỉ khi truy vấn bên trong trả về một hoặc nhiều hàng. Nếu truy vấn bên trong trả về tập kết quả trống, khối mã trong cấu trúc sẽ bị bỏ qua.

Truy vấn bên trong được sử dụng với cấu trúc IF EXISTS có thể là bất kỳ thứ gì bạn cần. Vấn đề là nếu truy vấn bên trong trả về một thứ gì đó, thì khối mã bên trong cấu trúc sẽ thực thi. Nếu không, nó sẽ bị bỏ qua.

Cú pháp

Cú pháp cho cấu trúc IF EXISTS rất đơn giản:

 NẾU TỒN TẠI (& lt; truy vấn bên trong & gt;)
BẮT ĐẦU
& lt; khối mã để thực thi nếu truy vấn bên trong trả về tập kết quả & gt;
HẾT 

Hãy xem một số ví dụ.

2. Ví dụ về việc sử dụng

NẾU TỒN TẠI

Hãy xem hai bảng sau được gọi là Sản phẩm Đơn hàng :

SQL If Tồn tại sản phẩm và đơn đặt hàng

Dưới đây là các câu lệnh CREATE và INSERT cho các bảng này nếu bạn muốn tạo dữ liệu trong môi trường của riêng mình và hãy làm theo:

 TẠO BẢNG SẢN PHẨM (
ID sản phẩm int IDENTITY (20,2) KHÔNG ĐỦ,
Tên sản phẩm varchar (20) NULL,
Giá thập phân (5, 2) NULL
)

TẠO BẢNG Đơn đặt hàng (
OrderID int IDENTITY (100,10) KHÔNG ĐỦ,
CustID int NULL,
ProdID int NULL,
Qty tinyint NULL,
Ngày đặt hàng datetime NULL
)

CHÈN Sản phẩm (Tên sản phẩm, Giá)
GIÁ TRỊ
('Ghế dài lớn', 198,00),
('Ghế dài nhỏ', 169.40),
('Bàn cà phê', 220,00),
('Bảng bên', 265,20),
('Giá áo', 45,00)

CHÈN Đơn hàng (CustID, ProdID, Qty, Orderdate)
GIÁ TRỊ
(55, 22, 1, '2021-06-01'),
(60, 28, 2, '2021-06-06'),
(75, 26, 1, '2021-06-13'),
(50, 20, 1, '2021-07-01'),
(55, 28, 1, '2021-07-06'),
(65, 24, 1, '2021-07-14'),
(55, 26, 1, '2021-07-18'),
(50, 26, 1, '2021-07-24'),
(70, 24, 1, '2021-08-06'),
(70, 26, 1, '2021-08-06'),
(70, 22, 3, '2021-09-01') 

Giả sử chúng tôi có Chế độ xem sau đây được gọi là vProductIncome cho chúng tôi biết tóm tắt về thu nhập mà chúng tôi đã kiếm được từ mỗi sản phẩm:

 TẠO CHẾ ĐỘ XEM vProductIncome
BẰNG 
CHỌN P.ProductName, SUM (O.Qty * P.Price) làm 'Thu nhập'
TỪ CÁC SẢN PHẨM NHƯ P
INNER THAM GIA Đơn đặt hàng với tư cách là O
ON P.ProductID = O.ProdID
NHÓM THEO P.ProductName 

Chúng tôi muốn viết một tập lệnh chỉ tạo Chế độ xem này nếu nó chưa tồn tại trong môi trường hiện tại. Tập lệnh sẽ tiếp cận với bảng sys.objects để kiểm tra xem Chế độ xem đã tồn tại trong cơ sở dữ liệu hay chưa. Nếu có, thì chúng tôi không cố gắng tạo ra nó. Nhưng nếu không, chúng tôi tạo Chế độ xem .

Chúng tôi có thể sử dụng cấu trúc IF EXISTS để làm điều đó:

 NẾU TỒN TẠI (CHỌN * TỪ sys.objects trong đó name = 'vProductIncome' và type = 'V')
BẮT ĐẦU
IN 'vProductIncome View đã tồn tại trong cơ sở dữ liệu'
CHẤM DỨT
KHÁC
BẮT ĐẦU
HÀNH HÌNH(
'TẠO CHẾ ĐỘ XEM vProductIncome
BẰNG 
CHỌN P.ProductName, SUM (O.Qty * P.Price) làm '' Thu nhập ''
TỪ CÁC SẢN PHẨM NHƯ P
INNER THAM GIA Đơn đặt hàng với tư cách là O
ON P.ProductID = O.ProdID
NHÓM THEO P.ProductName '
)
HẾT 

Vì vậy, nếu tôi thực thi mã này lần đầu tiên , Chế độ xem sẽ được tạo vì nó chưa có trong hệ thống của tôi:

máy chủ sql nếu tồn tại thành công 3

Chế độ xem đã được tạo và đây là những gì chúng tôi nhận được nếu truy vấn Chế độ xem:

sql nếu tồn tại truy vấn Xem

Tuy nhiên, nếu chúng tôi chạy lại cùng một tập lệnh, chúng tôi nhận được thông báo cho chúng tôi biết rằng Chế độ xem đã tồn tại :

sql if tồn tại câu lệnh in 2

NẾU TỒN TẠI

rất tốt để tạo (hoặc không tạo) các đối tượng trong cơ sở dữ liệu

Một tập lệnh như thế này có thể rất hữu ích để tạo các đối tượng trong cơ sở dữ liệu. Một số khách hàng có thể đã có Chế độ xem trong cơ sở dữ liệu của họ, nghĩa là chúng tôi không cần tạo Chế độ xem này . Tuy nhiên, tất nhiên, các khách hàng khác có thể không có Chế độ xem trong môi trường của họ.

Cấu trúc quyết định IF EXISTS cho phép chúng tôi chạy tập lệnh này trong một trong hai môi trường và không nhận được thông báo lỗi. Ví dụ: nếu chúng tôi không có sẵn cấu trúc IF EXISTS và chỉ luôn chạy câu lệnh TẠO CHẾ ĐỘ XEM cho mọi người , những người đã có Chế độ xem này sẽ nhận được thông báo lỗi cho biết:

Đã có một đối tượng có tên là ‘vProductIncome’ trong cơ sở dữ liệu.

Không tốt! Chúng tôi cố gắng hết sức để tránh tạo ra thông báo lỗi trong mã của mình.

Sử dụng SQL

NẾU TỒN TẠI

để

DROP

một đối tượng nếu nó tồn tại

Chúng tôi cũng có thể viết một tập lệnh đơn giản là luôn tạo Chế độ xem . Chúng tôi có thể sử dụng NẾU TỒN TẠI để kiểm tra xem Chế độ xem đã tồn tại trong cơ sở dữ liệu chưa và nếu có, chúng tôi loại bỏ nó . Sau đó, chúng ta có một câu lệnh TẠO CHẾ ĐỘ XEM chạy ngay sau đó. Ý tôi là:

sql nếu tồn tại chế độ xem đã tồn tại, thả nó 2

Chế độ xem đã tồn tại trong cơ sở dữ liệu của tôi, vì vậy chúng tôi đã loại bỏ nó . Sau đó, có câu lệnh CREATE VIEW nằm ngoài cấu trúc quyết định IF EXISTS đơn giản là luôn chạy . Khi chúng tôi đạt đến điểm đó trong mã, Chế độ xem được đảm bảo không tồn tại .

Tôi có thể truy vấn Chế độ xem để biết rằng Chế độ xem đã được tạo thành công:

máy chủ sql tồn tại câu lệnh SELECT 2

Nếu chúng tôi chạy lại tập lệnh, Chế độ xem sẽ bị xóa một lần nữa và được tạo lại lần nữa. Điều này sẽ xảy ra mỗi khi chúng tôi chạy tập lệnh .

Đôi khi, đây chính xác là những gì chúng tôi muốn. Đôi khi có thể dễ dàng hơn nếu bạn chỉ cần bỏ những gì hiện có ra khỏi đó để tạo lại đối tượng từ đầu.

3. Mẹo và thủ thuật

Dưới đây chỉ là một số mẹo và thủ thuật bạn nên biết khi làm việc với cấu trúc quyết định IF EXISTS trong SQL:

Mẹo số 1: Bạn có thể sử dụng

NẾU TỒN TẠI

cho việc khác ngoài việc kiểm tra xem các đối tượng có tồn tại hay không

Các ví dụ ở trên phác thảo cách chúng tôi sử dụng IF EXISTS để kiểm tra sự tồn tại của đối tượng, nhưng bạn có thể sử dụng truy vấn bất kỳ nào bạn muốn làm truy vấn bên trong. Dưới đây là ví dụ kiểm tra xem một hàng nhất định có tồn tại trong bảng Sản phẩm của chúng tôi hay không trước khi thực hiện CẬP NHẬT trên hàng đó:

sql nếu tồn tại truy vấn đối với bảng sản phẩm

IF EXISTS thường được sử dụng để kiểm tra sự tồn tại của đối tượng, nhưng hãy hiểu rằng bạn có thể sử dụng nó cho mọi thứ!

Mẹo số 2:

NẾU KHÔNG TỒN TẠI

ngược lại với

​​NẾU TỒN TẠI

Folks, IF KHÔNG TỒN TẠI hoàn toàn ngược lại với IF TỒN TẠI. Nếu truy vấn bên trong không trả về nội dung nào đó, chúng tôi sẽ thực thi khối mã của cấu trúc.

Ví dụ: chúng ta có thể đảo ngược logic trong ví dụ của mình:

sql nếu tồn tại nếu không tồn tại 3

Trong trường hợp của tôi, Chế độ xem đã tồn tại, do đó, khối để tạo Chế độ xem không thực thi .

Thật dễ dàng.

Mẹo số 3: Bạn không cần khối

​​BEGIN

KẾT THÚC

nếu phần nội dung chỉ có một dòng

Điều này đúng với nhiều cấu trúc quyết định . Nếu phần nội dung cấu trúc của bạn chỉ có một dòng lớn , bạn không cần các từ khóa BEGIN… END. Đây là một ví dụ:

sql nếu tồn tại thả xem 2

Đây là một cách tuyệt vời để giảm bớt các dòng mã và cải thiện khả năng đọc cho mã của bạn.

Các bước tiếp theo:

Để lại nhận xét nếu bạn thấy hướng dẫn này hữu ích!

Bạn gần như có thể nghĩ cấu trúc IF EXISTS trong SQL là sự kết hợp của cấu trúc quyết định IF và vị từ EXISTS . Bạn có biết chúng là gì và chúng hoạt động như thế nào không? Nếu không, hãy đọc chúng tại đây:

Cảm ơn bạn rất nhiều vì đã đọc!

Đảm bảo rằng bạn đăng ký nhận bản tin của tôi

Nếu bạn có bất kỳ câu hỏi nào, hãy để lại nhận xét . Hoặc tốt hơn, hãy gửi email cho tôi !


Xem thêm những thông tin liên quan đến chủ đề sql nếu tồn tại khác

Nếu Em Còn Tồn Tại – Trịnh Đình Quang (MV Official)

alt

  • Tác giả: Zing MP3
  • Ngày đăng: 2015-11-06
  • Đánh giá: 4 ⭐ ( 3271 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Official Mv] Nếu Em Còn Tồn Tại – Trịnh Đình Quang

    ☞ Subscribe để xem nhiều video hơn https://www.youtube.com/user/ZingMp3Official?sub_confirmation=1

    ☞ Xem Thêm Các Playlist Tuyển Tập Ở Đây
    ▶ https://www.youtube.com/playlist?list=PL18ydGudVEHXDlOiiRmN4bBaZXFEE9njF
    ▶ https://www.youtube.com/playlist?list=PL18ydGudVEHUL92zbOwucpa0z6lE9Ch_h

    ☞ Đừng Quên LIKE, SUBSCRIBE và SHARE Ủng Hộ ZING MP3 Nha

    ▶ Zing Mp3 Official FB: https://www.facebook.com/zingmp3
    ▶ Google Plus Official: https://plus.google.com/+zingmp3/posts

    ☞ Chúc Các Bạn Nghe Nhạc Vui Vẻ

Kiểm tra sự tồn tại của 1 table trong CSDL

  • Tác giả: www.ddth.com
  • Đánh giá: 4 ⭐ ( 1999 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Làm sao kiểm tra sự tồn tại của 1 table trong CSDL bằng SQL hả các bác?
    Em đã thử dùng như vầy: “select * from user_tables where ten table can kiem tra” nhưng vẫn không được.Có cách truy vấn nào khác không nhỉ?(Em dùng CSDL là Oracle)

SQL THAM GIA hay TỒN TẠI? Rất có thể, bạn đang làm sai

  • Tác giả: helpex.vn
  • Đánh giá: 5 ⭐ ( 4003 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tôi đã nhận thấy điều này rất nhất quán với rất nhiều khách hàng và cả với những người tham gia Hội thảo truy vấn SQL dữ liệu của chúng tôi (mà tôi thực sự khuyên mọi người, nếu bạn không…

EXISTS Kiểm tra sự tồn tại trong SQL – Deft Blog

  • Tác giả: shareprogramming.net
  • Đánh giá: 3 ⭐ ( 6480 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Điều kiện EXISTS trong SQL được sử dụng để kiểm tra sự tồn tại của bất kỳ bản ghi nào trong truy vấn phụ.

Từ chuyện “Ăn gì cũng được” của chị em phụ nữ lại nghĩ về NULL trong SQL

  • Tác giả: datapot.vn
  • Đánh giá: 3 ⭐ ( 4930 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: “Ăn gì cũng được” và NULL trong SQL, khi nói về 2 thứ có vẻ chẳng liên quan nhưng lại giống nhau đến lạ. Không tin ư? Cùng đọc phía dưới nhé.

Máy Chủ Sql Không Tồn Tại Misa 2017, Lấy Lại Lấy Lại Máy Chủ Sql Trên Phần Mềm Misa

  • Tác giả: cheohanoi.vn
  • Đánh giá: 3 ⭐ ( 7224 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Kế toán thù cho người đi làm việc Kế toán thù thuế Kế toán đến sinch viên Kế tân oán tài bao gồm công ty Học trên excel để giúp đỡ các bạn đọc được thực chất kế toán, mặc dù nhằm giảm thời gian xử lý tính tân oán thì phần mềm kế toán thù misavẫn là sựlựa chọn thêmcủa khá nhiều tín đồ, Tuy nhiên ứng dụng nào thì cũng vậy, cũng không tách ngoài 1 sốlỗivào quá trình sử dụng

SQL: Cách kiểm tra đúng nếu bản ghi tồn tại

  • Tác giả: qastack.vn
  • Đánh giá: 4 ⭐ ( 2092 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Tốt hơn là sử dụng một trong các cách sau: — Method 1. SELECT 1 FROM…

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Danh sách Python .append () - Cách thêm một mục vào danh sách bằng Python - chèn một phần tử trong một python danh sách