如何在 SQL Select 中排除有一定值的记录?
原文:https://www . geeksforgeeks . org/如何排除带有 sql-select 中某些值的记录/
在本文中,我们将了解如何从表中排除一些具有特定值的记录。为了演示,我们将在名为“ GeeksForGeeksDatabase 的数据库中创建一个参与者表。
步骤 1:创建数据库
使用下面的 SQL 语句创建一个名为的数据库。
查询:
CREATE DATABASE GeeksForGeeksDatabase;
步骤 2:使用数据库
使用下面的 SQL 语句将数据库上下文切换到 GeeksForGeeksDatabase 。
查询:
USE GeeksForGeeksDatabase;
步骤 3:表格定义
查询:
CREATE TABLE Geeks(
GeekID INTEGER PRIMARY KEY,
GeekName VARCHAR(255) NOT NULL,
GeekRank INTEGER NOT NULL,
GeekSchool VARCHAR(255) NOT NULL
);
第四步:在表格中插入一些数据
查询:
INSERT INTO Geeks VALUES (101, 'Nix',2 ,'Code Valley School');
INSERT INTO Geeks VALUES (102, 'Rutz',4 ,'Blue Chip School');
INSERT INTO Geeks VALUES (103, 'Shrey',1 ,'GCOEA School');
INSERT INTO Geeks VALUES (104, 'Ankx',3 ,'Round Robin Play School');
INSERT INTO Geeks VALUES (105, 'Ridz',7 ,'Dream School');
INSERT INTO Geeks VALUES (106, 'Mayo',6 ,'Silver Shining School');
INSERT INTO Geeks VALUES (107, 'Bugs',5 ,'Twinkle Star Convent');
您可以使用下面的语句查看创建的表的内容:
查询:
SELECT * FROM Geeks;
现在让我们看看如何根据某些条件从表中排除一些记录。
有很多方法可以做到这一点,让我们一个一个地看例子:
查询:
查询特定学校(即蓝筹股学校)的学生。不显示条件不为真的记录。
注意:如果我们没有在这里使用 NOT,那么结果将是相反的。
SELECT * FROM Geeks WHERE NOT GeekSchool = 'Blue Chip School';
此查询将输出除给定学校学生以外的所有学生:
我们还可以通过提供用“与”或运算符分隔的条件来排除更多的记录。
注意:我们也可以使用!操作员
查询:
SELECT * FROM Geeks WHERE NOT GeekID > 104;
现在看看“非”是如何工作的。在这里的例子中,我们提供了条件,当条件为真时,跟在“非”后面意味着查询将选择提供的条件不为真的所有行。
在上面的输出中,满足 GeekID > 104 的条件,并且由于不是,所有小于 104 的行都被选择。
注意:我们也可以使用!操作员
查询:
SELECT * FROM Geeks WHERE GeekID NOT IN (104,101,102,107);
在这个查询中,我们排除了那些极客标识不在提供的列表中的记录(行)(即极客标识不应该是 104,101,102,107)
因此,结果数据将包含不包括所提供的极客 id 的记录。
因此,我们可以对表的任何列应用任何条件,并排除那些使用非运算符的条件。
查询:
我们还可以在 in 运算符中提供子查询,还可以使用 WHERE 子句包含一个或多个条件:
SELECT * FROM Geeks WHERE GeekRank NOT IN (SELECT GeekRank FROM Geeks WHERE GeekRank >= 4);
结果表选择所有不满足 GeekRank >=4 条件的行,因此选择等级高于 4 的所有 geeks。我们也可以将许多条件结合在一起,从而得到不同的结果。
版权属于:月萌API www.moonapi.com,转载请注明出处