mysql數據庫基礎記錄

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)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *