במאמר 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, עליך לבצע את השלבים המפורטים להלן באותו רצף:
- צור מסד נתונים ב-SQL.
- צור את טבלת SQL החדשה.
- הכנס את הנתונים לטבלה.
- הצג את הנתונים שהוכנסו.
- השתמש באופרטור 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 עם שאילתת משנה:
בדיקות תוכנה וסוגים
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, עליך לבצע את השלבים הנתונים באותו רצף:
מערכת הפעלה לינוקס
- יצירת מסד נתונים במערכת SQL.
- צור את הטבלה החדשה במסד הנתונים.
- הכנס את הנתונים לטבלה
- הצג את הנתונים שהוכנסו
- השתמש באופרטור 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 |