标准化的sql数据库让我们组织我们的生活。无论是工作还是播放,一个适当的归一化的SQL数据库会使生活更轻松。我们可以在其中的任何信息上存储,并在稍后用Gusto检索它。虽然这些数据库让我们在其中存储任何内容,但他们的权力来自SQL语言。您可以使用正确的SQL语句执行任何操作。根据您的需求,这些陈述可以易于简单地简单或不可思议地复杂。例如,如果需要检索包含某些特定信息的记录,则有两个选项。您可以将它们包含在单独的“或”命令条件中,或者您可以在语句中使用单个SQL“in”语句,以在一行中抓住它们。

了解在Udemy的关系数据库可以为您做些什么

sql in陈述

SQL中的语句替换具有多个或条件的需要。例如,假设您在SQL数据库中有下表。

表Store_Information.

Store_Name 销售量 txn_date.
洛杉矶 1500 1月05-1999
圣地亚哥 250. 1月- 07 - 1999
旧金山 300 1月8日至1999年
波士顿 700 1月8日至1999年

如果您只需要记录,请说,L. A.和San Diego,您可以使用多个或陈述来获取它们。这些陈述可能会喜欢这样的东西:

SELECT * FROM Store_Information WHERE Store_Name = ' Los Angeles ' OR Store_Name = ' San Diego ';

声明没有错。如果你愿意,你可以使用它;特别是对于像这样的小桌子。但是,使用多个或陈述可能会对较大的表令人讨厌。对于具有数百个条目的表格,如果您需要的不仅仅是一些结果,您的SQL或链可以获得一本书。幸运的是,我们有SQL的声明来简化我们的SQL。

SQL IN语句将所有这些OR条件更改为具有逗号分隔的值列表的单个语句。这些值是括在圆括号中的搜索词。SQL IN语句语法如下所示:

(value1,value2,...,value_n)中的表达式

对于一个实际的例子,我们可以将我们以前的SQL语句重写为:

从stroe_information中选择*,其中stort_name('洛杉矶','san diego');

只要它所有相同的数据类型,您可以在值列表中放入值列表中的任何内容。由于您正在处理单个数据库列,因此无法混合诸如字符串和数字的数据类型。值数据类型也必须匹配列的数据类型。以下是所有数字SQL的示例。

从Order_ID中的订单中选择*(10000,0001,0003,10005)的订单;

在这些情况中的任何一个中,SQL中的语句会产生与其等同器或链相同的结果。

Store_Name 销售量 txn_date.
洛杉矶 1500 1月05-1999
圣地亚哥 250. 1月- 07 - 1999

在Udemy复习你的SQL技能

SQL不陈述

有时候,你会比自己想要的东西更清楚自己不想要的东西。在这种情况下,可以将关键字NOT添加到SQL IN语句中。NOT IN works与IN语句相反。它返回在值列表中不包含任何项的所有记录。例如,如果使用下面的NOT IN语句,可以得到与之前相同的结果。

从stroe_information中选择*,其中orther_name不在('boston','san francisco');

不陈述相当于一系列和不平等声明。我们可以将上述陈述写为以下示例,但为什么我们不应该如此简单!

选择*来自Store_Information,其中orther_name!='boston'和Store_name!='旧金山';

了解UDEMY的SQL WHERE子句的全部权力

在一起使用in and and陈述

这就是在SQL查询中使用SQL IN语句及其近亲NOT IN语句所需要知道的全部内容。您只需要记住,这些语句只对一个数据库列起作用。这意味着您的值必须具有相同的数据类型,但这是惟一的限制。

您可以使用这些语句从另一个表库中检索数据。值列表中的值可以是列名而不是文字,因为我在此处完成,但这可能会得到非常复杂。最有可能的是,当您将两个或多个表与标准化数据库组合时,您将使用此方案。

例如,如果您只需要组成一个表的选择的少数记录,但是您只知道另一个表的记录,那么您可以在SQL语句中组合使用这两个表,并使用in子句来过滤生成的数据。下面的语句从表订单中提取所有记录,这些记录在供应商表中有相应的记录。

选择订单。*来自ORDERS.ID = ORDERS.SUPPIERID的ORDERS INNER INNINE加入供应商。('ibm','hewlett packard','microsoft');

最后,您可以使用多个版本的SQL IN语句来解决更复杂的任务。这使得使用具有多个条件的多个表是轻而易举的事!您只需像下面所做的那样,将每个SQL IN语句与一个逻辑运算符链接起来。

SELECT * FROM orders INNER JOIN suppliers ON suppliers。ID =订单。suppierID供应商。supplier_name NOT IN ('IBM', 'Hewlett Packard', 'Microsoft') AND order_id IN (10000, 10001, 10003, 10005);

底线

虽然您可以在数据库中存储任何您想要的信息,但它们确实有其局限性。为了克服这些限制,庞大的SQL语言为我们提供了工具,可以用一条语句将内容重新排序。当您知道需要基于某些条件的信息时,可以在SELECT语句的WHERE子句中放置尽可能多的条件语句。但是,当这些条件涉及单一类别的数据时,您可以使用SQL IN语句来减少SQL语句的长度。

SQL IN语句是包含所需信息的简单值列表。您甚至可以添加不创建不陈述的关键字,以丢弃您不想要的任何记录。在任何一种情况下,你都会喜欢SQL的声明可以为您做些什么。

特色课程

构建数据库Web应用PHP | OOP | PDO | AJAX | MySQL

最后更新2016年8月

收视率最高
  • 总为19个小时
  • 76讲座
  • 所有级别
4.7 (172)

使用PHP, OOP, PDO, Bootstrap和AJAX |学习和构建一个功能齐全的Web应用程序的完整解决方案由Paul Amissah.

探索课程

数据库开发者工具学生也会学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求一个演示