資料庫in表示什麼
『壹』 access資料庫查詢里in的用法和等號有什麼區別
如果子查詢只有1條記錄,in和=是沒有區別,如果子查詢有多條記錄,用=會出錯的,所以in是無論只查詢有多少條記錄都可以使用,而=只有當子查詢只有1條記錄的時候才能使用
in和exists理解上其實是差不多,但對資料庫而言,in的執行順序是先執行只查詢條件,然後把記錄和外查詢核對,找符合條件的,
而exists是先執行外查詢,再執行子查詢,找到外查詢記錄後和只查詢對比符合條件的,
如果外查詢和子查詢的條目數差異很大,那麼效率相差很明顯的
『貳』 in在sql中是什麼意思
select * from table where id in (1,3,5)
查詢表裡 id 是1 或者3 或者5 的記錄
select * from table where name in ('小明','小紅','小麗')
查詢表裡 name 等於 小明 或者小紅 或者 小麗的記錄
還有not in
『叄』 access中in函數是什麼意思
in和=是沒有區別,如果子查詢有多條記錄,用=會出錯的,所以in是無論只查詢有多少條記錄都可以使用,而=只有當子查詢只有1條記錄的時候才能使用
in和exists理解上其實是差不多,但對資料庫而言,in的執行順序是先執行只查詢條件,然後把記錄和外查詢核對,找符合條件的,
而exists是先執行外查詢,再執行子查詢,找到外查詢記錄後和只查詢對比符合條件的,
如果外查詢和子查詢的條目數差異很大,那麼效率相差很明顯的。
『肆』 資料庫中in的用法
資料庫中in的用法的用法你知道嗎?下面我就跟你們詳細介紹下資料庫中in的用法的用法,希望對你們有用。
資料庫中in的用法的用法如下:
IN:確定給定的值是否與子查詢或列表中的值相匹配。
IN 關鍵字使您得以選擇與列表中的任意一個值匹配的行。
SELECT ProctID, ProctName FROM Northwind.dbo.Procts WHERECategoryID IN (1, 4, 5)
IN 關鍵字之後的項目必須用逗號隔開,並且括在括弧中。
NOT IN:通過 NOT IN關鍵字引入的子查詢也返回一列零值或更多值。
以下查詢查找沒有出版過商業書籍的出版商的名稱。
SELECTpub_name FROM publishers WHERE pub_id NOT IN (SELECT pub_id FROM titles WHEREtype = 'business')
使用 EXISTS和 NOT EXISTS引入的子查詢可用於兩種集合原理的操作:交集與差集。兩個集合的交集包含同時屬於兩個原集合的所有元素。
差集包含只屬於兩個集合中的第一個集合的元素。
EXISTS:指定一個子查詢,檢測行的存在。
SELECT DISTINCT pub_name FROM publishers WHERE EXISTS (SELECT *FROM titles WHERE pub_id = publishers.pub_id AND type =
'business')
SELECTdistinct pub_name FROM publishers WHERE pub_id IN (SELECT pub_id FROM titlesWHERE type = 'business')
兩者的區別:
EXISTS:後面可以是整句的查詢語句如:SELECT *FROM titles
IN:後面只能是對單列:SELECTpub_id FROM titles
NOT EXISTS:
例如,要查找不出版商業書籍的出版商的名稱:
SELECTpub_name FROM publishers WHERE NOT EXISTS (SELECT * FROM titles WHERE pub_id =publishers.pub_id AND type =
'business')
下面的查詢查找已經不銷售的書的名稱:
SELECT titleFROM titles WHERE NOT EXISTS (SELECT title_id FROM sales WHERE title_id =titles.title_id)
例子:
//驗證有發布產品的公司個數
select id,name from company where exists (select * from proct where comid=company.id)
select id,name from company where id in(select comid from proct)
//驗證沒有發布產品的公司個數
select id,name from company where not exists (select * from proct where comid=company.id)
select id,name from company where id not in(select comid from proct)
『伍』 sql中in和exist語句的區別
兩者都能實現表功能查詢,主要區別如下:
1、適用表的類型不同。
in是子查詢為驅動表,外面的表為被驅動表,故適用於子查詢結果集小而外面的表結果集大的情況。
exists是外面的表位驅動表,子查詢裡面的表為被驅動表,故適用於外面的表結果集小而子查詢結果集大的情況。
2、子查詢關聯不同。
exists一般都是關聯子查詢。對於關聯子查詢,必須先執行外層查詢,接著對所有通過過濾條件的記錄,執行內層查詢。外層查詢和內層查詢相互依賴,因為外層查詢會把數據傳遞給內層查詢。
in則一般都是非關聯子查詢,非關聯子查詢則必須先完成內層查詢之後,外層查詢才能介入。
3、執行次數不同。
IN 語句:只執行一次,確定給定的值是否與子查詢或列表中的值相匹配。in在查詢的時候,首先查詢子查詢的表,然後將內表和外表做一個笛卡爾積,然後按照條件進行篩選。所以相對內表比較小的時候,in的速度較快。
EXISTS語句:執行次數根據表的長度而定。指定一個子查詢,檢測行的存在。遍歷循環外表,然後看外表中的記錄有沒有和內表的數據一樣的。匹配上就將結果放入結果集中。
『陸』 mysql 中 in的用法有哪些
1.in 後面是記錄集,如:
select*fromtablewhereunamein(selectunamefromuser);
2.in 後面是字元串,如:
select*fromtablewhereunamein('aaa',bbb','ccc','ddd','eee',ffff'');
注意:這里一定要將字元串用單引號'' 標注起來;
3.in 後面是數組,用如下方法,請參考:
php">//$pieces是含數據的數組
for($i=0;$i<count($pieces);$i++){
$uname=$uname."'".$pieces[$i]."',";
}
$the_uname="unamein(".$uname."'')";
select*fromtablewhere".$the_uname.";
備註:這種方法的原理其實很簡單,二就是把數組編程上面「第2種情況」的形式。
『柒』 資料庫in的用法
資料庫in的用法的用法你知道嗎?下面我就跟你們詳細介紹下資料庫in的用法的用法,希望對你們有用。
資料庫in的用法的用法如下:
MySQL IN 語法
IN 運算符用於 WHERE 表達式中,以列表項的形式支持多個選擇,語法如下:
WHERE column IN (value1,value2,...)
WHERE column NOT IN (value1,value2,...)
當 IN 前面加上 NOT 運算符時,表示與 IN 相反的意思,即不在這些列表項內選擇。
IN 使用實例
選取 uid 為 2、3、5 的用戶數據:
SELECT * FROM user WHERE uid IN (2,3,5)
返回查詢結果如下:
uid
username
password
regdate
2 小明 [email protected] 1278063917
3 Jack [email protected] 1278061380
5 5idev [email protected] 1291107029
IN 子查詢
更多情況下,IN 列表項的值是不明確的,而可能是通過一個子查詢得到的:
SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=0)
在這個 SQL 例子里,我們實現了查出所有狀態為 0 的用戶(可能是被禁止)的所有文章。首先通過一個查詢得到所有所有 status=0 的用戶:
SELECT uid FROM user WHERE status=0
然後將查詢結果作為 IN 的列表項以實現最終的查詢結果,注意在子查詢中返回的結果必須是一個欄位列表項。
IN 運算符補充說明
IN 列表項不僅支持數字,也支持字元甚至時間日期類型等,並且可以將這些不同類型的數據項混合排列而無須跟 column 的類型保持一致:
SELECT * FROM user WHERE uid IN(1,2,'3','c')
一個 IN 只能對一個欄位進行范圍比對,如果要指定更多欄位,可以使用 AND 或 OR 邏輯運算符:
SELECT * FROM user WHERE uid IN(1,2) OR username IN('admin','5idev')
使用 AND 或 OR 邏輯運算符後,IN 還可以和其他如 LIKE、>=、= 等運算符一起使用。
關於 IN 運算符的效率問題
如果 IN 的列表項是確定的,那麼可以用多個 OR 來代替:
SELECT * FROM user WHERE uid IN (2,3,5)
// 等效為:
SELECT * FROM user WHERE (uid=2 OR aid=3 OR aid=5)
一般認為,如果是對索引欄位進行操作,使用 OR 效率高於 IN,但對於列表項不確定的時候(如需要子查詢得到結果),就必須使用 IN 運算符。另外,對於子查詢表數據小於主查詢的時候,也是適用 IN 運算符的。
『捌』 mysql存儲過程中的 out和in是什麼意思呢
out 表示輸出的參數,存儲過程調用 代碼 需要獲得此參數值。
in 表示輸入參數,默認為in
『玖』 資料庫中IN 和EXISTS有什麼區別
在SQL中,同樣的查詢很多情況下,既可以用in的用法來寫,也可以用exists來寫。in寫法比exists的寫法要容易讀,好理解,但是當數據量大的時候,exists的效率要遠高於in的寫法。