mysql深入理解二

2021-06-10 08:11:18 字數 1639 閱讀 4988

過濾資料

本章講授如何使用select語句的where 子句指定的搜尋條件。資料庫表一般包含

大量的資料,很少需要檢索表中所有的行。通常只會根據特定操作或報告的需要

提取資料的子集。只檢索所需資料需要的指定搜尋條件(search criteria) ,搜尋條

件也稱為過濾條件(filter condition)。

selecct prod_name ,prod_price  from products where prod_price = 2.50;

這條語句從products 表中檢索兩個列,但不返回所有行,只返回prod_price

值為2.50 的行。

where 子句的位置 在同時使用order by 和where 子句的時侯,應該讓order by

位於where 之後,否則將會產生錯誤。

1     and操作符

為了不止乙個列進行過濾,可使用and操作符給where子句附加條件

select prod_id ,prod_price ,prid_name from products

where vend_id = 1003 and prod_price <= 10;

此sql語句檢索由**商1003 製造且**小於等於 10 美元的所有產品的名稱

和**。

上述例子中使用了只包含乙個關鍵字的and 的語句,把連個過濾條件組合在一

起。還可以新增多個過濾條件,沒新增一條就要使用乙個and。

2      or操作符

or操作符與and不同,它指示mysql檢索匹配任一條件的行。

select prod_name ,prod_price from products  where vend_id = 1002 or vend_id

=1003;

此sql語句檢索由任乙個指定**商1002 或者1003製造的所有產品的產品名和價 格。

select prod_name,prod_price from products

where vend_id =1002 or vend_id = 1003 and prod_price >=10; 和

select prod_name,prod_price from products

where (vend_id =1002 or vend_id = 1003) and prod_price >=10;

結果可能不一樣,因為and的優先順序比or高;

3     in操作符

圓括號在where 子句中還有另外一種用法。in操作符用來指定條件範圍,範圍中

的每個條件都可以進行匹配。in 取合法值的由逗號分隔的清單全部都在圓括號中 。

select prod_name,prod_price from products where vend_id in(1002 ,1003) order

by prod_

name;

in的功能和or一樣

4        not操作符

where 子句中的not 操作符有且只有乙個功能,那即使否定它之後跟的任何條件。

select prod_name ,prod_price  from products where vend_id not in (1002, 1003)

order by prod_name;  

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...

MySQL深入理解

儲存引擎 innodb表引擎 myisam表引擎 其他的表引擎 索引 索引對效能的影響 索引的使用場景 索引的型別 對比說明 mysql索引的建立原則 mysql索引的注意事項 查詢優化 查詢分析sql查詢慢的原因 優化查詢過程中的資料訪問 避免使用如下sql語句 是否在掃瞄額外的記錄?優化長難的查...

深入理解mysql索引

三 b tree 索引是幫助mysql高效獲取資料的排好序的資料結構。mysql中索引預設的資料結構為b tree。新建兩張表test innodb 儲存引擎為innodb test myisam 儲存引擎為myisam 當進入到mysql安裝目錄下的data資料夾可以看到test innodb.f...