資料庫在進行字元患上 比較時,缺省會去掉字串尾部的空格,且大小寫不敏感,即:
select 'a'='a '; selct 'aa'='aa';結果都是1;但selct 'a'=' a';結果為0,字串前面的空格不保留。
多表查詢:
left join以左表為基礎,即左表內容,右表匹配不上的顯示null,如果where字句包含了右表資訊,剛右表匹配不上的則捨棄該行。就類似inner join。
right join類似如上
inner join左右兩表交集。
主鍵和索引:
所謂主鍵,就是可以唯一標識表中一行記錄的屬性或屬性組。乙個表只能有乙個主鍵,但可以有多個索引。
***主鍵可以保證記錄的唯一及非空,資料庫管理系統會為主鍵自動生成唯一索引,所以主鍵是一種特殊的索引。
***主鍵是邏輯鍵,而索引是物理鍵,也即主鍵不實際存在,而索引實際存在資料庫中。
索引,用來快速地查詢那些具有特定值的記錄,mysql索引都是用b樹形式儲存。
***對於索引中的每一項,mysql在內部為它儲存乙個資料檔案中實際記錄所在位置的「指標」。當使用索引查詢時會先查詢索引表,然後再根據查出的結果找到資料表中對應的記錄。
***索引分為:普通索引、唯一索引(unique)、主鍵、全文索引。
***索引也還有個稱為最左字首(leftmost prefixing)的概念,意即,如果我們有乙個firstname、lastname、age列上的多列索引,我們稱這個索引為fname_lname_age。當搜尋條件是以下各種列的組合時,mysql將使用fname_lname_age索引:
firstname,lastname,age
firstname,lastname
firstname
從另一方面理解,它相當於我們建立了(firstname,lastname,age)、(firstname,lastname)以及(firstname)這些列組合上的索引。下面這些查詢都能夠使用這個fname_lname_age索引。
***另mysql只有對以下操作符才使用索引:<,<=,=,>,>=,between,in,以及某些時候的like。可以在like操作中使用索引的情形是指另乙個運算元不是以萬用字元(%或者_)開頭的情形。例如,「select peopleid from people where firstname like 'mich%';」這個查詢將使用索引,但「select peopleid from people where firstname like '%ike';」這個查詢不會使用索引。
資料庫小點點
0.1.oracle語法查詢 裝了oracle之後,在 oracle ora92 安裝的主目錄 jdbc lib下面的 classes12.jar 或者 classes12.zip裡面這個是9i的,還有10g 也在同樣的目錄下。比如我的10g的 f oracle product 10.2.0 db ...
一點點資料庫優化
優化方向 1 資料庫設計 基本支援三正規化 2 新增索引 索引原理 索引以b tree為排序的資料結構,運用二叉樹演算法折半查詢,高效查詢,效率提公升2的n次方 mysql例 索引型別 主鍵索引,唯一索引,全文索引 innodb不支援 組合索引,普通索引 執行查詢計畫 explain 檢視查詢是否使...
資料庫 資料庫索引
索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...