1.視圖(設定、特點、用途)
1.視圖是基於Sql語句的結果集的可視化的表;
2.視圖沒有實際的物理記錄;
3.視圖是查看數據表的另一種方法,從安全角度看,它可以防止用戶接觸數據表;
4.視圖的建立和刪除,隻對視圖本身影響,不影響對應的基本表;對視圖數據的更新會轉化為實際表的更新;
2.存儲引擎
1.不同的存儲引擎提供不同的存儲機制、索引技巧、鎖定水平等功能。
2.使用show engines \G;可以查看Mysql支持的引擎類型;
1.innoDB
特點:1.支持事務,支持行鎖和外鍵
2.為處理巨大數據量的最大性能設計
3.innoDB將表和索引放在一個邏輯表空間中
4.如果沒有指定主鍵,它會自動為每行生成一個6字節的ROWID,作為主鍵
2.MyISAM
特點:1.有較高的插入、查詢速度,不支持事務
2.使用MyISAM創建資料庫,將產生3個文件。文件的名字以表的名字開始,擴展名指出文件類型:存儲表設定的文件的擴展名是.frm,數據文件的擴展名為.MYD,索引文件的擴展名是.MYI。
適用於:處理較多的插入查詢操作,能夠提供較高的效率
3.MEMORY
特點:將表中數據存在內存。
適用於:臨時存放數據,數據量不大,不需要較高的數據安全性--臨時表
4.Archive
特點:支持高並發的插入操作,但本身不是事務安全的
適用於:存儲歸檔數據,如記錄日志
3.索引
1.索引是在存儲引擎中實現的,因此,每種存儲引擎的索引都不一定完全相同,並且每種存儲引擎也不一定支持所有索引類型。
2.所有存儲引擎支持每個表至少16個索引,總索引長度至少256個字節
3.InnoDB和MyISAM都隻支持BTREE索引,MEMORY和HEAP支持BTREE和HASH索引
1.索引的分類
1.普通索引和唯一索引
1.普通索引允許索引列有重復和空值;
2.唯一索引允許空值,不能有重復;
2.單個索引和組合索引
1.單個索引隻包含一列,組合索引則包含多列
2.組合索引,隻有當查詢條件使用瞭這些字段左邊的字段時,索引才會被使用
3.全文索引
1.在索引列上支持值得全文查找,一般在text,varchar,char類型的列上使用
2.索引列上允許空值和重復
3.Mysql中隻有MyISAM引擎支持全文索引
4.空間索引
2.設計索引的準則
1.避免在經常更新的表上使用過多的索引;
2.不要在數據量少的表上使用索引;
3.不要在不同值較少的列上使用索引;
4.在頻繁排序分組的列上使用索引;
4.函數
1.數學函數
1.radians()/degrees():角度轉弧度/弧度轉角度
2.sign():返回數字的符號(-1,0,1)
3.rand():隨機0.0~1.0
2.字符串函數
1.char_length():計算字符串字符個數;
length():計算字符串字節個數(使用utf8時,一個漢字3個字節,一個數字或字母一個字節);
2.concat(s1,s2,..):連接所有參數。如果參數中有一個null,則結果為null;
concat_ws(x,s1,s2,...):x作為參數連接的分隔符連接所有參數,如s1xs2...。如果分隔符為Null,則結果為null;如果參數中有null,則會自動忽略。
3.insert(s1,a,b,s2):返回的結果是從s1的第a位(從1開始)開始,用s2替換s1的b個字符。如果a大於s1字符串的長度,則返回s1。
如:select insert("hello",2,3,"what")==>hwhato
4.lower()/lcase():將字符串全部轉化為小寫;
upper()/ucase():將字符串全部轉化為大寫;
5.left(str,n);right(str,n);substring(str,n,len)/mid(str,n,len)
6.ltrim();rtrim();trim();trim(s1 from s)
7.repeat(str,n);space(n);replace(s,s1,s2)
8.strcmp(s1,s2):比較兩個字符串,返回-1,0,1
9.locate(str1,str)/position(str1 in str)/instr(str,str1):返回str1在str中的位置
10.reverse(str)