版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Mysql數(shù)據(jù)庫(kù)到精第1 MYSQL的基 數(shù)據(jù)庫(kù)的介 數(shù)據(jù)庫(kù)的分 MYSQL數(shù)據(jù)庫(kù)的安裝和配 使用命令行窗口連接MYSQL數(shù)據(jù) 關(guān)于MYSQL的其它相關(guān)的指 MYSQL數(shù)據(jù)庫(kù)的三層結(jié) SQL語(yǔ)句的分 第2 基本的語(yǔ) 創(chuàng)建數(shù)據(jù)庫(kù)的細(xì)節(jié)討 第3 數(shù)據(jù)庫(kù)的相關(guān)操 數(shù)據(jù)庫(kù)的修 布置一個(gè)課堂練 第4 創(chuàng)建表的基本語(yǔ) 快速案 第5 MYSQL數(shù)據(jù)類(lèi)一覽 MYSQL數(shù)值類(lèi)型-整 MYSQL數(shù)值類(lèi)型- MYSQL數(shù)值類(lèi)型-小 MYSQL數(shù)據(jù)類(lèi)型-字符 MYSQL數(shù)據(jù)類(lèi)型-日期和時(shí) MYSQL數(shù)據(jù)類(lèi)型-枚舉ENUM,集合 ,,音頻數(shù)據(jù)類(lèi)型怎么存 綜合練 第6 基本的介 基本的語(yǔ) 直接上案 改表的注意事項(xiàng)總 練個(gè) 第7 數(shù)據(jù)庫(kù)的CRUD操 基本的概 CRUD的一個(gè)綜合練習(xí) 晚上作 UPDATE語(yǔ) DELETE語(yǔ) 第8 SELECT語(yǔ)句的基本使 基本介 練 SELECT語(yǔ)句可以對(duì)列進(jìn)行運(yùn) 使用WHERE子句,進(jìn)行過(guò)濾查 在WHERE子句中經(jīng)常使用的運(yùn)算 課后練習(xí) ORDERBY子 GROUPBY子 第9 MYSQL函數(shù)(重點(diǎn) MYSQL函數(shù)一 日期函 字符串相關(guān)函 數(shù)學(xué)函 流程控制函 其它函 第10 查詢(xún)加強(qiáng)的說(shuō) 查看表的結(jié) 使用算數(shù)表達(dá)式加 WHERE子句的加 邏輯操作符的加 使用ORDERBY字 MYSQL的分頁(yè)查 GROUPBY和HAVING子句的加 作業(yè)的評(píng) 關(guān)于分組的關(guān)鍵字的順序問(wèn) 11作業(yè)練習(xí)-ECSHOPECS_GOODSFROM自我數(shù)12MYSQLMYSQL第13 MYSQL的約 基本的介 MYSQL的約束分 主鍵約 NOTNULL約 UNIQUE約束(唯一約束 UNIQUE細(xì) 外鍵約 CHECK約束(了解 練習(xí) 晚上練 刪除約束的講 1章mysqlmysql數(shù)據(jù)庫(kù)最重要的作用就是保存數(shù)據(jù),mysql數(shù)據(jù)庫(kù)利于數(shù)據(jù)的管理(增加,修SQLServer是微軟的產(chǎn)品,是.net程序員的最?lèi)?ài),主要用于開(kāi)發(fā)中型的項(xiàng)目,也可以開(kāi)發(fā)大Oracle是甲骨文公司javaee程序員的最?lèi)?ài),主要用于開(kāi)發(fā)中型的項(xiàng)目,也可以開(kāi)發(fā)mysqlphpmysql數(shù)據(jù)庫(kù)也可以開(kāi)發(fā)中型和大型項(xiàng)目,尤其對(duì)多并IBM公司(藍(lán)色巨人ee程序員使用到,主要用于開(kāi)發(fā)大型項(xiàng)目(,.)都是電信級(jí)的項(xiàng)目IBM公司,安全性很好,在銀行系統(tǒng)使用的特別的多MySQL管理=>服務(wù)=>mysql=>mysql這個(gè)程序,單擊右鍵=>選擇卸載把安裝 的文件也刪除,也可以選擇其他路tothedatabaserootdatadir="C:/ProgramData/MySQL/MySQLServer如果自己后面可能使用,那么就保留一份ps:不允許勾選創(chuàng)建用戶(hù)這個(gè)選使用命令行窗口連接MYSQLcmd>mysql-u用戶(hù)名-p-h主機(jī)名-P端口cmd>表示我們令是在命令行(dos控制臺(tái))執(zhí)mysql-u:你使用的用戶(hù)名是什么,-urootroot用戶(hù)-p:你使用的,你可以不寫(xiě),如果不寫(xiě),回車(chē)后,系統(tǒng)會(huì)提示你輸入,這里我們給時(shí),就不要給空格.-h:mysql,-hlocalhost-P:mysql3306,3306,則一關(guān)于mysqlmysql服務(wù)方式啟動(dòng)(界面計(jì)算機(jī)->管理->mysql服務(wù)->單擊右鍵[選擇啟動(dòng),停止cmd>netstartmysql服務(wù)名cmd>netstopmysql服務(wù)名mysql時(shí),指定的名字如何在任 下都可以連接到 /bin去操mysql,其 你使用不了可以通過(guò)配置環(huán)境變量來(lái)搞定計(jì)算機(jī)->屬性->高級(jí)環(huán)境配置->環(huán)境變量->path,mysqlsqlddl數(shù)據(jù)定義語(yǔ)句,ddl語(yǔ)句有(CREATE[創(chuàng)建],DROP[刪除],ALTER[修改表結(jié)構(gòu)])dml數(shù)據(jù)操作語(yǔ)句,常用的dml語(yǔ)句有(INSERT[添加],UPDATE[修改數(shù)據(jù)],DELETE[刪除])dql數(shù)據(jù)查詢(xún)語(yǔ)句,常用的有(SELECT[查詢(xún)dcl數(shù)據(jù)控制語(yǔ)句,用于管理數(shù)據(jù)庫(kù)和用戶(hù)的.常用的有(commit,savepoint,rollback,grant,revoke)2章創(chuàng)建數(shù)據(jù)庫(kù)基本的語(yǔ)語(yǔ)法charactersetutf8,collate:是校驗(yàn)規(guī)則,默認(rèn)是utf8_general_ci,表示不區(qū)分大小寫(xiě)ci[casedb1``,utf8db2utf8mydb3characterset來(lái)規(guī)定該庫(kù)的字符集,常用的字符集主要是utf8/gbk/big5,utf8.不同的校驗(yàn)規(guī)則,會(huì)對(duì)查詢(xún)時(shí)字母是否區(qū)分大小寫(xiě)和排序有影響,舉例默認(rèn)的 utf8_bin這個(gè)是區(qū)分大小寫(xiě)utf8_general_ci的執(zhí)行效果mysql有很多種.showcharacterset;showmysql默認(rèn)的字符集和校驗(yàn)規(guī)則,my.ini文件中可以3章數(shù)據(jù)庫(kù)相關(guān)操作mysql sql指令中有``mysql4.01.00dropdatabaseifexists數(shù)據(jù)庫(kù)showdb2showcreatedatabasedb1drop ifexistsmysqlmysqldbms上,mysql運(yùn)行和使用狀態(tài).基本的介紹:就是修改數(shù)據(jù)庫(kù)的字符集,校驗(yàn)規(guī)則等等cmd>mysqldumpuroot- >itbullsetnames cmd -u -pitbull>保存路徑可以自己來(lái)設(shè)置這里注意一下:指令后不要帶分號(hào),分號(hào)是在mysql>命令行下有setnames //!!!use //itbull 備份文件的路徑cmd>mysqldumpuroot- 12> - - user1>如何恢復(fù)某個(gè)庫(kù)的某setnames //!!!useitbull;如果數(shù)據(jù)庫(kù)都沒(méi)有,則請(qǐng)先創(chuàng)建一個(gè)庫(kù) cmd>mysqldump-uroot-p -B數(shù)據(jù)庫(kù)名1 數(shù)據(jù)庫(kù)名2 >備份路徑這種有好處,把庫(kù)本身也給你備份.同時(shí)備份itbull和恢復(fù)多個(gè)庫(kù)(簡(jiǎn)單setnamessource4章表的創(chuàng)建filed是列(字段)名,是創(chuàng)建表時(shí)由表的設(shè)計(jì)者在規(guī)定表字段名規(guī)范有兩種,一種就是駝峰法(userName),一種是下劃(user_name)datatype:是字段的數(shù)據(jù)類(lèi)型,mysq(這個(gè)是一個(gè)重創(chuàng)建表時(shí),可以指定字符集(characterset),校驗(yàn)規(guī)則(collate),引擎這里的字符集和校驗(yàn)規(guī)則我們已經(jīng)講過(guò)引擎主要有三種(MyISAMInnDB,meomery/后面我們有章節(jié)詳解如果你不指定三種信息,則使用默認(rèn)的(改表的數(shù)據(jù)庫(kù)的信息),如果創(chuàng)建快速案說(shuō)明notnuldefault0idcomment注釋':charsetcollateengine5章mysql數(shù)據(jù)類(lèi)型(重點(diǎn),難點(diǎn)mysqlmysql數(shù)值類(lèi)型-基本介紹:用于保存整數(shù)的數(shù)據(jù)類(lèi)型,常見(jiàn)有(tinyint,smallint,mediumint,int,一覽圖1-02-03-04-08 70從表示的來(lái)看tinyint<samllint<mediumint <數(shù)據(jù)類(lèi)型占用的大小不一樣tinyint(1個(gè)字節(jié))<samllint(2個(gè)字節(jié))<mediumint(3個(gè)字節(jié))< int(4個(gè)字節(jié)) <bigint(8個(gè)字節(jié))說(shuō)明了,不同的整型有范圍的約束unsigned,===>這個(gè)就是無(wú)符號(hào)字段名整型類(lèi)型,===>這個(gè)就是有符號(hào)tinyint為例說(shuō)明:先解釋一下無(wú)符號(hào)為什么是0-zerofill的說(shuō)明zerofill0填充.int(4)zerofill40進(jìn)int(4)40填充的寬度zerofillmysql數(shù)值類(lèi)型-bit類(lèi)型就是位類(lèi)型bitasciibit(1-64),bit(M)M值來(lái)控制我們填充數(shù)據(jù)的大小bit類(lèi)型,unsignedmysql數(shù)值類(lèi)型-bit(M)mysqlfloatfloatdecimal都可以定義成有符號(hào)的或者是無(wú)符號(hào)的 M:表示顯示最大長(zhǎng)度(即可以顯示多少個(gè)數(shù),包含小數(shù)位)D表示有幾位float(4,2)范 float(4,2)unsigned范圍0-decimal(4,2)-99.99-)floatdecimal超出范圍了,會(huì)怎樣樣decimal可以表示的精度更高. 7位小數(shù)位。decimal(M,D)如果D被省略,默認(rèn)是0。如果M被省略,默認(rèn)是10。相當(dāng)于decimal(10,0) decimalmysql數(shù)據(jù)類(lèi)型-基本介紹:mysql的字符串類(lèi)型,用于存放字符串,最主要的有三種,分別是 char(n),varchar(n)n值到底可以有多大?char(n)這里的n的范圍是1-255,255.varchar(n)這里的n的范圍是和表的字符集有關(guān)系如果表的字符集是utf8那么n最大是 (65535-3)/3=21844如果表的字符集是gbk那么n最大是 (65535-3)/2=32766如果表的字符集是latin1那么n最大是 (65535-3)/1=65532varchar65535個(gè)字節(jié),3個(gè)字節(jié).[2varchar1utf83gbk2gbk11varchar的n的最大的使用案例char(n)和 n指的是字符數(shù)而不是字節(jié)數(shù)char(n)varchar(n)是變長(zhǎng)char(4)=>添加'aa4個(gè)字符占用的空間.varchar(4)=>添加'aa2個(gè)字符占用的空間+1小結(jié):varchar.char(n)會(huì)將存入的最后的空格自動(dòng)刪除,而varchar(n)會(huì)保留空格.所以如varchartextvarchar,varchar最大比如上面的字段4+21843* +1=65536>上面的字段3+21843* +1=65535>=65535字節(jié)大小text來(lái)替代mysql數(shù)據(jù)類(lèi)型-基本介紹:mysql(1.date,2datetime3.基本使用date,datetimetimestamp有日期和時(shí)間,如果你沒(méi)有給時(shí)間,那么默認(rèn)是00:00:00timestampinsertupdate時(shí)會(huì)自動(dòng)的更新login_time字段就會(huì)自動(dòng)的更新mysql數(shù)據(jù)類(lèi)型-枚舉enum,如果對(duì)于多選我們可以使用set數(shù)據(jù)類(lèi)型enum數(shù)據(jù)類(lèi)型setenum首先你添加的選項(xiàng)都是表中規(guī)定好的,添加set字段時(shí)'選項(xiàng)1,選項(xiàng)2,選項(xiàng)enum選項(xiàng)中,選項(xiàng)可以用數(shù)字表示則添加時(shí)可以用數(shù)字表示某個(gè)選項(xiàng)set當(dāng)我們給一個(gè)set賦值時(shí),這個(gè)數(shù)就是一個(gè)組合的('蘋(píng)果','西瓜','菠蘿')對(duì)應(yīng)1,2,4,然后組合可以進(jìn)行多項(xiàng),比如7=1+2+4 6=2+4等等set中的值比如,請(qǐng)查詢(xún)喜歡吃蘋(píng)果的人該文件的路徑,然后通過(guò)路徑去該文件.createtableuser(idint,name varchar(64)//記錄這個(gè)頭像的路徑)cmd>mysql-uroot-p--default-character-set=latin1mysql>setnamesgbk;6章修改表修改表,就是指,當(dāng)我們的表創(chuàng)建好了,根據(jù)業(yè)務(wù)邏輯的需要,我們要對(duì)表進(jìn)行們就要使用修改表技術(shù)。重點(diǎn)就是掌握三大塊[addmodify/changedrop/案例演示varchar(64)==>varchar(32),如果你當(dāng)前這個(gè)有數(shù)據(jù)超過(guò)32了,則會(huì)提示錯(cuò)誤.varcharintvarchar的內(nèi)容是否可以轉(zhuǎn)成int,'o'=>int就不能成功。練個(gè)7章數(shù)據(jù)庫(kù)的crudcrud操作,表示是增刪改查c[create]r[readu[updated[delete]insert基本的概念就是將數(shù)據(jù)添加到某個(gè)表中快速案insert細(xì)節(jié)-''括起來(lái)insertinto 如果是給表中的所有字段添加數(shù)據(jù),可以不寫(xiě)前面的字段名稱(chēng),price有默認(rèn)值,因此上面寫(xiě)法并沒(méi)有報(bào)錯(cuò).如果面的price字段沒(méi)有默認(rèn)值,則會(huì)報(bào)錯(cuò) ''引起來(lái),則''引起來(lái)就可以crudcreatetablestudent(idint,namevarchar(20)notnulldefault'',decimal(5,2)notnulldefault0.0,englishdecimal(5,2)notnulldefault0.0,mathdecimal(5,2)notnulldefault0.0
insertintostudentvalues(1,'韓順平insertintostudent(id,name,,english,math)values(2,'',67,98,56),;insertintostudent(id,name,,english,math)values(3,'',87,78,77);insertintostudent(id,name,,english,math)values(4,'',88,98,90);insertintostudent(id,name,,english,math)values(5,'',82,84,67);insertintostudent(id,name,,english,math)values(6,'',55,85,45);insertintostudent(id,name,,english,math)values(7,'',75,65,30);程序框架圖(開(kāi)發(fā)模式如果可以使用js,端也校驗(yàn)一下數(shù)據(jù)update基本介紹update語(yǔ)句就是修改數(shù)據(jù)的update可以的修改多個(gè)字快速案updatedelete說(shuō)明deletewhere子句來(lái)選擇你要?jiǎng)h除一個(gè)小技巧-如何一個(gè)employee表=>employee2createtable likeinsertintoemployee2select*fromdeletedeletetruncatedeletetruncate都可以刪除數(shù)據(jù)2.deletefromtruncatedeletewhere子句,truncatewhere,truncate指令只能刪deletetruncate8章select介紹select語(yǔ)句的基本使用,后面我們?cè)僦v解加強(qiáng)的部分*select*語(yǔ)句.select關(guān)于字段別名的寫(xiě)法還有另外三種selectASfrom表名推薦使用]select字段名AS'別名'from表名;selectfrom表名;select'別名from表名where子句,where一覽圖betweenand是包含兩邊id是100,200,300select*fromstudentwhereid=100orid=200orid=<==等價(jià)select*fromstudentwhereidin(100,likenot是模糊查詢(xún),表示某個(gè)字段中含有什么信息select*fromwherelike'張表示任意多個(gè)字符select*fromwherenotlike張isnullorderbyorderby子句是用于排序的orderbysql語(yǔ)句的最后orderby[asc|desc],asc表示升序排序,desc表示降序排序,默認(rèn)是升序orderby1[asc|desc],1基本介紹:count函數(shù)是進(jìn)行統(tǒng)計(jì)滿(mǎn)足條件的記錄數(shù)有多少條,是分組的形count(*)count(列名)countcount(*)count(列名)的區(qū)別基本介紹Sumwheresumnull時(shí)),..),null分開(kāi)統(tǒng)計(jì)ifnullifnull(expr1,expr2),expr1為null,expr1null,expr1值基本AVGwhereselectavg(math)fromstudent;selectavg(ifnull(math,0.0)+ifnull(english,0.0)+ifnull(,0.0))from基本介紹:where條件的列的最大/groupby基本介紹:groupby就是對(duì)數(shù)據(jù)(列)進(jìn)行分組統(tǒng)計(jì),如果我們需要對(duì)分組的結(jié)果進(jìn)行過(guò)濾則可以使用關(guān)鍵字having基本語(yǔ)法groupby列名1,列名 9章mysql函數(shù)(重點(diǎn)mysql對(duì)日期進(jìn)行處理的函數(shù)datedate_add(date1, valdate_type)函數(shù)date1val這個(gè)值的時(shí)間date_sub(date1, valdate_type)函數(shù)date1val這個(gè)值的時(shí)間datediff(date1,date2):計(jì)算兩個(gè)日期的差(天date_add/date_sub可以帶的日期類(lèi)型有year|month|day,可以返回日期中的年,月,日?19823月入職的員工unix_timestamp():函數(shù)返回一個(gè)秒數(shù)(整數(shù)),1970-1-10:0:0到現(xiàn)在的from_unixtime(時(shí)間戳,日期格式):將一個(gè)時(shí)間戳轉(zhuǎn)成你指定的一個(gè)格phpdate/datetime/timestampintunsigned來(lái)保存時(shí)間(php程序員mysqlphp思考,10秒/1.5天2基本介紹:charset(str)concat(str1,str2)ucase/lcaseleft(str,len),strlen/right(str,len)str的len個(gè)字符length(str);str的長(zhǎng)度(字節(jié)rece(str,str_find,str_repl),在str這個(gè)字符串中,找str_find,替換substring(str,position,[len]); str的positionlen個(gè)字符,lenposition開(kāi)始取出所有字符.positon1開(kāi)始計(jì)算.小練習(xí)基本介紹:format=abs(numnumceiling(num),num這個(gè)值,向上取整,floor(num),num這個(gè)值,向下取整,format(num,num2),num進(jìn)行格式化處理,num2mod(num1,num2)rand()0.0<=v<=1.0round(num1,num2):num1進(jìn)行四舍五入的處理,num2是保留的表達(dá)式if(expr1,expr2,expr3);expr1expr2,expr1為假,expr2 請(qǐng)查詢(xún)emp表,顯示ename和 sal,和com如果com為null,則顯示0.0ifnull case..when先看一個(gè)具體的需求如果該雇員的sal 在小于等于500,給工資漲20%如果該雇員的sal 在500<val<=1000,給工資漲10%如果該雇員的sal 在1000<val<=2000,給工資漲5%其它情況不漲工資,使用一個(gè)select語(yǔ)句搞定.WHENexprTHENWHENexprTHENWHENexprTHENELSE...user()md5(str),/編碼成一個(gè)長(zhǎng)度為32個(gè)字符的字符串,經(jīng)常他來(lái)保存我們的password(str),可以將一個(gè)字符串,加密/編碼成一個(gè)新的字符.mysql.user表,就是password加密10章mysql查詢(xún)的加強(qiáng)(重點(diǎn),難點(diǎn)desc表名showcreatetable?where使用orderby圖解mysql頁(yè)一頁(yè)返回.這時(shí)我們就會(huì)使用分頁(yè)查詢(xún)(limit)$pageSize表示一頁(yè)顯示幾條記錄分頁(yè)查詢(xún)有兩個(gè)重要的參數(shù)$pageNow表示顯示第幾頁(yè)select列名from表名 ($pageNow-1)*$pageSize,mysqllimit($pageNow-1)*$pageSize0開(kāi)始計(jì)算,因此如果limit0,22條.課堂練習(xí)題id4條記錄。35sql語(yǔ)句3頁(yè):select*fromemporderbyempno ?5-10數(shù)據(jù)分組-???計(jì)算共有多少員工?10的平均工資擴(kuò)展要求:[上機(jī)練習(xí),先做?請(qǐng)顯示工資最高的員工的名字,工作崗位=>使用一個(gè)子查詢(xún)selectmax(sal)fromselect*fromempwheresal=(selectmax(sal)from?selectavg(sal)fromselect*fromempwheresal>(selectavg(sal)fromgroup having?selectavg(sal),max(sal)fromempgroupby?selectavg(sal),max(sal)fromempgroupbydeptno,?2000selectavg(sal)ASmyavg,deptnofromempgroupbydeptnohavingmyavg<小結(jié):sql語(yǔ)句有g(shù)roupbyhaving和orderby他們的順序是grouphaving最后order11章多表查詢(xún)(重點(diǎn),難點(diǎn)多表查詢(xún)是指基于兩個(gè)和兩個(gè)以上的表或是視圖的查詢(xún).在實(shí)際應(yīng)用中,用到(deptemp表)
如顯示sales部門(mén)位置和其員工的),這種情況下需要emp,dept集1*2的記錄數(shù),如關(guān)于集的說(shuō)規(guī)定:多表查詢(xún)的條件是至少不能少于表的個(gè)數(shù)-基本介紹:自連接是指在同一的連接查案例?顯示某個(gè)員工的上級(jí)的,比如顯示’FORD’的上級(jí)案例分析語(yǔ)句 使用關(guān)鍵字 distinct empwheredeptnoselect*fromempwherejobin distinct empwhere=10)anddeptno<>作業(yè)練習(xí)-查詢(xún)ecshop表的ecs_goods表的各個(gè)類(lèi)別的價(jià)點(diǎn)評(píng)selectcat_id,max(shop_price)asmymaxfromecs_goodsgroupbyselectgoods_id,ecs_goods.cat_id,goods_name,fromecs_goods,(selectcat_id,max(shop_price)asmymaxfromecs_goodsgroupbycat_id)astempecs_goods.cat_id=temp.cat_idandshop_price=selectmath,english,fromstudentwherename='select*fromstudentwhere(math,english,)=(selectmath,english,fromstudentwherename='');from如果我們的子查詢(xún)他是在,fromfrom子句的子查詢(xún)案例selectavg(sal)asmyavg,deptnofromempgroupbyselectename,sal,temp. emp,(selectavg(sal)asmyavg,deptnofromempgroupbydeptno)astempemp.deptno=temp.deptnoemp.sal>temp.selectmax(sal)asmymax,deptnofromempgroupbyselectename,sal,emp.deptno,temp.mymaxemp,(selectmax(sal)asmymax,deptnofromempgroupbydeptno)ASwhereemp.deptno=temp.deptnoandsal=自我數(shù)sql語(yǔ)句進(jìn)行效率測(cè)試,我們需要海量數(shù)據(jù)時(shí),可以使用此法為表創(chuàng)建海量數(shù)據(jù).如快速的創(chuàng)建一張海量表.1000w[實(shí)踐...工科]createtabletemp_emplikestudent表的數(shù)據(jù)去重distincttemp_stu中stu表->temp_stu基本介紹:合并查詢(xún)有兩種,union/unionallunion合并查詢(xún)select語(yǔ)句1unionselect語(yǔ)句 sqlsqlunionunionall和unionunionall不會(huì)去掉重復(fù)記錄12章mysqlmysql基本介紹:內(nèi)連接實(shí)際上就是利用where子句對(duì)兩張(多表)表形成的積select列名from表 表 join表 ON條件<=等價(jià)select列名from表 表 ,表 條件雇員的名字,薪水,部門(mén)的名稱(chēng)mysql基本介紹:如果左側(cè)的表完全顯示我們就說(shuō)是左外連接select列名from表 表 ON條件案例說(shuō)明基本介紹:如果右側(cè)的表完全顯示我們就說(shuō)是右外連接select列名from表 表 ON條件案例說(shuō)明'無(wú)名selectstu.id,name,gradefromstuleftjoinexamonstu.id=selectstu.id,name,gradefromsturightjoinexamonstu.id=selectstu.id,name,gradefromstuleftjoinexamonstu.id=exam.idunionselectstu.id,name,gradefromsturightjoinexamonstu.id=exam.id;13章mysql約束是用于數(shù)據(jù)的完整性,所謂數(shù)據(jù)的完整性指的是,就是根據(jù)業(yè)務(wù)邏輯的需unique這個(gè)約束.mysql主鍵約束primary唯一約束not外鍵約束foreignint一最多只能有一個(gè)主鍵,但可以是復(fù)合主鍵一般來(lái)說(shuō)一總有primarykey,而且是整數(shù)類(lèi)型的,以后這樣使用 和種在字段定義完畢后,在后面寫(xiě)notnull并且unique的效果,則可notnullnotnull前面已經(jīng)使用很多次,這里我們就不講了unique約束(唯一約束字段名字段類(lèi) unique如果某個(gè)字段設(shè)置為unique,但是沒(méi)有設(shè)置notnull,那么該字段可以null,null如果你要某個(gè)字段不能重復(fù),而且不能為null,我們可以這樣定義字段字段名字段類(lèi)型notnull 用于定義主表和從表之間的關(guān)系:外鍵約束要定義在從表上,主表則必須具有unique約束.,當(dāng)定義外鍵約束后,要求外鍵列數(shù)據(jù)必須在主表的null。foreignkey(外鍵字段) references主表(字段);如果我們的外鍵沒(méi)有設(shè)置notnull,那么外鍵的值可以是null,而且可primarykey或者是innodb,外鍵字段的類(lèi)型要和主鍵/unqiue字段的類(lèi)型一致(長(zhǎng)度可以不同null[前提是外鍵可null]一旦建立主外鍵的關(guān)系,數(shù)據(jù)不能隨意刪除和修改了[參照完整性,要由程序員自己(php),mysql數(shù)據(jù)庫(kù)不會(huì)去檢查check約束(了解說(shuō)明在實(shí)際開(kāi)發(fā)中,對(duì)表的約束的管理是重要的,因此要求大家必須掌握createtablecustomer2customer_idchar(8)notnulldefault'',namevarchar(20),addressvarchar(30)notnulldefault'',varchar(30),enum('男','女notalter addprimarykeyaltertablecustomer2modifynamevarchar(20)notnulldefaultaltertablecustomer2addunique(altertablecustomer2modifyaddressvarchar(30)notnulldefault'學(xué)生宿舍 tablecustomer2 primarykey;notnull,unique刪除altertablestudropforeignkey14章mysql-字段名 字段類(lèi)型(整型)primarykeyprimarykey自增長(zhǎng)默認(rèn)從1開(kāi)始,你也可以通過(guò)如下命令修改altertable表名auto_increment=altertableauto_increment15章mysqlcreatedatabasetestdb;usetestdb;執(zhí)行了老師給的sql,創(chuàng)建一個(gè)800萬(wàn)的表select語(yǔ)句,看看會(huì)有什么問(wèn)題createindex索引名ON表名(字段名解釋:在某個(gè)表的某個(gè)字段上創(chuàng)建索引1)insert,updatedelete有小的影響.原因是當(dāng)有索引后,我們對(duì)表進(jìn)行增,刪除,修改時(shí),還要對(duì)索引進(jìn)行工作。mysql一最多只能有一個(gè)主鍵索引,但是該主鍵索引可以指向多列,即前面老null,也不能重復(fù)是auto_in 唯一索引的創(chuàng)建形式有如下一個(gè)表中,可以有多個(gè)唯一索引一個(gè)唯一索引,可以指向多列(多個(gè)字段notnull,則唯一索null如果我們不確定某個(gè)字段是否有重復(fù)的值,則不能使用唯一索引當(dāng)我們字段有重復(fù)的數(shù)據(jù)時(shí),我們就使用普通索引即可在實(shí)際的開(kāi)發(fā)中,普通索引使用的最多基本介紹:當(dāng)我們需要對(duì)某個(gè)字段的內(nèi)容的關(guān)鍵字進(jìn)行檢索時(shí),就考慮使用說(shuō)明:mysql支持全文索引的但是目前支持mysql5.5是不支持中文表的引myisam.==>?==>以后使用專(zhuān)業(yè)的全文檢索技術(shù)(coreseek,就是shpinx的中文版,迅搜技術(shù)(xunsearch))mysqlidINTUNSIGNEDAUTO_INCREMENTNOTNULLtitlebodyFULLTEXT(title,body))INSERTINTOarticles(title,body)('MySQLTutorial','DBMSstandsforDataBase('HowToUseMySQLWell','Afteryouwentthrougha...'),('OptimizingMySQL','Inthistutorialwewillshow...'),('1001MySQLTricks','1.Neverrunmysqldasroot.2. ('MySQLvs.YourSQL','Inthefollowingdatabase ('MySQLSecurity','Whenconfiguredproperly, //titlebody含義databaseselect*fromarticleswherematch(title,body)停止詞 匹配概//mysql5showindexfrom表名\Gshowindexesfrom表名showkeysfrom表名desc表名showcreatetable表名altertable表名drop note:刪除索引的關(guān)鍵是要知道索引名。先刪除,再添加在我們的實(shí)際開(kāi)發(fā)中,什么的樣的字段適合創(chuàng)建索引,給大家一個(gè)建議16章mysql事務(wù)用于保證數(shù)據(jù)的一致性,dml語(yǔ)句組成,dml語(yǔ)句要么全mysqlmysql事務(wù)的starttransaction:savepoint:rollbackto保存點(diǎn):回滾到某個(gè)保存點(diǎn).rollback:回滾commit:mysqlbsavepointsavepointrollback,就可以直接回退到事務(wù)開(kāi)始的狀態(tài)如果要支持事務(wù),需要引擎是start mit=php程序中實(shí)現(xiàn)事務(wù)(重點(diǎn)我們以轉(zhuǎn)賬的案例來(lái)講解事務(wù)事務(wù)的級(jí)別(了解概念,實(shí)際開(kāi)發(fā)中,使用不同基本的概念當(dāng)不同的客戶(hù)端或是線(xiàn)程,去mysql數(shù)據(jù)的同一時(shí),mysql提供一種機(jī)制,來(lái)控制不同的客戶(hù)端和線(xiàn)程對(duì)數(shù)據(jù)的權(quán)限.級(jí)別定義了事務(wù)與事務(wù)之間的程度,在不同的事務(wù)中,看到數(shù)據(jù)是不一樣的.事務(wù)級(jí)別的分 (repeatable程度是從上到下,越來(lái)越強(qiáng)事務(wù)級(jí)別帶來(lái)的問(wèn)當(dāng)一個(gè)事務(wù)另一個(gè)事務(wù)尚未提交的修改時(shí),產(chǎn)生臟同一查詢(xún)?cè)谕皇聞?wù)中多次進(jìn)行,由于其他提交做的修改或刪除,每次同一查詢(xún)?cè)谕皇聞?wù)中多次進(jìn)行,由于其他提交做的插入操作,每次返舉例說(shuō)明(看老師的操作/看修改mysql的默認(rèn)級(jí)事務(wù)的acid第17章mysql引mysql引擎的基本介事務(wù)安全性引非事務(wù)安全性引Myisam,show常用引擎的比MyISAM的引擎的介執(zhí)行速度快optimizetable表名[舉例InnoDB引并發(fā)性好Memory引執(zhí)行速度快mys
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級(jí)科學(xué)下冊(cè)第一單元植物的生長(zhǎng)變化第4課種子變成了幼苗教學(xué)材料教科版
- 九年級(jí)化學(xué)上冊(cè)緒言化學(xué)使世界變得更加絢麗多彩教案新版新人教版
- 2022年C基礎(chǔ)知識(shí)考試題庫(kù)(核心500題)
- 《經(jīng)濟(jì)學(xué)專(zhuān)題》課件
- 小學(xué)生圖書(shū)借閱制度
- 七年級(jí)英語(yǔ)Whatsyourfavoritefruit課件
- 《米斯維尼加盟手冊(cè)》課件
- 《孕嬰行業(yè)市場(chǎng)分析》課件
- 《篩檢傳染病監(jiān)測(cè)》課件
- 小學(xué)生游泳池課件圖片
- 景區(qū)安全管理教育培訓(xùn)
- 工業(yè)氣瓶使用安全管理規(guī)定(5篇)
- 《高中體育與健康》考試復(fù)習(xí)題庫(kù)及答案
- 高空拋物安全宣傳教育課件
- 供應(yīng)鏈ESG管理策略
- 2024秋期國(guó)家開(kāi)放大學(xué)本科《納稅籌劃》一平臺(tái)在線(xiàn)形考(形考任務(wù)一至五)試題及答案
- 紙巾合同范本
- 四川省德陽(yáng)市2025屆數(shù)學(xué)三年級(jí)第一學(xué)期期末聯(lián)考模擬試題含解析
- 2024年平面設(shè)計(jì)師技能及理論知識(shí)考試題庫(kù)(附含答案)
- 2024年高考真題-英語(yǔ)(新高考Ⅰ卷) 含解析
- 2023-2024年6月廣東省普通高中學(xué)業(yè)水平生物考試及答案
評(píng)論
0/150
提交評(píng)論