1.5 NOT操作符

NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。

📖 NOT WHERE子句中用来否定后跟条件的关键字。

使用:

列出除1002和1003之外的所有供应商制造的产品。

输入:

SELECT prod_name , prod_price
FROM products
WHERE vend_id  NOT  IN  (1002,1003)
ORDER BY prod_name;

分析: 这里的NOT 否定跟在它之后的条件,因此,MySQL不是匹配1002和1003
的vendi_id,而是匹配 1002和1003 之外供应商的vend_id.

✏️ MySQL 中的NOT

MySQL支持使用 NOT 对 IN 、 BETWEEN 和 EXISTS
子句取反,这与多数其他DBMS允许使用NOT对各种条件取反有很大的差别。

        bs.backup_size/1024/1024/1024  AS [backup_size(GB)]
,

1、我们修改了表结构,这个更改需要删除这个表并且重新创建,当然这个过程是由系统自动完成的。

小结

本章讲授如何用AND和OR操作符组合成WHERE子句,而且还讲授了如
何明确地管理计算的次序,如何使用IN和NOT操作符。

        bs.name AS backupset_name ,

分析这句话,

1.2 OR操作符

OR操作符和AND操作符不同,他指示MSQL检索匹配任一条件的行。
输入:

SELECT  uid, week, minute 
FROM    products
WHERE  week = 1  OR  minute = 22

分析:检索week为1或者minute为22的数据。满足一个条件即可。

 AND

至于原因一,现在还未遇到。

1.组合WHERE子句

上一章介绍的WHERE子句在过滤数据时使用的都是单一条件过滤。事实上为了数据的准确性我们还可以使用多个条件进行过滤,可以使用AND子句或者OR子句的方式来完成。

📖 操作符(operator)

用来联结或改变WHERE子句中的子句的关键字。也称为逻辑运算符。

          WHEN ‘F’ THEN ‘File Backup’

可以通过设置解决的,我们先尝试更改设置。

IN操作符优点:
  1. 在使用长的合法选项清单的时,IN操作符的语法更清楚且更直观。
  2. 在使用 IN时,计算的次序更容易管理(因为使用的操作符更少)。

  3. IN 操作符一般比OR操作符清单执行更快。

  4. IN 的最大的优点是可以包含其他SEKECT语句,使的能够更动态的建立 WHERE
    语句。

        bf.physical_device_name
,

 

1.3 计算次序

SQL在处理OR操作前优先处理AND操作符。
解决方法就是使用()

输入:

SELECR prod_name,pro_price
FROM producets
WHERE wend_id = 1002 OR vand_id = 1003 AND prod_price >= 10;

改成:

SELECR prod_name,pro_price
FROM producets
WHERE (wend_id = 1002 OR vand_id = 1003) AND prod_price >= 10;

分析:

这条SELECT 语句
与前条的唯一差别是,这条语句中,前两个条件用圆括号括起来。因为圆括号具有较AND或OR操作符高的计算次序,DBMS首先过滤圆括号内的OR条件。

          WHEN ‘P’ THEN ‘Partial Backup’

2、无法保存原因一:该表无法重新创建。

1.4 IN操作符

IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全部在圆括号中。

输入:

 SELECT prod_name , prod_price
 FROM products
 WHERE vend_id IN (1002,1003)
 ORDER BY prod_name

输出:

图片 1

分析:

此SELECT语句检索供应商1002和1003制造的所有产品。IN操作符后跟又逗号分隔的合法值清单,整个清单必须扩在圆括号内。

⭐️ IN操作符和OR功能相同,但IN操作符比OR操作符执行更快

OR写法:

 SELECT prod_name , prod_price
 FROM products
 WHERE vend_id = 1002  OR vend_id =1003
 ORDER BY prod_name

以前写过一篇文章IO
is frozen on database xxx, No user action is
required“,
主要是介绍PlateSpin在服务器层面做DR备份时,SQL Server日志里面有”I/O is
frozen on database xxxx”以及“I/O
was resumed on database xxx”信息,详细信息参考那篇博客,这篇主要是从侧面一个佐证、补充!

不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。

在WHERE子句中使用圆括号

任何时候使用具有AND和OR操作符的WHERE语句,都应该使用过圆括号明确的分组操作操作符。不要过分依赖默认计算次序,即使它确实是你想要的东西也是如此

        bs.description

原因二解决方案:菜单栏->工具->选项->设计器->表设计器和数据库设计器,右侧面板,取消勾选“阻止保存要求重新创建表的更改”。

数据过滤-WHERE组合子句

本章讲授如何组合WHERE子句以建立功能更强的更高级的搜索条件。
我们还将学习如何使用NOT和IN操作符。

          WHEN 105 THEN ‘permanent backup
device’

3、无法保存原因二:启用了“阻止保存要求重新创建表的更改”选项。

1.1 AND操作符

下面的这个例子是使用AND操作符来给WHERE子句附加条件。

输入 :

SELECT  uid, week, minute 
FROM    products
WHERE  week = 1  AND  minute = 22

输出:
图片 2

分析:此SQL语句检索week为1并且minute为22数据。

📖 AND 用在WHERE子句中的关键字,用来指示检索满足所有给定的条件的行。

上述例子中使用了只包含一个关键字AND的语句,把两个过滤条件组合在一起。==还可以添加多个过滤条件,每添加一条就要使用一个AND.==

        bs.backup_start_date ,

当修改表结构时,sql server会弹出对话框,显示以下内容:

 bs.type=’D’ AND bs.database_name=’HistoryData’

         bs.backup_finish_date;

 

          WHEN ‘G’ THEN ‘File Diff’

ORDER
BY bs.database_name ,

        bs.last_lsn,

发表评论

电子邮件地址不会被公开。 必填项已用*标注