logo

כיצד להשתמש ב-IN ב-SQL

במאמר SQL זה, תלמד כיצד להשתמש במילת מפתח IN בשאילתות של מסד הנתונים של SQL.

מהי מילת מפתח IN ב-SQL?

ה IN הוא אופרטור לוגי ב-Structured Query Language המאפשר למשתמשי מסד הנתונים להגדיר יותר מערך אחד בסעיף WHERE.

משפט WHERE עם האופרטור IN מציג את הרשומות בתוצאה המותאמות לקבוצת הערכים הנתונה. אנו יכולים גם לציין את שאילתת המשנה בסוגריים של אופרטור IN.

אנו יכולים להשתמש באופרטור IN עם השאילתות INSERT, SELECT, UPDATE ו-DELETE במסד הנתונים של SQL.

האופרטור IN ב-SQL מחליף את התהליך של מספר תנאי OR בשאילתות.

תחביר של אופרטור IN:

 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Value_1, Value_2, Value_3, ......., Value_N); 

אם ברצונך להשתמש באופרטור IN בהצהרות SQL, עליך לבצע את השלבים המפורטים להלן באותו רצף:

  1. צור מסד נתונים ב-SQL.
  2. צור את טבלת SQL החדשה.
  3. הכנס את הנתונים לטבלה.
  4. הצג את הנתונים שהוכנסו.
  5. השתמש באופרטור SQL IN כדי להציג את נתוני הטבלה.

כעת, אנו הולכים להסביר כל שלב אחד אחד בקצרה עם דוגמה הטובה ביותר של SQL:

שלב 1: צור מסד נתונים חדש ופשוט

הצעד הראשון הוא יצירת מסד נתונים חדש ב-Structured Query Language.

global var in js

ההצהרה CREATE הבאה יוצרת את החדש מכאני_מכללה מסד נתונים בשרת SQL:

 CREATE Database Mechanical_College; 

שלב 2: צור טבלה חדשה

כעת, השתמש בתחביר SQL הבא שעוזר ביצירת הטבלה החדשה במסד הנתונים:

 CREATE TABLE table_name ( 1st_Column data type (character_size of 1st Column), 2nd_Column data type (character_size of the 2nd column ), 3rd_Column data type (character_size of the 3rd column), ... 
 Nth_Column data type (character_size of the Nth column) ); 

ההצהרה CREATE הבאה יוצרת את הפקולטה_מידע שולחן ב מכאני_מכללה מאגר מידע:

 CREATE TABLE Faculty_Info ( Faculty_ID INT NOT NULL PRIMARY KEY, Faculty_First_Name VARCHAR (100), Faculty_Last_Name VARCHAR (100), Faculty_Dept_Id INT NOT NULL, Faculty_Joining_DateDATE, Faculty_City Varchar (80), Faculty_Salary INT ); 

שלב 3: הכנס את הנתונים לטבלה

שאילתות ה-INSERT הבאות מכניסות את הרשומות של הפקולטות בטבלת Faculty_Info:

 INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1001, Arush, Sharma, 4001, 2020-01-02, Delhi, 20000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1002, Bulbul, Roy, 4002, 2019-12-31, Delhi, 38000 ); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1004, Saurabh, Sharma, 4001, 2020-10-10, Mumbai, 45000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1005, Shivani, Singhania, 4001, 2019-07-15, Kolkata, 42000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1006, Avinash, Sharma, 4002, 2019-11-11, Delhi, 28000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary)VALUES (1007, Shyam, Besas, 4003, 2021-06-21, Lucknow, 35000); 

שלב 4: הצג את הנתונים שהוכנסו

הצהרת SELECT הבאה מציגה את הנתונים של טבלת Faculty_Info:

 SELECT * FROM Faculty_Info; 

פקולטה_זיהוי שם_הפקולטה שם_משפחה_הפקולטה מזהה_מחלקה_פקולטה הפקולטה_תאריך_הצטרפות פקולטה_עיר סגל_שכר
1001 דוב שארמה 4001 2020-01-02 דלהי 20000
1002 בּוּלְבּוּל רועי 4002 31-12-2019 דלהי 38000
1004 סאורבה רועי 4001 2020-10-10 מומבאי 45,000
1005 שיבאני סינגניה 4001 2019-07-15 קולקטה 42000
1006 אבינש שארמה 4002 2019-11-11 דלהי 28000
1007 שיאם אתה מנשק 4003 2021-06-21 מזל 35,000

שלב 5: השתמש ב-IN Operator כדי להציג את הנתונים של טבלת Faculty_Info בדרכים שונות

השאילתה הבאה משתמשת בערכים מספריים עם אופרטור IN:

 SELECT Faculty_Id, Faculty_First_Name, Faculty_Dept_Id, Faculty_Joining_Date, Faculty_Salary FROM Faculty_Info WHERE Faculty_Salary IN ( 38000, 42000, 45000, 35000); 

שאילתה זו מציגה רק את הרשומה של אותן פקולטות ששכרן מועבר בסעיף המפעיל IN של WHERE.

תְפוּקָה:

פקולטה_זיהוי שם_הפקולטה מזהה_מחלקה_פקולטה הפקולטה_תאריך_הצטרפות סגל_שכר
1002 בּוּלְבּוּל 4002 31-12-2019 38000
1004 סאורבה 4001 2020-10-10 45,000
1005 שיבאני 4001 2019-07-15 42000
1007 שיאם 4003 2021-06-21 35,000

השאילתה הבאה משתמשת בערכי טקסט או תווים עם אופרטור לוגי IN:

 SELECT Faculty_Id, Faculty_First_Name, Faculty_Joining_Date, Faculty_City FROM Faculty_Info WHERE Faculty_City IN ( Mumbai, Kolkata, Lucknow); 

שאילתה זו מציגה רק את הרשומה של אותן פקולטות שהעיר שלהן כלולה בסוגריים של אופרטור IN בסעיף WHERE.

תְפוּקָה:

פקולטה_זיהוי שם_הפקולטה הפקולטה_תאריך_הצטרפות פקולטה_עיר
1004 סאורבה 2020-10-10 מומבאי
1005 שיבאני 2019-07-15 קולקטה
1007 שיאם 2021-06-21 מזל

השאילתה הבאה משתמשת בפורמט DATE עם אופרטור לוגי IN:

 SELECT Faculty_Id, Faculty_First_Name, Faculty_Dept_ID Faculty_Joining_Date, Faculty_Salary FROM Faculty_Info WHERE Faculty_Joining_Date IN (2020-01-02, 2021-06-21, 2020-10-10, 2019-07-15); 

שאילתה זו מציגה רק את הרשומות של פקולטות שתאריך הצטרפותן עבר באופרטור IN של סעיף WHERE.

תְפוּקָה:

פקולטה_זיהוי שם_הפקולטה מזהה_מחלקה_פקולטה הפקולטה_תאריך_הצטרפות סגל_שכר
1001 דוב 4001 2020-01-02 20000
1004 סאורבה 4001 2020-10-10 45,000
1005 שיבאני 4001 2019-07-15 42000
1007 שיאם 4003 2021-06-21 35,000

השאילתה הבאה משתמשת בפקודת SQL UPDATE עם אופרטור לוגי IN:

 UPDATE Faculty_Info SET Faculty_Salary = 50000 WHERE Faculty_Dept_ID IN (4002, 4003); 

שאילתה זו מעדכנת את השכר של אותן פקולטות ש-Dept_Id שלהן מועבר באופרטור IN של סעיף WHERE.

כדי לבדוק את התוצאה של השאילתה לעיל, הקלד את שאילתת ה-SELECT הבאה ב-SQL:

 SELECT * FROM Faculty_Info; 
פקולטה_זיהוי שם_הפקולטה שם_משפחה_הפקולטה מזהה_מחלקה_פקולטה הפקולטה_תאריך_הצטרפות פקולטה_עיר סגל_שכר
1001 דוב שארמה 4001 2020-01-02 דלהי 20000
1002 בּוּלְבּוּל רועי 4002 31-12-2019 דלהי 50000
1004 סאורבה רועי 4001 2020-10-10 מומבאי 45,000
1005 שיבאני סינגניה 4001 2019-07-15 קולקטה 42000
1006 אבינש שארמה 4002 2019-11-11 דלהי 50000
1007 שיאם אתה מנשק 4003 2021-06-21 מזל 50000

מפעיל SQL IN עם שאילתת משנה

ב-Structured Query Language, נוכל להשתמש גם בשאילתת המשנה עם האופרטור הלוגי IN.

התחביר של אופרטור IN עם שאילתת משנה ניתן להלן:

 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Subquery); 

אם אתה רוצה להבין אופרטור IN עם שאילתת משנה, עליך ליצור את שתי הטבלאות השונות בשפת השאילתה המובנית באמצעות המשפט CREATE.

השאילתה הבאה יוצרת את טבלת Faculty_Info במסד הנתונים:

 CREATE TABLE Faculty_Info ( Faculty_ID INT NOT NULL PRIMARY KEY, Faculty_First_Name VARCHAR (100), Faculty_Last_Name VARCHAR (100), Faculty_Dept_Id INT NOT NULL, Faculty_Address Varchar (80), Faculty_City Varchar (80), Faculty_Salary INT ); 

השאילתה הבאה יוצרת את מחלקה_מידע טבלה במסד הנתונים:

 CREATE TABLE Department_Info ( Dept_Id INT NOT NULL, Dept_Name Varchar(100), Head_Id INT ); 

שאילתות ה-INSERT הבאות מכניסות את הרשומות של הפקולטות בטבלת Faculty_Info:

 INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1001, Arush, Sharma, 4001, 22 street, New Delhi, 20000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1002, Bulbul, Roy, 4002, 120 street, New Delhi, 38000 ); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1004, Saurabh, Sharma, 4001, 221 street, Mumbai, 45000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1005, Shivani, Singhania, 4001, 501 street, Kolkata, 42000); 

שאילתות ה-INSERT הבאות מכניסות את הרשומות של המחלקות בטבלה Department_Info:

 INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4001, Arun, 1005); INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4002, Zayant, 1009); INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4003, Manish, 1007); 

הצהרת ה-SELECT הבאה מציגה את הנתונים של טבלת Faculty_Info:

 SELECT * FROM Faculty_Info; 

פקולטה_זיהוי שם_הפקולטה שם_משפחה_הפקולטה מזהה_מחלקה_פקולטה הפקולטה_כתובת פקולטה_עיר סגל_שכר
1001 דוב שארמה 4001 רחוב 22 ניו דלהי 20000
1002 בּוּלְבּוּל רועי 4002 רחוב 120 ניו דלהי 38000
1004 סאורבה רועי 4001 רחוב 221 מומבאי 45,000
1005 שיבאני סינגניה 4001 רחוב 501 קולקטה 42000
1006 אבינש שארמה 4002 רחוב 12 דלהי 28000
1007 שיאם אתה מנשק 4003 רחוב 202 מזל 35,000

השאילתה הבאה מציגה את הרשומות של המחלקה מטבלת Department_Info:

 SELECT * FROM Department_Info; 
כיצד להשתמש ב-IN ב-SQL

השאילתה הבאה משתמשת באופרטור IN עם שאילתת משנה:

בדיקות תוכנה וסוגים
 SELECT * FROM Faculty_Info WHERE Faculty_Dept_Id IN ( Select Dept_Id FROM Department_Info WHERE Head_Id >= 1007); 

שאילתה זו מציגה את הרשומה של אותן פקולטות שהטבלה Dept_ID של Faculty_Info שלהן מותאמת לטבלת Dept_Id of Department_Info.

תְפוּקָה:

פקולטה_זיהוי שם_הפקולטה שם_משפחה_הפקולטה מזהה_מחלקה_פקולטה הפקולטה_כתובת פקולטה_עיר סגל_שכר
1002 בּוּלְבּוּל רועי 4002 רחוב 120 ניו דלהי 38000
1006 אבינש שארמה 4002 רחוב 12 דלהי 28000
1007 שיאם אתה מנשק 4003 רחוב 202 מזל 35,000

מה לא IN ב-SQL?

NOT IN הוא אופרטור נוסף ב-Structured Query Language, שהוא בדיוק מנוגד לאופרטור SQL IN. זה מאפשר לך לגשת לערכים האלה מהטבלה, שאינה עוברת בסוגריים של אופרטור IN.

ניתן להשתמש באופרטור NOT IN בשאילתות INSERT, UPDATE, SELECT ו-DELETE SQL.

תחביר של אופרטור NOT IN:

 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name NOT IN (Value_1, Value_2, Value_3, ......., Value_N); 

אם אתה רוצה להשתמש באופרטור NOT IN בהצהרות של SQL, עליך לבצע את השלבים הנתונים באותו רצף:

מערכת הפעלה לינוקס
  1. יצירת מסד נתונים במערכת SQL.
  2. צור את הטבלה החדשה במסד הנתונים.
  3. הכנס את הנתונים לטבלה
  4. הצג את הנתונים שהוכנסו
  5. השתמש באופרטור NOT IN כדי להציג את הנתונים.

כעת, אנו הולכים להסביר כל שלב אחד אחד בקצרה עם דוגמה הטובה ביותר של SQL:

שלב 1: צור את מסד הנתונים החדש פשוט

השאילתה הבאה יוצרת את החדש תעשייה_אזרחית מסד נתונים בשרת SQL:

 CREATE Database Industry; 

שלב 2: צור את הטבלה החדשה

השאילתה הבאה יוצרת את Worker_Info שולחן ב תעשייה_אזרחית מאגר מידע:

 CREATE TABLE Worker_Info ( Worker_ID INT NOT NULL PRIMARY KEY, Worker_Name VARCHAR (100), Worker_Gender Varchar(20), Worker_Age INT NOT NULL DEFAULT 18, Worker_Address Varchar (80), Worker_Salary INT NOT NULL ); 

שלב 3: הכנס את הערכים

שאילתות ה-INSERT הבאות מכניסות את הרשומות של עובדים בטבלה Worker_Info:

 INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1001, Arush, Male, Agra, 35000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1002, Bulbul, Female, Lucknow, 42000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1004, Saurabh, Male, 20, Lucknow, 45000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1005, Shivani, Female, Agra, 28000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1006, Avinash, Male, 22, Delhi, 38000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1007, Shyam, Male, Banglore, 20000); 

שלב 4: הצג את נתוני הטבלה

השאילתה הבאה מציגה את הנתונים של טבלת Worker_Info.

 SELECT * FROM Worker_Info; 

מזהה עובד שם עובד עובד_מגדר עובד_גיל כתובת_עובד עובד_משכורת
1001 דוב זָכָר 18 אגרה 35,000
1002 בּוּלְבּוּל נְקֵבָה 18 מזל 42000
1004 סאורבה זָכָר עשרים מזל 45,000
1005 שיבאני נְקֵבָה 18 אגרה 28000
1006 אבינש זָכָר 22 דלהי 38000
1007 שיאם זָכָר 18 בנגלור 20000

שלב 4: השתמש באופרטור NOT IN

השאילתה הבאה משתמשת באופרטור NOT IN עם נתונים מספריים:

 SELECT * FROM Worker_Info WHERE Worker_salary NOT IN (35000, 28000, 38000); 

שאילתת SELECT זו מציגה את כל אותם עובדים בפלט שהשכר שלהם לא מועבר באופרטור NOT IN.

התוצאה של ההצהרה לעיל מוצגת בטבלה הבאה:

מזהה עובד שם עובד עובד_מגדר עובד_גיל כתובת_עובד עובד_משכורת
1002 בּוּלְבּוּל נְקֵבָה 18 מזל 42000
1004 סאורבה זָכָר עשרים מזל 45,000
1007 שיאם זָכָר 18 בנגלור 20000

השאילתה הבאה משתמשת באופרטור לוגי NOT IN עם ערכי תווים או טקסט:

 SELECT * FROM Worker_Info WHERE Worker_Address NOT IN (Lucknow, Delhi); 

שאילתה זו מציגה את הרשומה של כל אותם עובדים שכתובתם לא הועברה באופרטור NOT IN.

תְפוּקָה:

מזהה עובד שם עובד עובד_מגדר עובד_גיל כתובת_עובד עובד_משכורת
1001 דוב זָכָר 18 אגרה 35,000
1005 שיבאני נְקֵבָה 18 אגרה 28000
1007 שיאם זָכָר 18 בנגלור 20000