sql與或非
⑴ sql中,or與and 的運算級別是不是一樣的
不一樣,and優先順序比or高。
or 優先順序:倒數第一
and 優先順序:倒數第二
select * fromAAwhere a >1 or b>1 and C>1
等同於:
select * fromAAwhere a >1 or (b>1 and C>1 )
如果你只想a>1和c>1建立或關系,則需要寫為:
select * from AA where(a>1 or b>1 )and C>1
結果:運算級別從高到低,or比and低兩級,中間隔了個XOR
註:不僅僅是在Sql Server中,電路中、編程語言中都是and的優先順序高於or。
⑵ 為資料庫,於,或,非用字母怎麼表示
資料庫中這些屬於邏輯運算符號
與運算一般用and表示
或運算用or
非運算用not表示。
⑶ sql 運算符
http://ke..com/view/425996.htm
個人覺得運算符並不多.網路下就知道啦
比較運算符
含義(示例)
=(等號) 等於 (A1=B1)
>(大於號) 大於 (A1>B1)
<(小於號) 小於 (A1<B1)
>=(大於等於號) 大於或等於 (A1>=B1)
<=(小於等於號) 小於或等於 (A1<=B1)
<>(不等號) 不相等 (A1<>B1)
下邊的連接不知道對你有沒有用去看看咯
http://wenku..com/view/aa243ff5f61fb7360b4c65e6.html
⑷ SQL 非0and非 null 查詢問題
用where篩選一下不可以么?
非零表示為;欄位名 <> 0
非空表示為;欄位名 is not null
條件之間用 or(或)連接起來就可以了
⑸ SQL Server聚集索引或非聚集索引在什麼情況下才能使用
當索引值唯一時,使用聚集索引查找特定的行也很有效率。 例如,使用唯一雇員 ID 列 emp_id 查找特定雇員的最快速的方法,是在 emp_id 列上創建聚集索引或 PRIMARY KEY 約束。
⑹ SQL語句的WHERE中,滿足多個不等於的條件
題目有問題,或者作者sql再運行時寫錯了。猜測:
1.作者想要的結果是,id等於xx但是name不等於yy記錄,這樣查詢出三個結果是正確的,where條件應該寫成where id='xx' and name<>'yy'
2.作者想要的結果是id不等於xx並且name不等於yy的記錄,這樣查詢出的結果應該是一條,就是那條yy bb的記錄,where條件沒問題,where id<>'xx' and name<>'yy'
3.樓上各位,與或非的轉換,再sql里就是and和or的轉換,等於和不等於的轉換。如,id='xx' and name='yy'等價於(id<>'xx' or name<>'yy')
4.作者的「不等號」,建議使用「!=」,不知道你用的是什麼資料庫,會不會是「<>」有問題了。
⑺ SQL中一個表可以有幾個聚集索引或非聚集索引
一個表只能有一個聚集索引,可以有多個非聚集索引
下面是聚集索引和非聚集索引的詳細介紹:
聚集索引基於數據行的鍵值在表內排序和存儲這些數據行。每個表只能有一個聚集索引,因為數據行本身只能按一個順序存儲。有關聚集索引體系結構的詳細信息,請參閱聚集索引結構。
每個表幾乎都對列定義聚集索引來實現下列功能:
可用於經常使用的查詢。
提供高度唯一性。
注意:
創建 PRIMARY KEY 約束時,將在列上自動創建唯一索引。默認情況下,此索引是聚集索引,但是在創建約束時,可以指定創建非聚集索引。
可用於范圍查詢。
如果未使用 UNIQUE 屬性創建聚集索引,資料庫引擎將向表自動添加一個 4 位元組的 uniqueifier
列。必要時,資料庫引擎將向行自動添加一個 uniqueifier 值以使每個鍵唯一。此列和列值供內部使用,用戶不能查看或訪問。
查詢注意事項
在創建聚集索引之前,應先了解數據是如何被訪問的。考慮對具有以下特點的查詢使用聚集索引:
使用運算符(如 BETWEEN、>、>=、< 和
<=)返回一系列值。
使用聚集索引找到包含第一個值的行後,便可以確保包含後續索引值的行物理相鄰。例如,如果某個查詢在一系列銷售訂單號間檢索記錄,SalesOrderNumber
列的聚集索引可快速定位包含起始銷售訂單號的行,然後檢索表中所有連續的行,直到檢索到最後的銷售訂單號。
返回大型結果集。
使用 JOIN 子句;一般情況下,使用該子句的是外鍵列。
使用 ORDER BY 或 GROUP BY 子句。
在 ORDER BY 或 GROUP BY
子句中指定的列的索引,可以使資料庫引擎不必對數據進行排序,因為這些行已經排序。這樣可以提高查詢性能。
列注意事項
一般情況下,定義聚集索引鍵時使用的列越少越好。考慮具有下列一個或多個屬性的列:
唯一或包含許多不重復的值
例如,雇員 ID 唯一地標識雇員。EmployeeID 列的聚集索引或 PRIMARY KEY
約束將改善基於雇員 ID 號搜索雇員信息的查詢的性能。另外,可對
LastName、FirstName、MiddleName
列創建聚集索引,因為經常以這種方式分組和查詢雇員記錄,而且這些列的組合還可提供高區分度。
按順序被訪問
例如,產品 ID 唯一地標識 AdventureWorks2008R2 資料庫的
Proction.Proct 表中的產品。在其中指定順序搜索的查詢(如 WHERE ProctID BETWEEN 980
and 999)將從 ProctID 的聚集索引受益。這是因為行將按該鍵列的排序順序存儲。
由於保證了列在表中是唯一的,所以定義為 IDENTITY。
經常用於對表中檢索到的數據進行排序。
按該列對表進行聚集(即物理排序)是一個好方法,它可以在每次查詢該列時節省排序操作的成本。
聚集索引不適用於具有下列屬性的列:
頻繁更改的列
這將導致整行移動,因為資料庫引擎必須按物理順序保留行中的數據值。這一點要特別注意,因為在大容量事務處理系統中數據通常是可變的。
寬鍵
寬鍵是若干列或若干大型列的組合。所有非聚集索引將聚集索引中的鍵值用作查找鍵。為同一表定義的任何非聚集索引都將增大許多,這是因為非聚集索引項包含聚集鍵,同時也包含為此非聚集索引定義的鍵列。
索引選項
創建聚集索引時,可指定若干索引選項。因為聚集索引通常都很大,所以應特別注意下列選項:
SORT_IN_TEMPDB
DROP_EXISTING
FILLFACTOR
ONLINE
非聚集索引包含索引鍵值和指向表數據存儲位置的行定位器。有關非聚集索引體系結構的詳細信息,請參閱非聚集索引結構。
可以對表或索引視圖創建多個非聚集索引。通常,設計非聚集索引是為改善經常使用的、沒有建立聚集索引的查詢的性能。
與使用書中索引的方式相似,查詢優化器在搜索數據值時,先搜索非聚集索引以找到數據值在表中的位置,然後直接從該位置檢索數據。這使非聚集索引成為完全匹配查詢的最佳選擇,因為索引包含說明查詢所搜索的數據值在表中的精確位置的項。例如,為了從
Person.Person 表中查詢具有特定姓氏的人員,查詢優化器可能使用非聚集索引
IX_Person_LastName_FirstName_MiddleName;它以 LastName 作為自己的一個鍵列。查詢優化器能快速找出索引中與指定
LastName
匹配的所有項。每個索引項都指向表或聚集索引中准確的頁和行,其中可以找到相應的數據。在查詢優化器在索引中找到所有項之後,它可以直接轉到准確的頁和行進行數據檢索。
資料庫注意事項
設計非聚集索引時需要注意資料庫的特徵。
更新要求較低但包含大量數據的資料庫或表可以從許多非聚集索引中獲益從而改善查詢性能。與全表非聚集索引相比,考慮為定義完善的數據子集創建篩選索引可以提高查詢性能、降低索引存儲開銷並減少索引維護開銷。
決策支持系統應用程序和主要包含只讀數據的資料庫可以從許多非聚集索引中獲益。查詢優化器具有更多可供選擇的索引用來確定最快的訪問方法,並且資料庫的低更新特徵意味著索引維護不會降低性能。
聯機事務處理應用程序和包含大量更新表的資料庫應避免使用過多的索引。此外,索引應該是窄的,即列越少越好。
一個表如果建有大量索引會影響
INSERT、UPDATE、DELETE 和 MERGE
語句的性能,因為當表中的數據更改時,所有索引都須進行適當的調整。
查詢注意事項
在創建非聚集索引之前,應先了解訪問數據的方式。考慮對具有以下屬性的查詢使用非聚集索引:
使用 JOIN 或 GROUP BY
子句。
應為聯接和分組操作中所涉及的列創建多個非聚集索引,為任何外鍵列創建一個聚集索引。
不返回大型結果集的查詢。
創建篩選索引以覆蓋從大型表中返回定義完善的行子集的查詢。
包含經常包含在查詢的搜索條件(例如返回完全匹配的 WHERE 子句)中的列。
列注意事項
考慮具有以下一個或多個屬性的列:
覆蓋查詢。
當索引包含查詢中的所有列時,性能可以提升。查詢優化器可以找到索引內的所有列值;不會訪問表或聚集索引數據,這樣就減少了磁碟
I/O 操作。使用具有包含列的索引來添加覆蓋列,而不是創建寬索引鍵。有關詳細信息,請參閱
具有包含列的索引
。
如果表有聚集索引,則該聚集索引中定義的列將自動追加到表上每個非聚集索引的末端。這可以生成覆蓋查詢,而不用在非聚集索引定義中指定聚集索引列。例如,如果一個表在
C 列上有聚集索引,則 B 和 A 列的非聚集索引將具有其自己的鍵值列 B、A 和 C。
大量非重復值,如姓氏和名字的組合(前提是聚集索引被用於其他列)。
如果只有很少的非重復值,例如僅有 1 和
0,則大多數查詢將不使用索引,因為此時表掃描通常更有效。對於這種類型的數據,應考慮對僅出現在少數行中的非重復值創建篩選索引。例如,如果大部分值都是
0,則查詢優化器可以對包含 1 的數據行使用篩選查詢。
索引選項
在創建非聚集索引時,可以指定若干索引選項。要尤其注意以下選項:
FILLFACTOR
ONLINE
⑻ sql里<> 符號是什麼意思
sql 語句中 || 符號是連接的意思,相當於字元串中的連接符。
SQL中常見的符號:
1、=表示 等於。
2、<> 表示不等於。
3、> 表示大於。
4、< 表示小於。
5、>= 表示大於等於。
6、<= 表示小於等於。
7、BETWEEN表示在某個范圍內。
(8)sql與或非擴展閱讀:
常用的SQL語句:
1、顯示當前資料庫伺服器中的資料庫列表:mysql> SHOW DATABASES。注意:mysql庫裡面有MYSQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
2、進入資料庫:mysql> USE 庫名。
3、顯示資料庫中的數據表:mysql> SHOW TABLES。
4、顯示數據表的結構:mysql> DESCRIBE 表名。
5、建立資料庫:mysql> CREATE DATABASE 庫名。
6、建立數據表:mysql> USE 庫名;mysql> CREATE TABLE 表名 (欄位名 VARCHAR(20), 欄位名 CHAR(1))。
⑼ SQL聚集索引和非聚集索引的區別
聚集索引:
將正文內容本身就是一種按照一定規則排列的目錄稱為「聚集索引」
非聚集索引:
將目錄純粹是目錄,正文純粹是正文的排序方式稱為「非聚集索引」
何時使用聚集索引或非聚集索引?
舉個例子:
返回某范圍內的數據一項。
某個表有一個時間列,把【聚合索引】建立在該列,這時查詢2017年1月1日至2017年8月1日之間的全部數據時,這個速度是很快的,因為這本字典正文是按日期進行 排序的,聚類索引只需要找到要檢索的所有數據中的開頭和結尾數據即可。
而不像非聚集索引,必須先查到目錄中查到每一項數據對應的頁碼,然後再根據頁碼查到 具體內容。
⑽ SQL語句里有沒有 與,或,非 等邏輯運算
與:and;
或:or ;
至於非怎麼說呢,感覺好像是沒有的。不等於的話可以用<>;不為空的的is not null;