標籤:
1整體知識介紹:mysql基本操作和使用,mysql最佳化(索引,分表等),mysql部署(讀寫分離,負載平衡等)
資料庫基本介紹:資料庫概念,常用資料庫,web應用三大軟體分工,PHP動態語言特點(處理資料),資料的存放(指令碼運行時和執行完畢),資料庫系統
關係型資料庫:概念(關係+二維表),教學系統執行個體,常見關係型資料庫,關係型資料庫特點(所有資料相同結構,沒有資料也分配儲存空間)
非關係型資料庫:索引值對型,常見非關係型資料庫,非關係型資料庫特點(記憶體運行,硬碟同步)
關係型資料庫典型概念:行row(記錄record),列col(欄位field),SQL(概念,DDL,DML(DML+DQL),DCL)
Mysql基本介紹:mysql軟體介紹(c/s結構),mysql操作步驟,用戶端的工作,mysql單獨安裝,mysql目錄及檔案介紹,mysql服務端管理(服務和mysqld.exe),用戶端串連服務端(串連認證,執行sql,退出)mysql服務管理(net,服務管理,mysqld.exe –defaults-file=my.ini路徑)
Mysql資料對象:mysql伺服器à資料庫à資料表à欄位
基本SQL操作:庫操作(create[if not exists][charset,collation],庫檔案夾介紹,資料庫命名規則,特殊名文書處理;show[like pattern],萬用字元,查看庫建立語句;drop;alter),表操作(表與欄位的依賴性;create [engine,charset],表檔案分析,表與庫的關係,保留字衝突,從已有表建立[like];show[like pattern],查看錶欄位[desc/describe/show columns from tb_name],查看錶建立語句;drop;alter [操作add/drop/modify/change][位置first after],rename to重新命名;資料操作(insert into省略欄位和選擇欄位;select from[where條件],=比較;delete from[where];update set[where];刪除和更新無法復原)
字元集:快速解決問題(set names),字元集,mysql字元集(資料存放區,資料轉送),資料存放區字元集(伺服器端,庫,表,欄位,圖解),字元集優先順序(欄位à表à庫à伺服器端),資料轉送過程字元集(圖解(用戶端clientà串連層connectionà伺服器à用戶端result),character_set變數,set names分析)
校對集:字元比較(ASCII比較),校對集工作(查看show collation),校對集設定(表選項中collate=校對集),校對集命名規則(_bin二進位,_ci[case insensitive],_cs[case sensitive]),utf8&gbk(utf8不支援中文比較,gbk支援拼音),校對集後期修改無效
儲存引擎:概覽mysql儲存引擎,主要引擎[InnoDB和MyISAM],引擎的未來發展,引擎區別(MyISAM[查詢和新增,全文索引],InnoDB[更新和刪除,事務,5.5之後全文索引],檔案區別)
亂碼問題解決:作圖(瀏覽器—PHP--mysql)
欄位(列)類型:mysql資料類型(數值型,字串型,日期時間型),數實值型別(整型[tinyint,smallint,mediumint,int,bigint],顯示寬度,0填充,無符號;浮點型[float,double],文法float(M,D),浮點支援科學計數法;定點數[decimal(M,D)],定點與浮點的儲存方式區別),字串類型(char(L);varchar(L);text;char與varchar比較表,mysql記錄總長限制,文本不受限制(10位元組);枚舉enum[值儲存,2位元組,單選,方便插入[數值或者字串],從1開始];集合set[儲存方式二進位,多選,8位元組];二進位文本),日期和時間類型(datetime[格式,8位元組儲存,時間跨度9999];date[];time[時間間隔];year[1位元組儲存,跨度1900-2155或70-69];timestamp[標準整型儲存,表現與datetime一致])
列屬性(約束):NULL(概念[與PHP不同],文法NULL/NOT NULL),預設值(default,用法,插入資料時使用default關鍵字),鍵(主鍵[primary key,唯一標識,設計表圖解,主鍵優勢,主鍵文法包括建表和修改,刪除主鍵];唯一鍵[unique key,優點,增加包含建表時和修改表結構,刪除唯一鍵平[只能通過刪除索引方式]]),自動成長(auto_increment,常用主鍵ID),注釋(comment,SQL通用注釋文法[--空格,#,/*塊注釋*/])
關係:關係分類(1:N[學生與班級對應關係,設計];M:N[教師與班級對應關係,設計];1:1[學生與學生關係])
外鍵(約束):外鍵(foreign key,學生與班級關係,外鍵功能,外鍵定義[外鍵(邏輯上),外鍵約束(文法上)],增加外鍵[建立表時和修改表結構],約束作用,刪除約束[約束名],增加約束名[constraint],約束對應的索引),外鍵約束(主表和從表,約束操作[嚴格控制restrict,置空set null,級聯cascade],約束範圍[刪除和更新],外鍵支援[InnoDB,類型嚴格一致,置空操作欄位必須可以為空白])
範式:範式定義(Normal Format),範式等級(1到6),資料庫範式(滿足到第三等級),1NF(原子性),2NF(部分依賴,複合主鍵),3NF(傳遞依賴),範式有點(通用,減低資料冗餘),逆正常化(設定必要資料冗餘,效率與磁碟空間的對抗)
進階資料操作:插入資料(選擇插入[insert into tb_name select子句],主鍵衝突[insert into … on duplicate key update],替換插入[replace into]),刪除資料(搭配orderby和limit,清空表[truncate],delete與truncate區別),修改資料(搭配orderby和limit),查詢資料(select選項[all和distinct],欄位列表[運算式,欄位別名],from子句[多表,表別名,虛擬表dual],五子句[where,group by,having,order by,limit]),where子句(操作流程,mysql布爾類型和值,運算式[關係運算子 =,in和not in,between and和not between and,is null和is not null;邏輯運算子;like運算子,萬用字元;運算子優先順序]),group by子句(分組統計,合計函數[count(對非空欄位統計),max(),min(),sum(),avg()],grou_concat(欄位)[分組專用欄位串連],group by[排序asc|desc],多欄位分組,回溯統計[with rollup]),having子句(與where功能相似,可以使用欄位別名,可以使用合計函數,與where操作資料不同),order by子句(排序,多欄位排序),limit子句(限制記錄數,指定索引位置,分頁)
聯集查詢:聯集查詢(union,結果間聯合,條件簡化,union選項[all和distinct],欄位數量一致類型無所謂[原因,var_dump看結果],union的select子句分別排序[子句需要括弧,需要配合limit])
作業:實現使用者在瀏覽器端建立資料庫,建立資料表
串連查詢:概念,串連分類(內串連[inner join [on],參與串連資料都必須存在,where替代on,預設串連方式,串連原理,where與on的區別,using去重],外串連[left/right join on,參與串連的資料有對應不上[左外保留左表資料,右外保留右表資料],full全外mysql不支援,on和using使用],交叉串連[內串連的無條件模式],自然串連[natural [left/right] join,相當與其他串連使用using,不能使用on])
子查詢:子查詢概念,功能,子查詢分類(位置分類[where,from,exists],返回形式分類[標量子查詢[單一值,用於比較],列子查詢[配合in和not in,any,all和some],行子查詢[使用括弧文法構建行],表子查詢[典型from子查詢]])
視圖:概念(虛擬表),視圖作用(查詢資料,提供介面,隱藏真實資料),視圖管理(建立[create view as select子句],刪除視圖[drop view],修改視圖[alter view v_name as select子句],查看視圖[show create view v_name,查看視圖欄位,查看視圖建立語句],視圖演算法[概念,合并演算法merge,暫存資料表temptable,未定義undefined,視圖指定演算法[create algorithm=temptable view]])
資料備份還原:匯出(select into outfile ‘路徑’,匯出檔案不能重名,欄位分隔符號[fields terminated by,enclosed by,escaped by],記錄分隔字元[lines terminated by/starting by],匯出檔案編碼),匯入(load data infile ‘路徑’ into table tb_name 選項)
資料備份:MyISAM備份,mysqldump(mysqldump用戶端,文法,表備份[庫 表 表/ -b 庫],Database Backup),還原(source,mysql庫名 表名 < sql檔案)
事務:事務目的,事務操作(開啟[start transaction],提交[commit],復原[rollback],復原點[savepoint name,rollback to name]),事務基本原理(mysql執行SQL方式[執行+提交],預設自動認可autocommit),事務安全日誌(儲存事務執行中間結果ib_logfile,InnoDB支援事務),事務特點ACID(原子性[Atomicity,事務是整體],一致性[consistency,事務前後資料完整性一致],持久性[Durability事務一旦提交,資料改變永久],隔離性[isolation,多使用者並發互不干擾,相互隔離])
觸發器:概念,文法(建立[create trigger t_name 事件時機 事件類型 on 表 for each row],事件時機[before,after],事件類型[insert,delete,update],mysql不支援在同一事件上建立多個出發程式;刪除[drop trigger t_name];擷取觸發程式相關記錄[old,new],分支結構[if 條件 then 代碼 end if],多語句[begin,end],語句結束符)
變數:系統變數,自訂變數(set,使用變數,select into,變數賦值符[:=]),變數有效期間,變數範圍
SQL函數:內建函數(substring,char_length,length,instr,lpad,insert,strcmp),自訂函數(概念,函數要素[函數名,參數列表,函數體,傳回值],文法[建立create function f_name(參數列表) returns 傳回值類型],調用函數[select f_name(參數)],分支結構,迴圈結構[標籤],內部定義變數[全域變數@var,局部變數declare var],中斷(leave,iterate))
預存程序:概念,與函數的區別,文法(建立[create procedure pr_name(過程參數in out inout)],過程參數類型,程序呼叫call)
Mysql使用者管理:root密碼忘記(重裝,mysql系統管理使用者的表user),重設root密碼(帶參數重啟服務[--skip-grant-tables],無密碼登入,修改使用者表root密碼[update set],密碼編譯演算法[sha1,md5,password(),重啟]),普通使用者管理(建立使用者[create user user_name[ identified by ‘密碼’],使用者名稱形式[[email protected]]],刪除使用者[drop user [email protected]]),設定使用者權限(添加[grant 許可權列表 on 表名 to 使用者],許可權列表,表名表示方法,特殊許可權[all privileges],重新整理緩衝[flush privileges,flush tables],刪除使用者權限[revoke 許可權列表 on 表名 from 使用者])
索引:概念,mysql索引類型[主鍵索引,唯一索引,全文索引,普通索引,複合索引]
PHP操作mysql:PHP變身用戶端,開啟該擴充,典型擴充(mysql,mysqli,pdo-mysql),libmysql.dll(串連服務提供者),查看mysql是否載入(PHPinfo),PHP操作mysql(串連認證mysql_connect(),準備和發送sql語句mysql_query,處理執行結果mysql_fetch_assoc(),釋放資源[結果集],關閉串連mysql_close()),mysql_query(mysql_query傳回值[布爾型,結果集],有傳回值的語句[select,show,desc],沒有傳回值的語句[insert,update,delete ,DDL]),其他常用函數(mysql_errno(),mysql_error(),常見處理方式,mysql_fetch_array(),mysql_fetch_row()的區別,mysql_data_seek(),Mysql_affected_rows,Mysql_insert_id)
功能:註冊成功跳轉,分頁(一次性,limit)
mysql核心知識要點