MySQL 데이터베이스에서 IF EXISTS 사용
이 튜토리얼에서는 MySQL에서 IF EXISTS 문을 탐색하는 것을 목표로 합니다.
그러나 시작하기 전에 작업할 더미 데이터 세트를 만듭니다. 여기에서 몇 개의 행과 함께 student_details 테이블을 만듭니다.
-- create the table student_details CREATE TABLE student_details( stu_id int, stu_firstName varchar(255) DEFAULT NULL, stu_lastName varchar(255) DEFAULT NULL, primary key(stu_id) ); -- insert rows to the table student_details INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) VALUES(1,"Preet","Sanghavi"), (2,"Rich","John"), (3,"Veron","Brow"), (4,"Geo","Jos"), (5,"Hash","Shah"), (6,"Sachin","Parker"), (7,"David","Miller"); 위의 쿼리는 학생의 이름과 성이 포함된 행과 함께 테이블을 생성합니다. 데이터의 항목을 보기 위해 다음 코드를 사용합니다.
SELECT * FROM student_details; 앞서 언급한 코드는 다음과 같은 출력을 제공합니다.
stu_id stu_firstName stu_lastName 1 Preet Sanghavi 2 Rich John 3 Veron Brow 4 Geo Jos 5 Hash Shah 6 Sachin Parker 7 David Miller MySQL에서 EXISTS 연산자의 기본 사용법
MySQL의 EXISTS 조건은 일반적으로 충족되어야 하는 조건으로 구성된 하위 쿼리와 함께 사용됩니다. 이 조건이 충족되면 하위 쿼리는 최소 하나의 행을 반환합니다. 이 방법은 명령문을 DELETE, SELECT, INSERT 또는 UPDATE하는 데 사용할 수 있습니다.
-- Here we select columns from the table based on a certain condition SELECT column_name FROM table_name WHERE EXISTS ( SELECT column_name FROM table_name WHERE condition ); 여기서 condition은 특정 열에서 행을 선택할 때의 필터링 조건을 나타냅니다.
stu_id = 4인 stu_firstName 열에 학생이 있는지 확인하기 위해 다음 코드를 사용합니다.
-- Here we save the output of the code as RESULT SELECT EXISTS(SELECT * from student_details WHERE stu_id=4) as RESULT; 앞서 언급한 코드는 다음과 같은 출력을 제공합니다.
RESULT 1 위의 코드 블록에서 1은 부울 값을 나타내며 stu_id = 4인 학생이 있음을 나타냅니다.
MySQL에서 IF EXISTS 연산자 사용
때때로 우리는 테이블에서 특정 값의 존재를 확인하고 해당 조건의 존재를 기반으로 출력을 변경하고자 합니다. 이 작업의 구문은 다음과 같습니다.
SELECT IF( EXISTS( SELECT column_name FROM table_name WHERE condition), 1, 0) 여기에서 IF 문이 True를 반환하는 경우 쿼리의 출력은 1입니다. 그렇지 않으면 0을 반환합니다.
테이블에 stu_id=4인 학생이 있는 경우 Yes, exists를 반환하는 쿼리를 작성해 보겠습니다. 그렇지 않으면 No, does not exist를 반환하려고 합니다. 이 작업을 수행하려면 아래 코드를 살펴보십시오.
SELECT IF( EXISTS( SELECT stu_firstName FROM student_details WHERE stu_id = 4), 'Yes, exists', 'No, does not exist') as RESULT; 앞서 언급한 코드는 다음과 같은 출력을 제공합니다.
RESULT Yes, exists 이제 stu_id = 11인 학생을 찾아보겠습니다. 이 작업은 다음 쿼리로 수행할 수 있습니다.
SELECT IF( EXISTS( SELECT stu_firstName FROM student_details WHERE stu_id = 11), 'Yes, exists', 'No, does not exist') as RESULT; 참고: ALIAS RESULT를 사용하여 출력 코드 블록에 출력을 표시합니다.
앞서 언급한 코드는 다음과 같은 출력을 제공합니다.
RESULT No, does not exist 참고: 일반적으로 MySQL에서 EXISTS 메서드를 사용하는 SQL 쿼리는 하위 쿼리가 외부 쿼리 테이블의 모든 항목에 대해 RE-RUN이기 때문에 매우 느립니다. EXISTS 조건을 사용하지 않고 대부분의 쿼리를 표현하는 더 빠르고 효율적인 방법이 있습니다.
따라서 MySQL에서 IF EXISTS를 성공적으로 구현했습니다.
