---恢復內容開始---
整體知識介紹: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數據對象: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 庫],數據庫備份),還原(source,mysql庫名 表名 < sql文件)
事務:事務目的,事務操作(開啟[start transaction],提交[commit],回滾[rollback],回滾點[savepoint name,rollback to name]),事務基本原理(mysql執行SQL方式[執行+提交],默認自動提交autocommit),事務安全日志(保存事務執行中間結果ib_logfile,InnoDB支持事務),事務特點ACID(原子性[Atomicity,事務是整體],一致性[consistency,事務前後數據完整性一致],持久性[事務一旦提交,數據改變永久],隔離性[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 ‘密碼’],用戶名形式[username@host]],刪除用戶[drop user username@host]),
設置用戶權限(添加[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)
---恢復內容結束---