版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
初識MySQL
1.初識MySQL.pptx2.MySQL數(shù)據(jù)管理.pptx3.使用DQL命令查詢數(shù)據(jù)(一).pptx4.使用DQL命令查詢數(shù)據(jù)(二).pptx5.MySQL事務(wù)、索引、數(shù)據(jù)恢復(fù)和備份.pptx6.數(shù)據(jù)庫設(shè)計.pptx7.銀行ATM存取款機系統(tǒng).pptx線上線下平臺預(yù)習(xí)2/45本課目標(biāo)學(xué)完本次課程后,你能夠:了解MySQL數(shù)據(jù)庫學(xué)會安裝MySQL學(xué)會使用SQLyog數(shù)據(jù)庫管理工具了解常用的數(shù)據(jù)庫命令熟悉創(chuàng)建數(shù)據(jù)庫表的語句熟悉常見的數(shù)據(jù)列屬性、類型和索引3/45為什么學(xué)習(xí)數(shù)據(jù)庫崗位技能需求現(xiàn)在的世界,得數(shù)據(jù)者得天下存儲數(shù)據(jù)的方法程序、網(wǎng)站中大量數(shù)據(jù)需長久保存4/45什么是數(shù)據(jù)庫數(shù)據(jù)庫(Database,簡稱DB)概念長期存放在計算機內(nèi),有組織、可共享的大量數(shù)據(jù)的集合,是一個數(shù)據(jù)“倉庫”作用保存、管理數(shù)據(jù)5/45數(shù)據(jù)庫總覽關(guān)系型數(shù)據(jù)庫(SQL)MySQL、Oracle、SQLServer、SQLite、DB2非關(guān)系型數(shù)據(jù)庫(NOSQL)Redis、MongoDB6/45什么是DBMS數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem)數(shù)據(jù)管理軟件,科學(xué)組織和存儲數(shù)據(jù)、高效地獲取和維護(hù)數(shù)據(jù)
7/45MySQL簡介概念是現(xiàn)流行的開源、免費的關(guān)系型數(shù)據(jù)庫特點免費、開源數(shù)據(jù)庫
小巧、功能齊全使用便捷可運行于Windows或Linux操作系統(tǒng)可適用于中小型甚至大型網(wǎng)站應(yīng)用8/45MySQL的運行機制支持接口標(biāo)準(zhǔn)C的API、JDBC、CDBC、.NET、PHP、Python、Perl、Ruby、Cobol企業(yè)管理服務(wù)和工具備份與恢復(fù)安全復(fù)制群集分區(qū)管理事例管理數(shù)據(jù)模板管理工作臺查詢?yōu)g覽合并工具連接池驗證與授權(quán)–線程–連接限制–內(nèi)存與緩存管理SQL接口數(shù)據(jù)管理語言和數(shù)據(jù)定義語言、存儲過程、視圖、觸發(fā)器等解析器查詢\事務(wù)對象優(yōu)先級查詢優(yōu)化器訪問路徑統(tǒng)計緩存和緩沖池和具體引擎的緩存和緩沖池文件系統(tǒng)新技術(shù)文件;網(wǎng)絡(luò)文件系統(tǒng)存儲區(qū)域網(wǎng)絡(luò)和網(wǎng)路附加存儲文件和日志Redo、Undo、Data、Index、BinaryError、QueryandSlow可插式存儲引擎內(nèi)存\索引和存儲管理MySQLServer9/45在Windows操作系統(tǒng)下安裝2-1下載MySQLMySQL
5.5.40(Windows版)下載地址:/downloads/數(shù)據(jù)目錄不要在系統(tǒng)盤,以免卸載時刪除數(shù)據(jù)包啟用安裝向?qū)В苊夥爆嵉膍y.ini配置文件數(shù)據(jù)庫語言編碼設(shè)置注意10/45在Windows操作系統(tǒng)下安裝2-2安裝關(guān)鍵步驟端口設(shè)置3306(默認(rèn))編碼設(shè)置utf8密碼設(shè)置11/45安裝后my.ini配置path開啟數(shù)據(jù)庫服務(wù)12/45SQLyog管理工具可手動操作、管理MySQL數(shù)據(jù)庫的軟件工具特點易用簡潔圖形化13/45SQLyog管理工具創(chuàng)建課程數(shù)據(jù)表(subject)并添加數(shù)據(jù)使用SQLyog連接數(shù)據(jù)庫創(chuàng)建MySchool數(shù)據(jù)庫新建數(shù)據(jù)表(
subject)添加數(shù)據(jù)列
SubjectNo(int(11),PK)
SubjectName(varchar50)
ClassHour(int(4))
GradeID(int(4))添加數(shù)據(jù)演示:使用SQLyog創(chuàng)建數(shù)據(jù)表14/45練習(xí)1:SQLyog創(chuàng)建數(shù)據(jù)庫需求說明使用SQLyog管理工具連接本地MySQL數(shù)據(jù)庫新建MySQL數(shù)據(jù)庫數(shù)據(jù)庫名稱MySQL新建數(shù)據(jù)庫表(grade)字段GradeID:int(11)PrimaryKey(pk)GradeName:varchar(50)15/45
連接數(shù)據(jù)庫打開MySQL命令窗口在DOS命令行窗口(cmd.exe)在窗口中進(jìn)入安裝目錄\mysql\bin可設(shè)置環(huán)境變量連接數(shù)據(jù)庫語句mysql-h服務(wù)器主機地址–u用戶名-p用戶密碼演示示例1:命令行連接數(shù)據(jù)庫16/45結(jié)構(gòu)化查詢語句SQL結(jié)構(gòu)化查詢語句分類名稱解釋命令DDL(數(shù)據(jù)定義語言)定義和管理數(shù)據(jù)對象,如數(shù)據(jù)庫,數(shù)據(jù)表等CREATE、DROP、ALTERDML(數(shù)據(jù)操作語言)用于操作數(shù)據(jù)庫對象中所包含的數(shù)據(jù)INSERT、UPDATE、DELETEDQL(數(shù)據(jù)查詢語言)用于查詢數(shù)據(jù)庫數(shù)據(jù)SELECTDCL(數(shù)據(jù)控制語言)用來管理數(shù)據(jù)庫的語言,包括管理權(quán)限及數(shù)據(jù)更改GRANT、COMMIT、ROLLBACK17/45命令行操作數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫刪除數(shù)據(jù)庫查看數(shù)據(jù)庫使用數(shù)據(jù)庫CREATEDATABASE[IFNOTEXISTS]數(shù)據(jù)庫名;DORPDATABASE[IFEXISTS]數(shù)據(jù)庫名;SHOWDATABASES;USE數(shù)據(jù)庫名;演示示例2:命令行操作數(shù)據(jù)庫18/45對比工具操作數(shù)據(jù)庫建庫學(xué)習(xí)方法對照SQLyog工具自動生成的語句學(xué)習(xí)固定語法中的單詞需要記憶19/45工具建表建表顯示表結(jié)構(gòu)desc表名顯示表創(chuàng)建語句showcreatetable表名20/45創(chuàng)建數(shù)據(jù)表屬于DDL的一種
CREATETABLE[IFNOTEXISTS]`表名`
(
`字段名1`列類型[屬性][索引][注釋]
,
`字段名2`列類型[屬性][索引]
[注釋]
,
……
`字段名n`列類型[屬性][索引]
[注釋]
)[表類型][表字符集][注釋]
;
反引號(可選、區(qū)別于單引號)反引號用于區(qū)別MySQL保留字與普通字符而引入的演示示例3:數(shù)據(jù)表創(chuàng)建語法語法注意21/45列類型表列類型設(shè)置
CREATETABLE[IFNOTEXISTS]`表名`
(
`字段名1`列類型[屬性][索引][注釋]
, `字段名2`列類型[屬性][索引]
[注釋]
, ……
`字段名n`列類型[屬性][索引]
[注釋]
)[表類型][表字符集][注釋]
;22/45語法數(shù)據(jù)值和列類型列類型規(guī)定數(shù)據(jù)庫中該列存放的數(shù)據(jù)類型分為數(shù)值類型字符串類型日期和時間型數(shù)值類型NULL值23/45列類型分類4-1數(shù)值類型類型說明取值范圍存儲需求tinyint非常小的數(shù)據(jù)有符值:-27~27-1無符號值:0~28-11字節(jié)smallint較小的數(shù)據(jù)有符值:-215
~215-1無符號值:0~216-12字節(jié)mediumint中等大小的數(shù)據(jù)有符值:-223
~223-1無符號值:0~224-13字節(jié)int標(biāo)準(zhǔn)整數(shù)有符值:-231
~231-1無符號值:0~232-14字節(jié)bigint較大的整數(shù)有符值:-263
~263-1無符號值:0~264-18字節(jié)float單精度浮點數(shù)±1.1754351e-384字節(jié)double雙精度浮點數(shù)±2.2250738585072014e-3088字節(jié)decimal字符串形式的浮點數(shù)decimal(m,d)m個字節(jié)24/45列類型分類4-2字符串類型類型說明最大長度char[(M)]固定長字符串,檢索快但費空間,0<=M<=255M字符varchar[(M)]可變字符串0<=M<=65535變長度tinytext微型文本串28–1字節(jié)text文本串216–1字節(jié)25/45列類型分類4-3日期和時間型數(shù)值類型類型說明取值范圍DATEYYYY-MM-DD,日期格式1000-01-01~9999-12-31TIMEHh:mm:ss,時間格式-838:59:59~838:59:59DATETIMEYY-MM-DDhh:mm:ss1000-01-0100:00:00至9999-12-3123:59:59TIMESTAMPYYYYMMDDhhmmss格式表示的時間戳197010101000000~2037年的某個時刻YEARYYYY格式的年份值1901~215526/45列類型分類4-4NULL值理解為“沒有值”或“未知值”不要用NULL進(jìn)行算術(shù)運算,結(jié)果仍為NULL選擇數(shù)據(jù)類型整數(shù)和浮點日期類型char和varchar27/45數(shù)據(jù)字段屬性表列類型設(shè)置CREATETABLE[IFNOTEXISTS]`表名`
(
`字段名1`列類型[屬性][索引][注釋]
, `字段名2`列類型[屬性][索引]
[注釋]
, ……
`字段名n`列類型[屬性][索引]
[注釋]
)[表類型][表字符集][注釋]
;28/45語法數(shù)據(jù)字段屬性2-1UNSIGNED無符號的聲明該數(shù)據(jù)列不允許負(fù)數(shù)ZEROFILL0填充的不足位數(shù)的用0來填充,如
int(3),5則為005AUTO_INCREMENT自動增長的,每添加一條數(shù)據(jù),自動在上一個記錄數(shù)上加1通常用于設(shè)置主鍵,且為整數(shù)類型可定義起始值和步長29/45數(shù)據(jù)字段屬性2-2NULL和NOTNULL默認(rèn)為NULL,即沒有插入該列的數(shù)值如果設(shè)置為NOTNULL,則該列必須有值DEFAULT默認(rèn)的用于設(shè)置默認(rèn)值例如,性別字段,默認(rèn)為“男”,否則為“女”;若無指定該列的值,則默認(rèn)為“男”的值30/45數(shù)據(jù)字段注釋表列類型注釋
CREATETABLE[IFNOTEXISTS]`表名`
(
`字段名1`列類型[屬性][索引][注釋]
, `字段名2`列類型[屬性][索引]
[注釋]
, ……
`字段名n`列類型[屬性][索引]
[注釋]
)[表類型][表字符集][注釋]
;
CREATETABLE[IFNOTEXISTS]`test`
(`id`int(11)UNSIGNEDCOMMENT‘編碼號’)COMMENT=‘測試表’;示例31/45語法練習(xí)2:創(chuàng)建數(shù)據(jù)表student需求說明使用語句新建student表具體設(shè)計如下32/45數(shù)據(jù)表的類型3-1表列類型設(shè)置CREATETABLE[IFNOTEXISTS]`表名`
(
`字段名1`列類型[屬性][索引][注釋]
, `字段名2`列類型[屬性][索引]
[注釋]
, ……
`字段名n`列類型[屬性][索引]
[注釋]
)[表類型][表字符集][注釋]
;演示示例4:設(shè)置數(shù)據(jù)表的類型33/45語法數(shù)據(jù)表的類型3-2設(shè)置數(shù)據(jù)表的類型CREATETABLE表名( #省略一些代碼)ENGINE=MyISAM或者CREATETABLE表名( #省略一些代碼)ENGINE=InnoDB
MySQL注釋:
1、#……
單行注釋
2、/*……*/
多行注釋示例34/45數(shù)據(jù)表的類型3-3MySQL的數(shù)據(jù)表的類型MyISAM、InnoDB、HEAP、BOB、CSV等常見的MyISAM與InnoDB類型名稱MyISAMInnoDB事務(wù)處理不支持支持?jǐn)?shù)據(jù)行鎖定不支持支持外鍵約束不支持支持全文索引支持不支持表空間大小較小較大,約2倍使用MyISAM:節(jié)約空間及相應(yīng)速度使用InnoDB:安全性,事務(wù)處理及多用戶操作數(shù)據(jù)表技巧35/45設(shè)置數(shù)據(jù)表字符集表列類型設(shè)置
CREATETABLE[IFNOTEXISTS]`表名`
(
`字段名1`列類型[屬性][索引][注釋]
, `字段名2`列類型[屬性][索引]
[注釋]
, ……
`字段名n`列類型[屬性][索引]
[注釋]
)[表類型][表字符集][注釋]
;36/45語法設(shè)置數(shù)據(jù)表字符集可為數(shù)據(jù)庫、數(shù)據(jù)表、數(shù)據(jù)列設(shè)定不同的字符集設(shè)定方法創(chuàng)建時通過命令來設(shè)置,如
如無設(shè)定,則根據(jù)MySQL數(shù)據(jù)庫配置文件my.ini(Windows系統(tǒng))中的參數(shù)設(shè)定
如:character-set-sever=utf8
CREATETABLE表名( #省略一些代碼)CHARSET=utf8;37/45語法練習(xí)3:新建subject表需求說明使用語句新建subject表設(shè)置數(shù)據(jù)表為MyISAM類型具體設(shè)計如下38/45創(chuàng)建表索引
CREATETABLE[IFNOTEXISTS]`表名`
(
`字段名1`列類型[屬性
][索引][注釋]
, `字段名2`列類型[屬性][索引]
[注釋]
, ……
`字段名n`列類型[屬性][索引]
[注釋]
)[表類型][表字符集][注釋]
;39/45語法數(shù)據(jù)表的存儲位置MySQL數(shù)據(jù)表以文件方式存放在磁盤中包括表文件、數(shù)據(jù)文件以及數(shù)據(jù)庫的選項文件位置:MySQL安裝目錄\data下存放數(shù)據(jù)表。目錄名對應(yīng)數(shù)據(jù)庫名,該目錄下文件名對應(yīng)數(shù)據(jù)表注意InnoDB類型數(shù)據(jù)表只有一個*.frm文件,數(shù)據(jù)文件為上一級目錄的ibdata1文件MyISAM類型數(shù)據(jù)表對應(yīng)三個文件:*.frm--表結(jié)構(gòu)定義文件*.MYD--數(shù)據(jù)文件*.MYI--索引文件40/45修改數(shù)據(jù)表修改表(ALTERTABLE)修改表名添加字段修改字段刪除字段
ALTERTABLE舊表名RENAMEAS新表名
ALTERTABLE表名ADD字段名
列類型[屬性]
ALTERTABLE表名MODIFY字段名
列類型[屬性]
ALTERTABLE表名DROP字段名
ALTERTABLE表名
CHANGE舊字段名新字段名
列類型[屬性]演示示例5:修改數(shù)據(jù)表41/45語法刪除數(shù)據(jù)表IFEXISTS為可選,判斷是否存在該數(shù)據(jù)表如刪除不存在的數(shù)據(jù)表會拋出錯誤
DROPTABLE[IFEXISTS]表名語法演示示例6:刪除數(shù)據(jù)表42/45總結(jié)簡單說說DBMS與DB的關(guān)系?MySQL數(shù)據(jù)庫的特點是什么?如何使用SQLyog工具來創(chuàng)建數(shù)據(jù)庫表?如何創(chuàng)建數(shù)據(jù)表?如何修改和刪除數(shù)據(jù)表?43/45問題及作業(yè)集中問題&課后作業(yè)44/45掃我有更多精彩課程呦45/45
MySQL數(shù)據(jù)管理
線上線下平臺預(yù)習(xí)47/19本課目標(biāo)會使用MySQL語句添加數(shù)據(jù)會使用MySQL語句修改數(shù)據(jù)會使用MySQL語句刪除數(shù)據(jù)48/19外鍵管理外鍵作用創(chuàng)建外鍵建表時指定外鍵約束建表后修改刪除外鍵刪除外鍵、刪除表49/19演示示例1:外鍵管理數(shù)據(jù)庫數(shù)據(jù)管理數(shù)據(jù)庫意義數(shù)據(jù)存儲數(shù)據(jù)管理管理數(shù)據(jù)庫數(shù)據(jù)方法通過SQLyog等管理工具管理數(shù)據(jù)庫數(shù)據(jù)通過DML語句管理數(shù)據(jù)庫數(shù)據(jù)50/19DML語言DML(數(shù)據(jù)操作語言)用于操作數(shù)據(jù)庫對象中所包含的數(shù)據(jù)包括INSERT
(添加數(shù)據(jù)語句
)UPDATE(更新數(shù)據(jù)語句)DELETE
(刪除數(shù)據(jù)語句
)51/19添加數(shù)據(jù)INSERT命令字段或值之間用英文逗號隔開“字段1,字段2…”該部分可省略,但添加的值務(wù)必與表結(jié)構(gòu)數(shù)據(jù)列順序相對應(yīng),且數(shù)量一致可同時插入多條數(shù)據(jù),values后用英文逗號隔開INSERTINTO表名[(字段1,字段2,字段3,…)]VALUES('值1','值2','值3',
…)52/19注意語法添加grade表數(shù)據(jù)使用INSERT語句向數(shù)據(jù)表grade添加數(shù)據(jù)向數(shù)據(jù)列GradeName中添加如下數(shù)據(jù)大一、大二、大三、大四53/19演示示例2:添加數(shù)據(jù)表grade數(shù)據(jù)添加student表數(shù)據(jù)使用INSERT語句向數(shù)據(jù)表student添加數(shù)據(jù)學(xué)號姓名性別年級手機號地址郵箱身份證1011郭靖男113500000001北京海淀區(qū)中關(guān)村大街1號guojing@4503231986121110001012李文才男213500000002河南洛陽liwencai@4503231981123110001013李梅女313500000015上海盧灣區(qū)limei@45032319861231100054/19演示示例3:添加數(shù)據(jù)表student數(shù)據(jù)練習(xí)1:添加數(shù)據(jù)需求說明使用INSERT語句為課程表subject添加數(shù)據(jù)SubjectNo
課程編號SubjectName
課程名稱
ClassHour
學(xué)時
GradeID
年級編號1高等數(shù)學(xué)-112012高等數(shù)學(xué)-211023高等數(shù)學(xué)-310034高等數(shù)學(xué)-4130455/19修改數(shù)據(jù)UPDATE命令column_name為要更改的數(shù)據(jù)列value為修改后的數(shù)據(jù),可以為變量、具體值、表達(dá)式或者嵌套的SELECT結(jié)果condition為篩選條件,如不指定則修改該表的所有列數(shù)據(jù)UPDATE表名
SET
column_name=value
[,column_name2=value2,
….]
[WHEREcondition];56/19注意語法WHERE條件子句簡單理解為有條件地從表中篩選數(shù)據(jù)WHERE中的運算符運算符含義范例結(jié)果=等于5=6false<>或!=不等于5!=6true>大于5>6false<小于5<6true>=大于等于5>=6false<=小于等于5<=6trueBETWEEN在某個范圍之間BETWEEN5AND10-AND并且5>1AND1>2falseOR或5>1OR1>2true57/19修改student表數(shù)據(jù)使用UPDATE語句修改student表數(shù)據(jù)修改學(xué)號(StudentNo)為1013的學(xué)生記錄郵箱修改為student1013@密碼(LoginPwd)修改為00000058/19演示示例4:修改數(shù)據(jù)練習(xí)2:修改數(shù)據(jù)需求說明將數(shù)據(jù)表subject中ClassHour大于110且GradeID為1的課時都減少1059/19刪除數(shù)據(jù)2-1DELETE命令condition為篩選條件,如不指定則刪除該表的所有列數(shù)據(jù)DELETEFROM
表名[WHEREcondition];60/19注意語法刪除數(shù)據(jù)2-2TRUNCATE命令用于完全清空表數(shù)據(jù),但表結(jié)構(gòu)、索引、約束等不變區(qū)別于DELETE命令相同都能刪除數(shù)據(jù)、不刪除表結(jié)構(gòu),但TRUNCATE速度更快不同使用TRUNCATETABLE重新設(shè)置AUTO_INCREMENT計數(shù)器使用TRUNCATETABLE不會對事務(wù)有影響TRUNCATE[TABLE]table_name61/19注意語法演示示例5:刪除數(shù)據(jù)總結(jié)什么是DML語句?INSERT語句可以一次插入多條數(shù)據(jù)嗎?UPDATE語句可以同時修改多個數(shù)據(jù)列嗎?UPDATE語句和DELETE語句必須與WHERE條件語句配合使用嗎?62/19問題及作業(yè)集中問題&課后作業(yè)63/19掃我有更多精彩課程呦
使用DQL命令查詢數(shù)據(jù)(一)
線上線下平臺預(yù)習(xí)66/35本課目標(biāo)學(xué)完本次課程后,你能夠:掌握MySQL刪除數(shù)據(jù)掌握MySQL查詢語句掌握模糊查詢理解連接查詢原理掌握內(nèi)連接查詢掌握左外連接查詢理解自連接67/35課程項目分析案例:MySchool數(shù)據(jù)庫課程表成績表學(xué)生信息表年級表68/35數(shù)據(jù)表設(shè)計了解表之間的業(yè)務(wù)邏輯關(guān)系69/35DQL語言DQL(DataQueryLanguage,數(shù)據(jù)查詢語言)查詢數(shù)據(jù)庫數(shù)據(jù),如SELECT語句簡單的單表查詢或多表的復(fù)雜查詢和嵌套查詢數(shù)據(jù)庫語言中最核心、最重要的語句使用頻率最高的語句70/35SELECT語法SELECT[ALL|DISTINCT]{*|table.*|[table.field1[asalias1][,
table.field2[asalias2]][,
…]]}FROMtable_name[astable_alias][
left|out|innerjointable_name2
]#聯(lián)合查詢 [WHERE…] #指定結(jié)果需滿足的條件 [GROUPBY…] #指定結(jié)果按照哪幾個字段來分組 [
HAVING…] #過濾分組的記錄必須滿足的次要條件 [ORDERBY…] #指定查詢記錄按一個或者多個條件排序 [LIMIT{[offset,]row_count|row_countOFFSEToffset}];#指定查詢的記錄從哪條至哪條[]括號代表可選的;{}括號代表必須的;#
MySQL語句中的注釋符,也可以用/*該處為注釋*/語法71/35SELECTstudent.StudentNo,StudentName,StudentResultFROMstudent,result;指定查詢字段查詢表中所有的數(shù)據(jù)列結(jié)果,采用“*”符號可指定查詢的結(jié)果數(shù)據(jù)列如只查詢student表中的學(xué)號、姓名、電話如區(qū)分連接查詢時兩個表有同名的字段指定該字段屬于哪個表效率低,不推薦select*fromstudent;SELECTStudentNo,StudentName,PhoneFROMstudent;72/35AS子句AS子句作用可給數(shù)據(jù)列取一個新別名可給表取一個新別名可把經(jīng)計算或總結(jié)的結(jié)果用另外一個新名稱來代替AS子句用法SELECTStudentNoAS“學(xué)號”FROM
student;SELECT
a.StudentNoFROM
studentASa;SELECTPhone+1
AS
TelFROM
student;AS也可省略不寫注意73/35DISTINCT關(guān)鍵字的使用作用去掉SELECT查詢返回的記錄結(jié)果中重復(fù)的記錄(所有返回列的值都相同),只返回一條#查詢成績表中的所包含的課程ID
SELECTDISTINCTSubjectNoFROMresult;示例SELECTDISTINCT字段名1,字段名2...
FROM表名語法ALL關(guān)鍵字是默認(rèn)的,返回所有的記錄,與之相反注意演示示例1:簡單查詢語句74/35使用表達(dá)式的列2-1表達(dá)式一般由文本值、列值、NULL、函數(shù)和操作符等組成應(yīng)用場景SELECT語句返回結(jié)果列中使用SELECT語句的ORDERBY、HAVING等子句中使用DML語句中的where條件語句中使用表達(dá)式75/35使用表達(dá)式的列2-2在SQL語句中使用表達(dá)式返回的列中使用,如
避免SQL返回結(jié)果中包含“.”,“*”和括號等干擾開發(fā)語言程序,如SELECTversion(),100*3#返回MySQL版本和計算結(jié)果SELECTSubjectName“課程名稱”,ClassHour+10AS“新學(xué)時”FROMsubject;#給返回結(jié)果中的課時都加10個課時SELECTversion()asMySQL_V,123.44*100ASEXPRESSION;#返回結(jié)果不會與后臺開發(fā)程序發(fā)生混淆演示示例2:使用表達(dá)式的列76/35練習(xí)1:查詢課程表數(shù)據(jù)需求說明查詢課程表(subject)的所有記錄,返回數(shù)據(jù)要求返回字段名稱使用別稱返回課程名稱
(SujectName)總課時(SubjectHour)返回10天上完課程的均課時(ClassHour/10)77/35SELECT語法SELECT[ALL|DISTINCT]{*|table.*|[table.field1[asalias1][,table.field2[asalias2]][,…]]}FROMtable_name[astable_alias][left|out|innerjointable_name2]#聯(lián)合查詢
[WHERE…] #指定結(jié)果需滿足的條件 [GROUPBY…] #指定結(jié)果按照哪幾個字段來分組 [HAVING…] #過濾分組的記錄必須滿足的次要條件 [ORDERBY…] #指定查詢記錄按一個或者多個條件排序 [LIMIT{[offset,]row_count|row_countOFFSEToffset}];#指定查詢的記錄從哪條至哪條[]括號代表可選的;{}括號代表必須的;#
MySQL語句中的注釋符,也可以用/*該處為注釋*/78/35語法where條件語句用于檢索數(shù)據(jù)表中符合條件的記錄搜索條件可由一個或多個邏輯表達(dá)式組成,結(jié)果一般為真或假搜索條件的組成邏輯操作符比較操作符查詢在80-90分之間的所有成績記錄問題演示示例3:WHERE條件檢索79/35邏輯操作符操作符名稱語法描述AND或&&aANDb或a&&b邏輯與,同時為真,結(jié)果才為真OR或||aORb或a||b邏輯或,只要一個為真,則結(jié)果為真NOT或!NOTa或!a邏輯非,若操作數(shù)為假,結(jié)果則為真80/35比較操作符操作符名稱語法描述ISNULLaISNULL若操作符為NULL,則結(jié)果為真ISNOTNULLaISNOTNULL若操作符不為NULL,則結(jié)果為真BETWEENaBETWEENbANDc若a范圍在b與c之間則結(jié)果為真LIKEaLIKEbSQL模式匹配,若a匹配b,則結(jié)果為真INaIN(a1,a2,a3,….)若a等于a1,a2…中的某一個,則結(jié)果為真1、數(shù)值數(shù)據(jù)類型的記錄之間才能進(jìn)行算術(shù)運算2、相同數(shù)據(jù)類型的數(shù)據(jù)之間才能進(jìn)行比較注意81/35BETWEENAND范圍查詢根據(jù)一個范圍值來檢索等同于>=和<=聯(lián)合使用SELECT字段列1,字段2,…FROM表名WHERE字段x
BETWEEN值1AND值2#查詢課程表中課時在110和120之間的所有記錄SELECT*FROMsubjectWHEREClassHour
BETWEEN110AND120;等同于:SELECT*FROMsubjectWHEREClassHour>=110ANDClassHour<=120;示例語法演示示例4:BETWEENAND范圍查詢82/35LIKE模糊查詢在WHERE子句中,使用LIKE關(guān)鍵字進(jìn)行模糊查詢與“%”一起使用,表示匹配0或任意多個字符與“_”一起使用,表示匹配單個字符#查詢包含“數(shù)學(xué)”的所有課程SELECT*FROMsubjectWHERESubjectNameLIKE"%數(shù)學(xué)%";#查詢所有姓名為“李**”三個字的學(xué)生信息SELECTStudentNo,StudentNameFROMstudent
WHEREStudentNameLIKE"李__";示例演示示例5:LIKE模糊匹配83/35使用IN進(jìn)行范圍查詢在WHERE子句中使用IN進(jìn)行范圍查詢查詢的字段x的值,至少與括號中的一個值相同多個值之間用英文逗號隔開SELECT字段列1,字段2,…FROM表名WHERE字段x
IN(值1,值2,值3…)SELECT*FROMsubjectwhereClassHour=100ORClassHour=110ORClassHour=120;#普通處理方式SELECT*FROMsubjectwhereClassHourIN(100,110,120);#使用IN進(jìn)行查詢方式,更為簡潔,效率更高示例語法演示示例6:使用IN進(jìn)行范圍查詢84/35NULL空值條件查詢NULLNULL代表“無值”區(qū)別于零值0和空符串“”只能出現(xiàn)在定義允許為NULL的字段須使用ISNULL或ISNOTNULL比較操作符去比較演示示例7:查找地址不為空的學(xué)生信息85/35練習(xí)2:查詢“李”同學(xué)成績需求說明查詢所有姓“李”的學(xué)生所有成績86/35數(shù)據(jù)表分析案例:MySchool數(shù)據(jù)庫課程表成績表學(xué)生信息表年級表87/35表關(guān)系88/35SELECT語法SELECT[ALL|DISTINCT]{*|table.*|[table.field1[asalias1][,table.field2[asalias2]][,…]]}FROMtable_name[astable_alias][left|out|innerjointable_name2]#聯(lián)合查詢
[WHERE…] #指定結(jié)果需滿足的條件[GROUPBY…] #指定結(jié)果按照哪幾個字段來分組
[HAVING…] #過濾分組的記錄必須滿足的次要條件
[ORDERBY…] #指定查詢記錄按一個或者多個條件排序
[LIMIT{[offset,]row_count|row_countOFFSEToffset}];
#指定查詢的記錄從哪條至哪條[]括號代表可選的{}括號代表必須的#
MySQL語句中的注釋符,也可以用/*該處為注釋*/89/35連接查詢(多表查詢)連接查詢?nèi)缧枰鄰垟?shù)據(jù)表的數(shù)據(jù)進(jìn)行查詢,則可通過連接運算符實現(xiàn)多個查詢分類包括內(nèi)連接(innerjoin)等值和非等值的連接查詢自身連接查詢外連接(outjoin)左連接(LEFTJOIN)右連接
(RIGHTJOIN)90/35內(nèi)連接查詢2-1INNERJOIN內(nèi)連接在表中至少一個匹配時,則返回記錄SELECT字段1,字段2,…
FROMtable_1INNERJOINtable_2ONtable_1.字段x=table_2.字段y;#INNERJOIN與JOIN是相同的;#如table_1中的行在table_2中沒有匹配,則不返回;#要求:從subject和grade數(shù)據(jù)表查詢課程名稱和所屬年級名稱SELECTSubjectName,GradeNameFROMsubjectINNERJOINgradeONsubject.GradeID=grade.GradeID;示例語法91/35內(nèi)連接查詢2-2等值和非等值的連接查詢與單表查詢類似,都是SELECT語句把多個表放到FROM后,并用逗號隔開可使用AS關(guān)鍵字取別名,便于引用如無重名查詢字段則可省略數(shù)據(jù)表的指定#要求:從subject和grade數(shù)據(jù)表查詢課程名稱和所屬年級名稱#非等值連接查詢SELECT
SubjectName,
GradeName
FROM
subject,
grade;#等值查詢SELECT
SubjectName,
GradeName
FROM
subject,
gradeWHEREsubject.GradeID
=grade.GradeID;
返回記錄數(shù)為兩表記錄數(shù)的乘積等效于內(nèi)連接示例演示示例8:等值和非等值的連接查詢92/35外連接左外連接(LEFTJOIN)從左表(table_1)中返回所有的記錄,即便在右(table_2)中沒有匹配的行右外連接(RIGHTJOIN)從右表(table_2)中返回所有的記錄,即便在左(table_1)中沒有匹配的行SELECT字段1,字段2,…FROMtable_1LEFT[OUTER]JOINtable_2ONtable_1.字段x=table_2.字段y;SELECT字段1,字段2,…FROMtable_1RIGHT[OUTER]JOINtable_2ONtable_1.字段x=table_2.字段y;語法語法演示示例9:外連接查詢課程表93/35不同的SQLJOIN對比JOIN對比操作符名稱描述INNERJOIN
(JOIN
)如果表中有至少一個匹配,則返回行LEFTJOIN不論右表是否有匹配,都會返回左表的所有行RIGHTJOIN不論左表是否有匹配,都會返回右表的所有行94/35自連接查詢
數(shù)據(jù)表與自身進(jìn)行連接從一個包含欄目ID,欄目名稱和父欄目ID的表中,查詢父欄目名稱和其子欄目名稱,表結(jié)構(gòu)如下:#表結(jié)構(gòu)語句CREATETABLEIFNOTEXISTScategory(
categoryIdint(10)auto_incrementprimarykey,categoryNamevarchar(32)notnull,pidint(10));示例演示示例10:自連接查詢95/35練習(xí)3:連接查詢需求說明查詢學(xué)生表(student)的學(xué)號(studentNo),姓名(StudentName)和所在年級(GradeName)分別使用左連接查詢方式右連接查詢方式內(nèi)連接查詢方式Student表插入一條數(shù)據(jù)后比較三種查詢方式區(qū)別
StudentNo,StudentName,Phone,Address,Email
對應(yīng):
2000,"無名","13400000000001","上海","unname@"96/35總結(jié)查詢語句的基本語法是什么?模糊查詢的關(guān)鍵字是什么?在什么場合下需要使用連接查詢?有哪幾種連接查詢?97/35問題及作業(yè)集中問題&課后作業(yè)98/35掃我有更多精彩課程呦99/35
使用DQL命令查詢數(shù)據(jù)(二)
線上線下平臺預(yù)習(xí)101/18本課目標(biāo)學(xué)完本次課程后,你能夠:掌握排序查詢結(jié)果掌握LIMIT的使用掌握MySQL子查詢掌握MySQL聚合函數(shù)掌握MySQL分組查詢102/18SELECT語法SELECT[ALL|DISTINCT]{*|table.*|[table.field1[asalias1][,table.field2[asalias2]][,…]]}FROMtable_name[astable_alias][left|out|innerjointable_name2]#聯(lián)合查詢 [WHERE…] #指定結(jié)果需滿足的條件 [GROUPBY…] #指定結(jié)果按照哪幾個字段來分組 [
HAVING…] #過濾分組的記錄必須滿足的次要條件
[ORDERBY…] #指定查詢記錄按一個或者多個條件排序 [LIMIT{[offset,]row_count|row_countOFFSEToffset}];#指定查詢的記錄從哪條至哪條[]括號代表可選的;{}括號代表必須的;#
MySQL語句中的注釋符,也可以用/*該處為注釋*/103/18語法ORDERBY排序ORDERBY排序查詢對SELECT語句查詢得到的結(jié)果,按某些字段進(jìn)行排序與DESC或ASC搭配使用,默認(rèn)為ASC查詢《數(shù)據(jù)庫結(jié)構(gòu)-1》的所有考試結(jié)果,并按成績由高到低排列示例演示示例1:ORDERBY排序104/18SELECT語法SELECT[ALL|DISTINCT]{*|table.*|[table.field1[asalias1][,table.field2[asalias2]][,…]]}FROMtable_name[astable_alias][left|out|innerjointable_name2]#聯(lián)合查詢 [WHERE…] #指定結(jié)果需滿足的條件 [GROUPBY…] #指定結(jié)果按照哪幾個字段來分組 [HAVING…] #過濾分組的記錄必須滿足的次要條件
[ORDERBY…] #指定查詢記錄按一個或者多個條件排序
[LIMIT{[offset,]row_count|row_countOFFSEToffset}];
#指定查詢的記錄從哪條至哪條[]括號代表可選的;{}括號代表必須的;#
MySQL語句中的注釋符,也可以用/*該處為注釋*/105/18語法MySQL的LIMITLIMIT[m,]n或LIMITnOFFSETm限制SELECT返回結(jié)果的行數(shù)m制定第一個返回記錄行的偏移量n制定返回記錄行的最大數(shù)目SELECT*FROM`result`LIMIT5#返回前5條記錄SELECT*FROM`result`LIMIT5,10#返回6-15條記錄
示例注意m不指定則偏移量為0,從第一條開始返回前n條記錄LIMIT常用于分頁顯示106/18分頁查詢查詢所有《數(shù)據(jù)庫結(jié)構(gòu)-2》的考試成績,并按照由高到低顯示,同時把該成績對應(yīng)的學(xué)生的學(xué)號、姓名打印出來要求第一次查詢前5條記錄第二次查詢6-10條記錄演示示例2:分頁查詢107/18練習(xí):查詢《JAVA第一學(xué)年》學(xué)生信息需求說明查詢《JAVA第一學(xué)年》課程成績前10名且分?jǐn)?shù)大于80的學(xué)生信息(學(xué)號,姓名,課程名,分?jǐn)?shù))108/18子查詢在查詢語句中的WHERE條件子句中,又嵌套了另外一個查詢語句查詢課程為《高等數(shù)學(xué)-2》且分?jǐn)?shù)不小于80分的學(xué)生的學(xué)號和姓名
嵌套查詢可由多個子查詢組成,求解的方式是由里及外子查詢返回的結(jié)果一般都是集合,故而建議使用
IN關(guān)鍵字注意示例演示示例3:子查詢109/18案例查詢《C語言-1》的前5名學(xué)生成績信息演示示例4:查詢前5名110/18MySQL函數(shù)數(shù)學(xué)函數(shù)字符串函數(shù)日期和時間函數(shù)系統(tǒng)信息函數(shù)111/18MySQL的統(tǒng)計函數(shù)函數(shù)名稱描述COUNT()返回滿足SELECT條件的記錄總和數(shù),如SELECTCOUNT(*)…SUM()返回數(shù)字字段或表達(dá)式列作統(tǒng)計,返回一列的總和AVG(
)通常為數(shù)值字段或表達(dá)列作統(tǒng)計,返回一列的平均值MAX()可以為數(shù)值字段、字符字段或表達(dá)式列作統(tǒng)計,返回最大的值MIN()可以為數(shù)值字段、字符字段或表達(dá)式列作統(tǒng)計,返回最小的值不建議使用*,效率低112/18SELECT語法SELECT[ALL|DISTINCT]{*|table.*|[table.field1[asalias1][,table.field2[asalias2]][,…]]}FROMtable_name[astable_alias][left|out|innerjointable_name2]#聯(lián)合查詢 [WHERE…] #指定結(jié)果需滿足的條件
[GROUPBY…] #指定結(jié)果按照哪幾個字段來分組 [
HAVING…] #過濾分組的記錄必須滿足的次要條件
[ORDERBY…] #指定查詢記錄按一個或者多個條件排序 [LIMIT{[offset,]row_count|row_countOFFSEToffset}];
#指定查詢的記錄從哪條至哪條[]括號代表可選的;{}括號代表必須的;#
MySQL語句中的注釋符,也可以用/*該處為注釋*/113/18語法GROUPBY分組使用GROUPBY關(guān)鍵字對查詢結(jié)果分組對所有的數(shù)據(jù)進(jìn)行分組統(tǒng)計分組的依據(jù)字段可以有多個,并依次分組與HAVING結(jié)合使用,進(jìn)行分組后的數(shù)據(jù)篩選按照不同的課程分組,分別算出其平均分、最高分和最低分,對于低于60分平均分的不予顯示示例演示示例5:分組查詢114/18總結(jié)請舉例說明在什么情況下需要使用分組查詢?實現(xiàn)分頁查詢的關(guān)鍵字是什么?MySQL中的統(tǒng)計函數(shù)主要有哪幾個,作用是什么?115/18問題及作業(yè)集中問題&課后作業(yè)116/18掃我有更多精彩課程呦117/18
MySQL事務(wù)、索引、
數(shù)據(jù)恢復(fù)和備份
線上線下平臺預(yù)習(xí)119/32本課目標(biāo)學(xué)完本次課程后,你能夠:掌握MySQL的事務(wù)處理方法理解MySQL的ACID原則創(chuàng)建數(shù)據(jù)庫索引了解MySQL數(shù)據(jù)庫備份和恢復(fù)的幾種方法掌握mysqldump命令導(dǎo)出數(shù)據(jù)掌握source命令導(dǎo)入數(shù)據(jù)120/32MySQL的事務(wù)處理事務(wù)就是將一組SQL語句放在同一批次內(nèi)去執(zhí)行如果一個SQL語句出錯,則該批次內(nèi)的所有SQL都將被取消執(zhí)行注意MySQL事務(wù)處理只支持InnoDB和BDB數(shù)據(jù)表類型121/32事務(wù)的特性事務(wù)必須具備以下四個屬性,簡稱ACID屬性原子性(Atomicity)一致性(Consistency)隔離性(Isolation)持久性(Durability)122/61MySQL的事務(wù)實現(xiàn)方法SETAUTOCOMMIT使用SET語句來改變自動提交模式MySQL中默認(rèn)是自動提交使用事務(wù)時應(yīng)先關(guān)閉自動提交
SETAUTOCOMMIT=0;#關(guān)閉自動提交模式SETAUTOCOMMIT=1;#開啟自動提交模式示例注意123/32MySQL的事務(wù)實現(xiàn)方法STARTTRANSACTION開始一個事務(wù),標(biāo)記事務(wù)的起始點COMMIT提交一個事務(wù)給數(shù)據(jù)庫
ROLLBACK將事務(wù)回滾,數(shù)據(jù)回到本次事務(wù)的初始狀態(tài)
SETAUTOCOMMIT=1;開啟MySQL數(shù)據(jù)庫的自動提交124/32MySQL事務(wù)處理步驟125/32模擬網(wǎng)上支付2-1模擬網(wǎng)上支付顧客A在線購買一款商品,價格為500.00元,采用網(wǎng)上銀行轉(zhuǎn)賬的方式支付假如顧客A銀行卡的余額為2000.00元,且向賣家B支付購買商品費用500.00元,起始賣家B的賬號金額10000.00元創(chuàng)建數(shù)據(jù)庫shop和創(chuàng)建表account并插入2條數(shù)據(jù)+-------+--------------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+-------+--------------+------+-----+---------+----------------+|id|int(11)|NO|PRI|NULL|auto_increment||name|varchar(32)|NO||NULL|||cash|decimal(9,2)|NO||NULL||+-------+--------------+------+-----+---------+----------------+
INSERTINTO`account`(`name`,`cash`)VALUES('A',2000.00);INSERTINTO`account`(`name`,`cash`)VALUES('B',10000.00);126/32模擬網(wǎng)上支付2-2設(shè)置場景A賬戶成功減少500元,B賬戶應(yīng)該增加500元,但一些錯誤導(dǎo)致未增加成功,這時則需返回A賬戶的500元,達(dá)到賬戶總額的平衡要求:使用事務(wù)模擬以上過程演示示例1:網(wǎng)上支付127/32數(shù)據(jù)庫索引作用提高查詢速度確保數(shù)據(jù)的唯一性可以加速表和表之間的連接,實現(xiàn)表與表之間的參照完整性使用分組和排序子句進(jìn)行數(shù)據(jù)檢索時,可以顯著減少分組和排序的時間全文檢索字段進(jìn)行搜索優(yōu)化分類主鍵索引(PRIMARYKEY)唯一索引(UNIQUE)常規(guī)索引(INDEX)全文索引(FULLTEXT)128/32主鍵索引某一個屬性或?qū)傩缘慕M合能唯一標(biāo)識一條記錄如:學(xué)生表(學(xué)號,姓名,班級,性別等)
,學(xué)號就是唯一標(biāo)識的,可作為主鍵特點最常見的索引類型確保數(shù)據(jù)記錄的唯一性確定特定數(shù)據(jù)記錄在數(shù)據(jù)庫中的位置
CREATETABLE`Grade`(`GradeID`INT(11)
AUTO_INCREMENTPRIMARYKEY,
#省略代碼……
#主鍵索引也可在字段字義之后,如
#
PRIMARYKEY(`GradeID`))示例129/32唯一索引(UNIQUE)作用避免同一個表中某數(shù)據(jù)列中的值重復(fù)與主鍵索引的區(qū)別主鍵索引只能有一個唯一索引可有多個
CREATETABLE`Grade`( `GradeID`INT(11)AUTO_INCREMENTPRIMARYKEY, `GradeName`VARCHAR(32)NOTNULLUNIQUE
#或
UNIQUE
KEY
`GradeID`
(`GradeID`))示例130/32常規(guī)索引(INDEX)作用:快速定位特定數(shù)據(jù)注意index和key關(guān)鍵字都可設(shè)置常規(guī)索引應(yīng)加在查找條件的字段不宜添加太多常規(guī)索引,影響數(shù)據(jù)的插入、刪除和修改操作CREATETABLE`result`(
//省略一些代碼
INDEX/KEY
`ind`
(`studentNo`,`subjectNo`))ALTERTABLE`result`ADDINDEX
`ind`
(`studentNo`,`subjectNo`);創(chuàng)建表時添加創(chuàng)建后追加示例131/32作用:快速定位特定數(shù)據(jù)注意只能用于MyISAM類型的數(shù)據(jù)表只能用于
CHAR、
VARCHAR、TEXT數(shù)據(jù)列類型適合大型數(shù)據(jù)集
CREATETABLE`student`(
#省略一些SQL語句FULLTEXT(`StudentName`))ENGINE=MYISAM;ALTERTABLEemployeeADDFULLTEXT(`first_name`);全文索引(FULLTEXT)示例132/32創(chuàng)建表時添加創(chuàng)建后追加管理索引創(chuàng)建索引創(chuàng)建表時添加建表后追加刪除索引查看索引ALERTTABLE表名ADD索引類型(數(shù)據(jù)列名)DROPINDEX索引名ON表名ALTERTABLE表名DROPINDEX索引名ALTERTABLE表名DROPPRIMARYKEYSHOW
INDEX(或KEYS)
FROM表名語法語法語法133/32索引準(zhǔn)則索引不是越多越好不要對經(jīng)常變動的數(shù)據(jù)加索引小數(shù)據(jù)量的表建議不要加索引索引一般應(yīng)加在查找條件的字段134/32給數(shù)據(jù)庫表添加索引給數(shù)據(jù)庫表student添加索引學(xué)號StudentNo,添加主鍵索引身份證IdentityCard,添加唯一索引郵箱Email,添加常規(guī)索引姓名StudentName,添加全文索引(MyISAM類型數(shù)據(jù)表)演示示例2:添加索引135/32分析SQL語句的執(zhí)行性能提示:使用\G結(jié)尾能豎排顯示
查詢中不包含子查詢連接類型,從最好到最差的連接類型為const、eq_reg、ref、range、indexhe和ALL包含MySQL解決查詢的詳細(xì)信息演示示例3:EXPLAIN語句使用EXPLAIN表名(DESC表名)EXPLAINSELECT語句語法136/32添加正確的索引在WHERE、ORDERBY子句中經(jīng)常使用的字段字段的值是多個(例如性別字段則不適合)字段內(nèi)容不是經(jīng)常變化的經(jīng)常變化的字段,添加索引反而降低性能不宜過多添加索引每添加一條索引都會占用磁盤空間137/32MySQL的備份數(shù)據(jù)庫備份必要性保證重要數(shù)據(jù)不丟失數(shù)據(jù)轉(zhuǎn)移MySQL數(shù)據(jù)庫備份方法mysqldump備份工具數(shù)據(jù)庫管理工具,如SQLyog直接拷貝數(shù)據(jù)庫文件和相關(guān)配置文件138/32mysqldump數(shù)據(jù)庫備份作用轉(zhuǎn)儲數(shù)據(jù)庫搜集數(shù)據(jù)庫進(jìn)行備份將數(shù)據(jù)轉(zhuǎn)移到另一個SQL服務(wù)器(不一定是MySQL服務(wù)器)#備份myschool數(shù)據(jù)庫如:
>mysqldump-uroot-pmyschool>d:/myschool.sqlEnterPassword:*****mysqldump-h主機名–u用戶名–p[options]數(shù)據(jù)庫名[table1table2
table3]>path/filename.sql預(yù)存文件目錄,須有該目錄讀寫權(quán)限語法示例139/32mysqldump常用選項2-1符號名稱描述--add-drop-table導(dǎo)出sql腳本會加上DROPTABLEIFEXISTS語句默認(rèn)是打開的,可以用--skip-add-drop-table來取消--add-locks該選項會在INSERT語句中捆綁一個LOCKTABLE和UNLOCKTABLE語句好處:防止記錄被再次導(dǎo)入時,其他用戶對表進(jìn)行的操作,默認(rèn)是打開的-t或--no-create-info忽略不寫重新創(chuàng)建每個轉(zhuǎn)儲表的CREATETABLE語句140/32提示可通過mysqldump--help查看該命名的選項mysqldump常用選項2-2符號名稱描述-c或--complete-insert在每個INERT語句的列上加上字段名在數(shù)據(jù)庫導(dǎo)入另一個數(shù)據(jù)庫時非常有用-d或--no-data不寫表的任何行信息。對于只想轉(zhuǎn)儲表的結(jié)構(gòu)很有用--where"where-condition",-w"where-condition"只轉(zhuǎn)儲給定的WHERE條件選擇的記錄--opt該選項是速記;等同于指定--add-drop-tables--add-locking--create-option--disable-keys--extended-insert--lock-tables
--quick--set-charset141/32mysqldump數(shù)據(jù)庫備份備份MySchool數(shù)據(jù)庫的subject課程表,保存為subject.sql腳本文件要求在每個INERT語句的列上加上字段名142/32MySQL數(shù)據(jù)庫的恢復(fù)方法一用SOURCE語法
/path/是一個絕對路徑,并且必須是mysql運行用戶有權(quán)限讀取的文件SOURCE在MySQL命令行里執(zhí)行方法二用mysql客戶端SOURCE/path/db_name.sql;mysql–uroot–p
dbname</path/db_name.sql;都要先創(chuàng)建或選擇數(shù)據(jù)庫143/32演示示例4:數(shù)據(jù)庫的備份和恢復(fù)利用SQL語句導(dǎo)出、導(dǎo)入數(shù)據(jù)輸出的文件不能先存在,否則報錯SELECT
*INTOOUTFILE'file_name'FROMtbl_nameLOADDATAINFILE'file_name'INTO
TABLEtbl_name[FIELDS]語法演示示例5:數(shù)據(jù)的導(dǎo)出和導(dǎo)入144/32語法導(dǎo)出數(shù)據(jù)導(dǎo)入數(shù)據(jù)練習(xí)1:數(shù)據(jù)庫備份和恢復(fù)需求說明使用mysqldump命令備份myschool數(shù)據(jù)庫要求在每個INSERT語句上加上字段名導(dǎo)入備份的myschool數(shù)據(jù)庫要求使用SOURCE命令和mysql命令兩種方式恢復(fù)數(shù)據(jù)145/32練習(xí)2:查詢綜合練習(xí)查詢密碼長度不足6位的學(xué)員編號、姓名、密碼、年級名查找鄭環(huán)環(huán)所有考試的成績(科目名稱、考試成績)使用表連接方式查詢所有U1年級學(xué)員學(xué)號、姓名及年級名使用子查詢方式查詢所有U1年級學(xué)員學(xué)號、姓名、年級ID使用表連接方式查詢“Java”課程至少一次考試剛好等于60分的學(xué)生姓名使用子查詢方式查詢“Java”課程至少一次考試剛好等于60分的學(xué)生使用子查詢方式+表連接方式混合查詢“Java”課程至少一次考試剛好等于60分的學(xué)生146/32總結(jié)MySQL數(shù)據(jù)庫事務(wù)的ACID原則是什么?如何關(guān)閉和開啟MySQL的自動提交?MySQL的事務(wù)處理實現(xiàn)流程是什么?MySQL數(shù)據(jù)庫有哪些索引?什么時候使用索引?MySQL備份的幾種方法?如何實現(xiàn)mysqldump的導(dǎo)出以及SOURCE導(dǎo)入?147/32問題及作業(yè)集中問題
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流公司安全生產(chǎn)管理制度文本
- 2026年企業(yè)風(fēng)險管理試題風(fēng)險評估與6S結(jié)合探討
- 2026年機械工程師認(rèn)證試題機械設(shè)備維修與維護(hù)題庫
- 2026年大學(xué)計算機專業(yè)期末考試操作系統(tǒng)計算機網(wǎng)絡(luò)綜合題
- 2026年教育心理學(xué)學(xué)生心理輔導(dǎo)方法考試題庫及答案
- 2026年網(wǎng)絡(luò)安全工程師技能等級認(rèn)證筆試指南
- 2026年少兒科普教育項目設(shè)計實戰(zhàn)考核
- 2026年企業(yè)管理戰(zhàn)略制定及執(zhí)行力考察經(jīng)典試題集
- 2026年網(wǎng)絡(luò)直播帶貨的消費心理與市場前景認(rèn)證題集
- 2025 小學(xué)二年級道德與法治上冊公共場合不摸他人頭發(fā)課件
- 2026貴州貴陽市安航機械制造有限公司招聘8人考試重點試題及答案解析
- 2026重慶高新開發(fā)建設(shè)投資集團招聘3人備考考試試題及答案解析
- 2026年度宣城市宣州區(qū)森興林業(yè)開發(fā)有限公司第一批次員工公開招聘筆試參考題庫及答案解析
- 老年人管理人員培訓(xùn)制度
- 2025年湖南常德市鼎城區(qū)面向全市選調(diào)8名公務(wù)員備考題庫及答案詳解(新)
- 2026年高考時事政治時事政治考試題庫及答案(名校卷)
- 工程施工月報表
- 鍋爐外部檢驗報告
- GB/T 3098.6-2023緊固件機械性能不銹鋼螺栓、螺釘和螺柱
- 音標(biāo)拼讀練習(xí)(彩色版)
- GB/T 6672-2001塑料薄膜和薄片厚度測定機械測量法
評論
0/150
提交評論