MySQL基礎(chǔ)學習超級詳細_第1頁
MySQL基礎(chǔ)學習超級詳細_第2頁
MySQL基礎(chǔ)學習超級詳細_第3頁
MySQL基礎(chǔ)學習超級詳細_第4頁
MySQL基礎(chǔ)學習超級詳細_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

完好版MySQL基礎(chǔ)學習超級詳盡完好版MySQL基礎(chǔ)學習超級詳盡18/18完好版MySQL基礎(chǔ)學習超級詳盡一、MySQL概括1、什么是數(shù)據(jù)庫?答:數(shù)據(jù)的庫房,如:在ATM的示例中我們創(chuàng)立了一個db目錄,稱其為數(shù)據(jù)庫2、什么是MySQL、Oracle、SQLite、Access、MSSQLServer等?答:他們均是一個軟件,都有兩個主要的功能:oa.將數(shù)據(jù)保留到文件或內(nèi)存ob.接收特定的命令,此后對文件進行相應(yīng)的操作3、什么是SQL?答:MySQL等軟件可以接授命令,并做出相應(yīng)的操作,因為命令中可以包含刪除文件、獲得文件內(nèi)容等眾多操作,關(guān)于編寫的命令就是是SQL語句。二、MySQLMySQL發(fā),目前屬于統(tǒng),在WEB

安裝是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQLAB企業(yè)開Oracle旗下企業(yè)。MySQL最流行的關(guān)系型數(shù)據(jù)庫管理系應(yīng)用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。想要使用MySQL來儲蓄并操作數(shù)據(jù),則需要做幾件事情:a.安裝MySQL服務(wù)端b.安裝MySQL客戶端【客戶端】連結(jié)【服務(wù)端】【客戶端】發(fā)喪命令給【服務(wù)端MySQL】服務(wù)的接授命令并履行相應(yīng)操作(增改正查等)下載安裝windows:linux:yuminstallmysql-servermac

:向來點下一步客戶端連結(jié)連結(jié):1、mysql

管理人默認為

root

,沒有設(shè)置密碼則直接登錄mysql-hhost-uroot-p

不用輸入密碼按回車自動進入2、假如想設(shè)置mysql密碼mysqladmin-urootpassword

1234563、假如你的root此刻有密碼了(

123456

),那么改正密碼為

abcdef

的命令是:mysqladmin-uroot-ppasswordabcdef退出:QUIT或許Control+D三、數(shù)據(jù)庫基礎(chǔ)分為兩大多數(shù):、數(shù)據(jù)庫和表的創(chuàng)立;、數(shù)據(jù)庫和表內(nèi)容的操作數(shù)據(jù)庫操作-思路圖、數(shù)據(jù)庫和表的創(chuàng)立(一)數(shù)據(jù)庫的創(chuàng)立1.1、顯示數(shù)據(jù)庫1SHOWDATABASES;默認數(shù)據(jù)庫:mysql-用戶權(quán)限有關(guān)數(shù)據(jù)test-用于用戶測試數(shù)據(jù)information_schema-MySQL自己架構(gòu)有關(guān)數(shù)據(jù)1.2、創(chuàng)立數(shù)據(jù)庫#utf-8CREATEDATABASE數(shù)據(jù)庫名稱DEFAULTCHARSETutf8COLLATEutf8_general_ci;#gbkCREATEDATABASE數(shù)據(jù)庫名稱DEFAULTCHARACTERSETgbkCOLLATEgbk_chinese_ci;1.3、翻開數(shù)據(jù)庫USEdb_name;注:每次使用數(shù)據(jù)庫必然翻開相應(yīng)數(shù)據(jù)庫顯示目前使用的數(shù)據(jù)庫中所有表:SHOWTABLES;1.4、用戶管理用戶設(shè)置:創(chuàng)立用戶createuser'用戶名'@'IP地點'identifiedby'密碼';刪除用戶dropuser'用戶名'@'IP地點';改正用戶renameuser'用戶名'@'IP地點';to'新用戶名'@'IP地點';;改正密碼setpasswordfor'用戶名'@'IP地點'=Password('新密碼')PS:用戶權(quán)限有關(guān)數(shù)據(jù)保留在mysql數(shù)據(jù)庫的user表中,所以也可以直接對其進行操作(不建議)用戶權(quán)限設(shè)置:showgrantsfor'用戶'@'IP地點'--查察權(quán)限grant權(quán)限on數(shù)據(jù)庫.表to'用戶'@'IP地點'--受權(quán)revoke權(quán)限on數(shù)據(jù)庫.表from'用戶'@'IP地點'--撤消權(quán)限allprivileges

除grant

外的所有權(quán)限select

僅查權(quán)限select

,insert

查和插入權(quán)限...usage無接見權(quán)限alter使用altertablealterroutine使用alterprocedure和dropprocedurecreate使用createtablecreateroutine使用createprocedurecreatetemporarytables使用createtemporarytablescreateuser使用createuser、dropuser、renameuser和revokeallprivilegescreateview使用createviewdelete使用deletedrop使用droptableexecute使用call和儲蓄過程file使用selectintooutfile和loaddatainfilegrantoption使用grant和revokeindex使用indexinsert使用insertlocktables使用locktableprocess使用showfullprocesslistselect使用selectshowdatabases使用showdatabasesshowview使用showviewupdate使用updatereload使用flushshutdown使用mysqladminshutdown(封閉MySQL)super使用changemaster、kill、logs、purge、master和setglobal。還贊成mysqladmin調(diào)試登岸replicationclient服務(wù)器地點的接見replicationslave由復制隸屬使用關(guān)于目標數(shù)據(jù)庫以及內(nèi)部其余:*.*

數(shù)據(jù)庫名數(shù)據(jù)庫名數(shù)據(jù)庫名

.*..

表儲蓄過程

數(shù)據(jù)庫中的所有指定數(shù)據(jù)庫中的某張表指定數(shù)據(jù)庫中的儲蓄過程所有數(shù)據(jù)庫用戶名@IP地點用戶名用戶名@%

.1.%

用戶只幸好改用戶只幸好改用戶可以再隨意

IP下才能接見IP段下才能接見(IP下接見(默認

通配符%表示隨意IP地點為%)

)grantallprivilegesondb1.tb1TO

'用戶名'@'IP'grant

select

ondb1.*TO

'用戶名

'@'IP'grant

select

,inserton*.*TO

'用戶名'@'IP'revoke

select

ondb1.tb1from

'用戶名'@'IP'1.4、備份庫和恢復庫備份庫:MySQL備份和復原,都是利用mysqldump、mysql和source命令來達成。1.在Windows下MySQL的備份與復原備份1、開始菜單|運轉(zhuǎn)|cmd|利用“cd/ProgramFiles/MySQL/MySQLServer5.0/bin”命令進入bin文件夾2、利用“mysqldump-u用戶名-pdatabasename>exportfilename”導出數(shù)據(jù)庫到文件,如mysqldump-uroot,此后輸入密碼即可開始導出。復原1、進入MySQLCommandLineClient,輸入密碼,進入到“mysql>”。2、輸入命令"showdatabases;",回車,看看有些什么數(shù)據(jù)庫;成立你要復原的數(shù)據(jù)庫,輸入"createdatabasevoice;",回車。3、切換到剛成立的數(shù)據(jù)庫,輸入"usevoice;",回車;導入數(shù)據(jù),輸入;",回車,開始導入,再次出現(xiàn)"mysql>"而且沒有提示錯誤即復原成功。2、在linux下MySQL的備份與復原備份(利用命令mysqldump進行備份)[root@localhostmysql]#mysqldump-uroot-pvoice,輸入密碼即可。復原方法一:[root@localhost~]#mysql-uroot-p回車,輸入密碼,進入MySQL的控制臺"mysql>",同復原。方法二:[root@localhostmysql]#mysql-uroot-pvoice,輸入密碼即可。、更多備份及復原命令備份:1.備份所有數(shù)據(jù)庫的數(shù)據(jù)和結(jié)構(gòu)mysqldump-uroot-p123456-A>all.sql2.備份所有數(shù)據(jù)庫的結(jié)構(gòu)(加-d參數(shù))mysqldump-uroot-p1234563.備份所有數(shù)據(jù)庫的數(shù)據(jù)(加-t參數(shù))mysqldump-uroot-p1234564.備份單個數(shù)據(jù)庫的數(shù)據(jù)和結(jié)構(gòu)(,數(shù)據(jù)庫名mydb)mysqldump-uroot-p123456mydb5.備份單個數(shù)據(jù)庫的結(jié)構(gòu)mysqldump-uroot-p123456mydb6.備份單個數(shù)據(jù)庫的數(shù)據(jù)mysqldump-uroot-p123456mydb7.備份多個表的數(shù)據(jù)和結(jié)構(gòu)(數(shù)據(jù),結(jié)構(gòu)的獨自備份方法與上同)mysqldump-uroot-p123456mydbt1t28.一次備份多個數(shù)據(jù)庫mysqldump-uroot復原:復原部分分(1)mysql命令行source方法和(2)系統(tǒng)命令行方法1.復原所有數(shù)據(jù)庫:(1)mysql命令行:mysql>all.sql(2)系統(tǒng)命令行:mysql-uroot-p123456<all.sql2.復原單個數(shù)據(jù)庫(需指定數(shù)據(jù)庫)(1)mysql>usemydb(2)mysql-uroot-p123456mydb3.復原單個數(shù)據(jù)庫的多個表(需指定數(shù)據(jù)庫)(1)mysql>usemydb(2)mysql-uroot-p123456mydb4.復原多個數(shù)據(jù)庫,(一個備份文件里有多個數(shù)據(jù)庫的備份,此時不需要指定數(shù)據(jù)庫)(1)mysql命令行:mysql(2)系統(tǒng)命令行:mysql-uroot-p123456更多備份知識:(二)數(shù)據(jù)表的創(chuàng)立1.1、顯示數(shù)據(jù)表showtables;1.2、創(chuàng)立數(shù)據(jù)表createtable表名(列名種類能否可認為空,列名種類能否可認為空)ENGINE=InnoDBDEFAULTCHARSET=utf8能否可空,null表示空,非字符串notnull-不可以空null-可空默認值,創(chuàng)立列時可以指定默認值,當插入數(shù)據(jù)時假如未主動設(shè)置,則自動增添默認值createtabletb1(nidintnotnulldefalut2,numintnotnull)自增,假如為某列設(shè)置自增列,插入數(shù)據(jù)時無需設(shè)置此列,默認將自增(表中只好有一個自增列)createtabletb1(nidintnotnullauto_incrementprimarykey,numintnull)或createtabletb1(nidintnotnullauto_increment,numintnull,index(nid))注意:1、關(guān)于自增列,必然是索引(含主鍵)。2、關(guān)于自增可以設(shè)置步長和初步值showsessionvariableslike'auto_inc%';setsessionauto_increment_increment=2;setsessionauto_increment_offset=10;shwoglobalvariableslike'auto_inc%';setglobalauto_increment_increment=2;setglobalauto_increment_offset=10;主鍵,一種特其余獨一索引,不同樣意有空值,假如主鍵使用單個列,則它的值必然獨一,假如是多列,則其組合必然獨一。createtabletb1(nidintnotnullauto_incrementprimarykey,numintnull)或createtabletb1(nidintnotnull,numintnotnull,primarykey(nid,num))外鍵,一個特其余索引,只好是指定內(nèi)容creattablecolor(nidintnotnullprimarykey,namechar(16)notnull)createtablefruit(nidintnotnullprimarykey,smtchar(32)null,color_idintnotnull,constraintfk_ccforeignkey(color_id)referencescolor(nid))主鍵與外鍵關(guān)系(特別重要)刪除表droptable表名1.4、清空表deletefrom表名truncatetable表名1.5、基本數(shù)據(jù)種類MySQL的數(shù)據(jù)種類大概分為:數(shù)值、時間和字符串bit[(M)]二進制位(101001),m表示二進制位的長度(1-64),默認m=1tinyint[(m)][unsigned][zerofill]小整數(shù),數(shù)據(jù)種類用于保留一些范圍的整數(shù)數(shù)值范圍:有符號:-128~127.無符號:0~255特其余:MySQL中無布爾值,使用tinyint(1)結(jié)構(gòu)。int[(m)][unsigned][zerofill]整數(shù),數(shù)據(jù)種類用于保留一些范圍的整數(shù)數(shù)值范圍:有符號:-2147483648~2147483647無符號:0~4294967295特其余:整數(shù)種類中的m僅用于顯示,對儲蓄范圍無量制。比方:int(5),當插入數(shù)據(jù)2時,select時數(shù)據(jù)顯示為:00002bigint[(m)][unsigned][zerofill]大整數(shù),數(shù)據(jù)種類用于保留一些范圍的整數(shù)數(shù)值范圍:有符號:-9223372036854775808~9223372036854775807無符號:0~decimal[(m[,d])][unsigned][zerofill]正確的小數(shù)值,m是數(shù)字總個數(shù)(負號不算),d是小數(shù)點后個數(shù)。m最大值為65,d最大值為30。特其余:關(guān)于精準數(shù)值計算時需要用此種類decaimal可以儲蓄精準值的原由在于其內(nèi)部依據(jù)字符串儲蓄。FLOAT[(M,D)][UNSIGNED][ZEROFILL]單精度浮點數(shù)(非正確小數(shù)值),m是數(shù)字總個數(shù),d是小數(shù)點后個數(shù)。無符號:-3.402823466E+38to-,0to3.402823466E+38有符號:0to3.402823466E+38數(shù)值越大,越不正確DOUBLE[(M,D)][UNSIGNED][ZEROFILL]雙精度浮點數(shù)(非正確小數(shù)值),m是數(shù)字總個數(shù),d是小數(shù)點后個數(shù)。無符號:-1.7976931348623157E+308to-0to1.7976931348623157E+308有符號:0to1.7976931348623157E+308數(shù)值越大,越不正確char(m)char數(shù)據(jù)種類用于表示固定長度的字符串,可以包括最多達255個字符。此中m代表字符串的長度。PS:即便數(shù)據(jù)小于m長度,也會占用m長度varchar(m)varchars數(shù)據(jù)種類用于變長的字符串,可以包括最多達255個字符。此中m代表該數(shù)據(jù)種類所贊成保留的字符串的最大長度,只需長度小于該最大值的字符串都可以被保留在該數(shù)據(jù)種類中。注:固然varchar使用起來較為靈巧,可是從整個系統(tǒng)的性能角度來說,char數(shù)據(jù)種類的辦理速度更快,有時甚至可以高出varchar辦理速度的50%。所以,用戶在設(shè)計數(shù)據(jù)庫時應(yīng)該綜合考慮各方面的要素,以求達到最正確的均衡texttext數(shù)據(jù)種類用于保留變長的大字符串,可以組多到65535(216-1)個字符。mediumtextATEXTcolumnwithamaximumlengthof16,777,215(224-1)characters.longtextATEXTcolumnwithamaximumlengthof4,294,967,295or4GB(232-1)characters.enum列舉種類,AnENUMcolumncanhaveamaximumof

65,535

distinctelements.(Thepracticallimitislessthan

3000.)示例:CREATETABLEshirts(nameVARCHAR(40),sizeENUM('x-small','small','medium','large','x-large'));INSERTINTOshirts(name,size)VALUES('dressshirt','large'),('t-shirt','medium'),('poloshirt','small');set會合種類ASETcolumncanhaveamaximumof64distinctmembers.示例:CREATETABLEmyset(colSET('a','b','c','d'));INSERTINTOmyset(col)VALUES('a,d'),('d,a'),('a,d,a'),('a,d,d'),('d,a,d');DATEYYYY-MM-DD(1000-01-01/9999-12-31)TIMEHH:MM:SS('-838:59:59'/'838:59:59')YEARYYYY(1901/2155)DATETIMEYYYY-MM-DDHH:MM:SS(1000-01-0100:00:00/9999-12-3123:59:59Y)TIMESTAMPYYYYMMDDHHMMSS(1970-01-0100:00:00/2037年某時)1.6、改正表(alter)改正表更多參照:?1.7、數(shù)據(jù)表關(guān)系關(guān)系照耀:一對多/多對一存在最廣泛的照耀關(guān)系,簡單來講就如球員與球隊的關(guān)系;一對多:從球隊角度來說一個球隊擁有多個球員

即為一對多多對一:從球員角度來說多個球員屬于一個球隊數(shù)據(jù)表間一對多關(guān)系以以下列圖:

即為多對一關(guān)系照耀:一對一一對一關(guān)系就如球隊與球隊所在地點之間的關(guān)系,一支球隊僅有一個地點,而一個地點區(qū)也僅有一支球隊。數(shù)據(jù)表間一對一關(guān)系的表現(xiàn)有兩種,一種是外鍵關(guān)系,一種是主鍵關(guān)系。圖示以下:一對一外鍵關(guān)系:一對一主鍵關(guān)系:要求兩個表的主鍵必然圓滿一致,經(jīng)過兩個表的主鍵成立關(guān)系關(guān)系關(guān)系照耀:多對多多對多關(guān)系也很常有,比方學生與選修課之間的關(guān)系,一個學生可以選擇多門選修課,而每個選修課又可以被多名學生選擇。數(shù)據(jù)庫中的多對多關(guān)系關(guān)系一般需采納中間表的方式辦理,將多對多轉(zhuǎn)變?yōu)閮蓚€一對多1.8、數(shù)據(jù)表之間的拘束拘束是一種限制,它經(jīng)過對表的行或列的數(shù)據(jù)做出限制,來保證表的數(shù)據(jù)的圓滿性、獨一性。MYSQL中,常用的幾種拘束:===================================================主鍵(PRIMARYKEY)是用于拘束表中的一行,作為這一行的表記符,在一張表中經(jīng)過主鍵就能正確立位到一行,所以主鍵十分重要。主鍵要求這一行的數(shù)據(jù)不可以有重復且不可以認為空。還有一種特其余主鍵——復合主鍵。主鍵不只可以是表中的一列,也可以由表中的兩列或多列來共同表記===================================================默認值拘束(DEFAULT)規(guī)定,當有DEFAULT拘束的列,插入數(shù)據(jù)為空時該怎么辦。DEFAULT

拘束只會在使用

INSERT

語句(上一實驗介紹過)時表現(xiàn)出來,

INSERT

語句中,假如被DEFAULT

拘束的地點沒有值,那么這個地點將會被

DEFAULT

的值填補===================================================獨一拘束(UNIQUE)比較簡單,它規(guī)定一張表中指定的一列的值必然不可以有重復值,即這一列每個值都是獨一的。當INSERT語句新插入的數(shù)據(jù)和已有數(shù)據(jù)重復的時候,假如有UNIQUE拘束,則INSERT失敗.===================================================外鍵(FOREIGNKEY)既能保證數(shù)據(jù)圓滿性,也能表現(xiàn)表之間的關(guān)系。一個表可以有多個外鍵,每個外鍵必然REFERENCES(參照)另一個表的主鍵,被外鍵拘束的列,取值必然在它參照的列中有對應(yīng)值。在INSERT時,假如被外鍵拘束的值沒有在參照列中有對應(yīng),比方以下命令,參照列(department表的dpt_name)中沒有dpt3,則INSERT失敗===================================================非空拘束(NOTNULL),聽名字就能理解,被非空拘束的列,在插入值時必然非空。在MySQL中違犯非空拘束,不會報錯,只會有警示.例子2、數(shù)據(jù)庫和表內(nèi)容的操作(增、刪、改、查)、增insertinto表(列名,列名...)values(值,值,值...)insertinto表(列名,列名...)values(值,值,值...),(值,值,值...)insertinto表(列名,列名...)select(列名,列名...)from表、刪deletefrom表deletefrom表whe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論