Mysql
php階段將數據庫分為三個階
基礎階段:
mysql數據庫的基本操作(增刪改查),以及一些高級操作(視圖,觸發器,函數,存儲過程等),PHP操作沒有sql數據庫。
優化階段:
如何提高數據庫效率,如索引,分表等。
部署階段:
如何搭建真實的系統環境,如服務集群,負載均衡。
數據庫基礎
什么是數據庫:
數據庫:database ,存儲數據的倉庫(高效的存儲和處理數據庫的介質如磁盤、內存)
數據庫分類:
1,關系型數據庫:(sql型)
2,非關系型數據庫(nomysql型)not only
不同數據卡產品:
關系型數據庫:大型:Oracle ,DB2
中型:SQLserver,Mysql
小型:access
非關系型數據庫:mencahed,moogodb,redis2
數據庫的區別->兩種陣營
關系型database:安全(保存在磁盤,不會丟失),浪費空間。
非關系型數據庫:效率高(不夠安全)
關系型數據庫:
1,什么是關系型數據庫:
建立在關系模型上的數據庫(數學模式)
關系模型:建立在關系上的模型,三個方面。
1,數據結構:數據存儲問題,二維表的行列結構
2,Sql指令集合:sql語句。
3,完整性約束:表內數據約束,表與表之間的約束。
2,關系型數據庫的設計:
關系型數據庫:從需要存儲的數據需求分析,如果是一類數據(實體)->設計成二維表->表頭(字段名field)和數據部分(實際存儲單元);
二維表:行與列,
例:
表頭 |
字段1 |
字段2 |
字段3 |
數據單元 |
數據1 |
數據2 |
數據3 |
實際案例:教師負責講學,教學生,在教室。
1,找出實體。教師表,學生表,教室表。
2,找出實體數據信息: (教師)姓名,性別,年齡,工資
(學生)姓名,性別,年齡,學號
(班級)班級編號,教室號
3,關系型數據庫:維護實體內部、實體與實體之間的聯系。
1,實體內部的聯系:每個學生都有姓名、性別、學科、學號。
學生表
姓名 |
性別 |
學號 |
學科 |
班名 |
張三 |
男 |
001 |
軟件工程 |
軟件工程001 |
小強 |
女 |
001 |
機械工程 |
機械工程001 |
第二行所有字段:都是在描述張三這個學生(內部聯系)第二列只能是性別(內部約束)。
關系型數據庫特點之一:如果表對應的某個字段沒有值(數據),但是系統依然要分配存儲空間;關系型數據庫比較浪費空間。
實體與實體之間的聯系:每個學生肯定屬於某個班級,每個班級肯定有多個學生。
班名 |
教室編號 |
軟件工程001 |
001 |
機械工程001 |
002 |
班級實體與學生實體之間的聯系:實體與實體之間的聯系
3,關鍵字說明:
數據庫:database
數據庫系統:DBS (database system):虛擬系統,將多種內容關聯起來的稱呼
DBS=DBMS+DB
DBMS:database mangerment system數據庫管理系統,專門管理數據庫。
DBA:database Administrator 數據庫管理員。
行/記錄:row/record本質是一個東西->表中的一個記錄,行是從結構角度出發,記錄從數據角度出發。
列/字段 column/filed,本質是一個東西。
SQL:
Structured Query language(結構化查詢語言)數據庫以查詢為主,98%都是查詢操作。
SQL分為三個部分:
DDL:data Definition Language 數據定義語言-->用來維護存儲數據的結構(數據庫,表)
代表指令:create ,drop ,alter
DML:data manipulation Language 數據庫操作語言-->用來對數據進行操作(數據表中的內容)
代表指令:insert delete updata等其中DML內部又進行分類:DQL(database Query Language)數據查詢語言,如select。
DCL:data contral Language 數據控制語言-->主要負責權限的管理(用戶)
代表指令:grant ,revoke等。
SQL簡介:
Sql是關系型數據庫的操作指令
Sql是一種約束,但不強制(類似玩w3c組織)如Oracle,mysql內部有細微的區別。
Mysql:
Mysql數據庫是一種c/s結構,客戶端/服務端若想要訪問服務器必須通過客戶端(服務器一直運行,客戶端在需要的時候運行),
交互方式
1,客戶端連接認證:連接服務器認證身份
2,發送sql指令
3,服務器接受服務器指令,處理sql指令返回操作結果。
4,客戶端接受操作結果,顯示結果。
5,斷開連接(釋放資源,服務器並發限制)。
Mysql服務器對象
沒有辦法完全理解服務器內部的內容:
只能粗略的分析數據庫服務器內部結構
將mysql數據庫分為四層:
系統(DBMS)->數據庫(BD)->數據表(table)->字段(filed)
SQL基本操作:
基本操作:CRUD
將sql的基本操作根據對象分為三類
1,庫操作2,表操作3,數據操作
庫操作:
數據庫的增刪改查。
新增數據庫:create database 庫名 [庫選項]
庫選項:約束數據庫,分為兩個選項。
字符集的設定:charset /character set +具體字符集(數據存儲的編碼格式,一般兩種格式GBK和utf8)
校對集設定:collate +具體校對集(數據庫比較規則)
-- 雙中下划線注釋(單行注釋,也可以用#)
其中數據庫不能用關鍵字(已經被使用的字符或保留字(將來可能會用到))。