📜  SQL – 选择输入

📅  最后修改于: 2022-05-13 01:55:07.098000             🧑  作者: Mango

SQL – 选择输入

IN运算符是一个成员运算符,它返回与列表或子查询中的值匹配的值。使用此运算符,我们可以在 WHERE 子句中指定多个值。此运算符将一个值与一组值进行比较,如果该值属于该给定集合,则返回 true,否则返回 false。它是多个OR条件的简写。

语法 1(列表):

语法 2(子查询):

让我们在 Microsoft SQL Server 中逐步尝试此操作:

创建数据库:

使用以下 SQL 语句创建名为RECORD的数据库

CREATE DATABASE RECORD;

更改为数据库:

使用以下 SQL 语句将数据库更改为 RECORD:

USE RECORD;

创建表:

现在我们在我们的 RECORD 数据库中创建一个名为 COURSE 的表:

CREATE TABLE COURSE(
course_id INT,
course_name VARCHAR(20),
duration_of_course INT,
PRIMARY KEY(course_id)
); 

现在我们再次在我们的 RECORD 数据库中创建另一个名为 STUDENT 的表:

CREATE TABLE STUDENT(
roll_no INT,
student_name VARCHAR(20),
course_id INT,
PRIMARY KEY(roll_no)
); 

在表中插入数据:

使用下面的语句,我们将数据插入到 COURSE 表中:

INSERT INTO COURSE(course_id, course_name, duration_of_course) VALUES(1, 'BCA', 3);
INSERT INTO COURSE(course_id, course_name, duration_of_course) VALUES(2, 'MCA', 3);
INSERT INTO COURSE(course_id, course_name, duration_of_course) VALUES(3, 'B.E.', 4);
INSERT INTO COURSE(course_id, course_name, duration_of_course) VALUES(4, 'M.E.', 2);
INSERT INTO COURSE(course_id, course_name, duration_of_course) VALUES(5, 'Integrated BE and ME', 5);

同样,使用下面的语句,我们将数据插入到 STUDENT 表中:

INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(1, 'ANDREW', 1);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(2, 'BOB', 1);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(3, 'CHARLES', 1);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(4, 'DAIZY', 3);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(5, 'EMMANUEL', 2);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(6, 'FAIZAL', 2);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(7, 'GEORGE', 4);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(8, 'HARSH', 5);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(9, 'ISHA', 2);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(10, 'JULIAN', 2);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(11, 'KAILASH', 3);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(12, 'LAIBA', 5);
INSERT INTO STUDENT(roll_no, student_name, course_id) VALUES(13, 'MICHAEL', 3);

显示表的数据:



现在使用以下语句显示 COURSE 表的内容:

SELECT * FROM COURSE;

再次使用以下语句显示 STUDENT 表的内容:

SELECT * FROM STUDENT;

带有列表的 IN 子句:

SELECT * FROM
STUDENT
WHERE course_id
IN (1, 2, 3);

带有子查询的 IN 子句:

SELECT * FROM
STUDENT
WHERE course_id
IN (SELECT course_id FROM
COURSE
WHERE duration_of_course = 3);