版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第5章MySQL數據庫基礎88-1第5章MySQL數據庫基礎數據庫概念什么是MySQLMySQL與xBase的差別MySQL的基本語法MySQL的常用操作SQL簡介MySQL的安裝和調試MySQL的GUI客戶端第5章MySQL數據庫基礎88-2本章教學目標了解Web數據庫的特點,理解Web數據庫應用的基本流程和特點了解數據庫的基本要素和數據類型,掌握數據庫數據和字段類型的選取原則學習測試MySQL,理解和掌握C/S結構數據庫的應用特點,掌握基本的Web數據庫客戶端的應用了解常用的SQL語句第5章MySQL數據庫基礎88-3數據庫概念數據庫是管理信息的常規(guī)手段,它可以處理各種各樣的信息、試驗數據、業(yè)務記錄、銷售訂單、人事檔案和顧客請求等數據庫的優(yōu)勢在于可以將龐大、復雜的信息以有序的方式組織起來,便于修改和查詢,免除管理人員手工處理這些枯燥的數據數據庫系統(tǒng)在算法、系統(tǒng)結構等方面采取了許多辦法提高數據處理性能,同時在數據的保護、存取控制和備份上附加了許多重要功能第5章MySQL數據庫基礎88-4關系數據庫概念數據庫的一般分類方法是按數據的組織和查詢方式區(qū)分早期數據庫常常是網狀結構數據庫或者層次結構數據庫目前主要的數據庫系統(tǒng)都是基于關系代數的關系數據庫管理系統(tǒng)(RDBMS)在關系數據庫管理系統(tǒng)中,表中的數據可以通過記錄(行)或字段(列)查詢,同時表與表之間的數據可以建立“關系”,即可從不同的表中找到相關的信息第5章MySQL數據庫基礎88-5數據庫常用操作一般關系型數據庫可以對表做插入、刪除、更新、檢索(常用英文縮寫ADUS表示)記錄等操作現在許多關系型數據庫添加了部分面向對象特色,不過一般還是以關系運算為基礎ADUS為Add,Delete,Update,Search四個英文單詞的詞頭字母第5章MySQL數據庫基礎88-6SQL概念關系型數據庫使用的語言稱為結構化查詢語言(StructuredQueryLanguage,SQL),SQL是數據庫語言的標準微軟公司有一個SQLServer,它只是一個實現了SQL標準的數據庫產品,并非SQL標準市場上有很多符合SQL標準的數據庫產品,最流行的當數Oracle公司的Oracle9iSQL標準由IBM的DB2數據庫演化而來,DB2也是一個非常出色的商業(yè)化數據庫產品第5章MySQL數據庫基礎88-7什么是MySQLMySQL是一個快速、多線程、多用戶、網絡化的SQL數據庫服務器,由瑞典TcX公司負責開發(fā)和維護1994年,TcX開始尋找一個用來開發(fā)Web應用程序的SQL服務器,并測試了一些商業(yè)服務器,但是發(fā)現所有這些服務器對于TcX的大型數據表來說都太慢因此他們開發(fā)了新的服務器,這就是MySQLMySQL在2008年1月被Sun公司收購第5章MySQL數據庫基礎88-8MySQL的工作環(huán)境MySQL可以工作在許多平臺上,如PC上使用的Linux、FreeBSD等開放源代碼的操作系統(tǒng),運行在企業(yè)級服務器上的Solaris和Windows等商用操作系統(tǒng)本課程建議使用ApacheFriendsforWindows套件中包含的MySQL數據服務器、以及相關的其他組件(NativeClients和phpMyadmin)第5章MySQL數據庫基礎88-9MySQL與xBase的差別MySQL與xBase類的數據庫系統(tǒng)(包括dBase、FoxBASE、Paradox等)有很大差別,這些差別包括:數據庫運行的形態(tài)數據庫查詢語言數據庫程序設計方法數據庫安全管理數據庫訪問方式等第5章MySQL數據庫基礎88-10xBase工作模式(一)xBase在運行中一般不使用客戶端/服務器(C/S結構)形態(tài),它以一體化形式構造的數據庫管理系統(tǒng)隨客戶端一起啟動和關閉,或者說xBase的客戶端和數據庫管理系統(tǒng)同屬一個計算機進程雖然xBase可以在C/S結構或局域網環(huán)境下運行,但一般僅限于文件服務器形態(tài),而不是數據庫服務器形態(tài),文件服務器在數據庫環(huán)境下工作效率很低第5章MySQL數據庫基礎88-11xBase工作模式(二)例如運行在網絡工作站上的xBase的應用程序需要進行數據查詢:其可能的查詢結果只有三條記錄而整個數據表卻有2000條記錄存儲數據文件的文件服務器會將整張表全部發(fā)給該工作站,由工作站選取到需要的記錄后,將無用的記錄丟棄這種方式應用在局域網環(huán)境下,是可以忍受的,但在廣域網中,確實是最不經濟的第5章MySQL數據庫基礎88-12xBase工作模式(圖示)第5章MySQL數據庫基礎88-13MySQL與xBase的差別MySQL是一個基于C/S結構的數據庫服務器,它的服務器程序和客戶端程序是互相獨立的計算機進程,這些進程的基本運行過程都是基于TCP/IP的客戶端程序需要依賴于服務器的服務,這種服務模式的工作效率比文件服務方式高的多,且客戶端程序的終止不會影響服務器程序的運行第5章MySQL數據庫基礎88-14MySQL的工作模式(一)如果瀏覽器需要通過Web服務器訪問數據庫服務器,只需將訪問請求發(fā)送給數據庫服務器(一般以SQL指令形式鑲嵌在動態(tài)網頁里通過CGI解釋器發(fā)送給數據庫服務器),數據庫服務器在完成查詢任務后,將查詢結果(如三條記錄)通過Web服務器發(fā)送給瀏覽器用戶這種過程自然會加大對數據庫服務器駐留主機的工作負荷,但大大減輕了網絡傳輸的壓力,提高了網絡的效率,這對像因特網上的應用程序卻是至關重要的第5章MySQL數據庫基礎88-15MySQL的工作模式(圖示)第5章MySQL數據庫基礎88-16MySQL的工作模式(二)用戶在操作系統(tǒng)中可以通過不同的方式觀察MySQL的運行形態(tài)在UNIX系統(tǒng)中可以通過$ps-aux命令觀察在Windows下,可以通過任務窗口看到這兩個不同的進程(MySQLServervs.MySQLclient)第5章MySQL數據庫基礎88-17MySQL的工作模式(三)MySQL的客戶端程序個數很多,各項數據庫管理任務是通過各種不同的客戶端程序來完成的如常規(guī)數據庫操作程序“mysql.exe”,數據后備程序“mysqldump.exe”,管理員客戶程序“mysqladmin.exe”等值得注意的是,作為Web服務器的組成部分,PHP.exe(或PHP.dll)程序在與數據庫服務器通信時,其身份也是數據庫的客戶端程序第5章MySQL數據庫基礎88-18MySQLvs.xBase---數據庫查詢語言xBase一般采用專用的數據庫查詢語言。這種數據庫查詢語言與數據庫應用程序的設計往往是一體化的,這樣做的優(yōu)點是執(zhí)行效率高,缺點是通用性或可移植性差MySQL采用工業(yè)界通行的SQL語言(這是目前大部分數據庫產品所支持的數據訪問語言),具有良好的通用性或可移植性,使應用程序的開發(fā)效率大大提高第5章MySQL數據庫基礎88-19MySQLvs.xBase--數據庫程序設計方法在xBase中,數據庫應用程序的設計語言與數據庫查詢操作語言是一體化設計的,不存在選擇程序設計方法的問題而MySQL是SQL標準的一種實現方式,由于SQL語言不支持變量和程序控制流程,所以數據庫應用程序的開發(fā)必須依賴于其他的所謂“宿主”語言,而PHP也是一種SQL的宿主語言。第5章MySQL數據庫基礎88-20MySQLvs.xBase---數據庫安全管理在xBase中,幾乎沒有什么安全性可言,任何人只要能夠打開計算機或登錄到文件服務器,就可以對數據庫文件進行訪問在MySQL中,對用戶登錄和數據庫表的訪問設定了比較全面的安全管理,同時,也增加了服務器管理員的管理工作熟悉xBase的程序員往往要花一定的時間才能適應MySQL在安全性方面設置的各種“絆腳石”。第5章MySQL數據庫基礎88-21MySQL的安全性管理包括用戶注冊和登錄的管理本地登錄和網絡登錄的管理各種資源操作權限管理第5章MySQL數據庫基礎88-22MySQL的服務器啟動啟動ApacheFriends的MySQL服務器:d:\xampp\mysql_start.bat”服務器啟動后,可以該作業(yè)視窗不可關閉
第5章MySQL數據庫基礎88-23MySQL登錄(NativeClient)啟動MySQL客戶端程序“mysql.exe”,連接數據庫服務器。在Windows環(huán)境下使用DOS命令:
c:\mysql\bin\mysql//初次啟動無口令設置時,默認以root身份登錄以root身份登錄MySQL或啟動mysql客戶端與Linux系統(tǒng)管理員沒關系;客戶端連接成功后,系統(tǒng)出現mysql>字樣的提示符,表示服務器準備接受服務請求第5章MySQL數據庫基礎88-24MySQL的基本使用過程(NativeClient)選擇需要操作的數據庫:
mysql>usemysql; //選擇MySQL的管理數據庫進行相關的數據庫操作:
mysql>select*fromuser; //顯示mysql數據庫中user表內的內容斷開客戶端程序與數據庫服務器連接:
mysql>quit;
第5章MySQL數據庫基礎88-25MySQL服務器的關閉在必要時,關閉數據庫服務器
D:\xampp\mysql_stop.bat第5章MySQL數據庫基礎88-26MySQL的基本語法---命名規(guī)則用于數據庫、表、記錄、字段、索引和別名。MySQL命名使用的字符除了字母、數字和下劃線“_”,還有美元符“$”。四種字符都可以用在名稱的第一個字符,不像一般程序語言只能用字母開頭不過純粹數字是不能作為名稱使用的,否則就會產生混淆浮點數指數部分不能省略“+”和“-”符號的原因也在于此一般名稱不能超過64個字符,別名可放寬到256個字符第5章MySQL數據庫基礎88-27MySQL的基本語法---大小寫規(guī)則別名區(qū)分大小寫MySQL的數據庫和表分別以目錄和文件的形式存在,因此大小寫的區(qū)分依賴于數據庫服務器駐留的操作系統(tǒng)。Windows下它們不分大小寫,而UNIX下區(qū)分大小寫字段、索引、函數名和關鍵字不區(qū)分大小寫無論這些名稱是否區(qū)分大小寫,管理員和用戶都應該建立一個貫穿始終的策略第5章MySQL數據庫基礎88-28MySQL數據的表示及存儲形式MySQL從基本數據類型和字段類型兩方面來考慮數據;而基本數據類型是字段類型的基礎MySQL的基本數據類型包括:十進制數、16進制數字、字符串、日期和時間第5章MySQL數據庫基礎88-29MySQL基本數據類型---10進制數字最常用的一種計數法,包括整數和浮點數若數字前有“-”,表示該數是負值小數點“.”作為浮點數的分隔符,小數點兩側的零值可以分別省略,但不能同時省略例如:0.13可以記為.13;1.0可以記為1.科學計數法:格式為10進制數字,接無理數e(或E),接“+”或“-”號(其中“+、-”號不可缺少,否則會產生混淆),再接一個無符號整數一個整數也可以在浮點語境中使用,被系統(tǒng)解釋為等值的浮點數下面是幾個合法的十進制數:
1221,0,-33
284.34,-12312.213e+10,133.00第5章MySQL數據庫基礎88-30MySQL的基本數據類型---16進制數字在數字語境中,16進制數字類似于整數,(精度為64位)。例如:由于“+”的出現,使得下列SQL語句處于數字語境:mysql>SELECT0xa+0;
在字符串語境中,16進制數字類似于用二進制形式表示的字符串,這里每一對16進制數字被變換為一個字符
MySQL>select0x5061756c;
->Paul第5章MySQL數據庫基礎88-31MySQL的基本數據類型---字符串一個字符串是一個字符序列,用單引號(')或雙引號(")圈起來。例如:'astring',"anotherstring“與PHP類似,MySQL也有一些字符序列有特殊的意義,這些字符序列以反斜線(\)開始,稱為轉義字符例如:\t=制表符,\0=ASCII0(NULL)第5章MySQL數據庫基礎88-32MySQL的基本數據類型---日期和時間MySQL支持多種時間格式2001-12-12、12:12:12,這種時間格式是ANSI標準而0000000000234254,是UNlX時間戳格式第5章MySQL數據庫基礎88-33MySQL的基本數據類型---NULLNULL是一個特殊值,它表示沒有任何值,它與“0”、空字符串都不是一回事NULL進行算術運算,答案只能是NULL第5章MySQL數據庫基礎88-34MySQL字段類型在建數據庫表時,要為每字段指定類型MySQL每種基本數據類型(NULL除外)都可以衍生出若干字段類型NULL類型則被視為一個NULL值或者NULL屬性,為其它字段類型使用由于MySQL正處在不斷開發(fā)的過程中,因此有些特性包括字段類型的性質也可能發(fā)生變化第5章MySQL數據庫基礎88-35MySQL字段類型---整數由整數衍生的字段類型有無符號都可以,所有的整型類型可以有一個可選屬性(非標準的)“UNSIGNED”若在字段中僅使用正數并期望有較大的取值范圍,則可以使用無符號值INT是INTEGER的同義詞第5章MySQL數據庫基礎88-36MySQL的整數字段類型
字段類型需要的存儲量 TINYINTl個字節(jié) SMALLINT 2個字節(jié) MEDIUMINT3個字節(jié) INT 4個字節(jié) INTEGER 4個字節(jié) BIGINT8個字節(jié) 第5章MySQL數據庫基礎88-37MySQL字段類型---浮點數浮點數衍生的字段類型有三種:FLOAT、DOUBLE和DECIMAL與整型不同,它們不能有USIGNED屬性,但擁有最小非0值,可以指定精度第5章MySQL數據庫基礎88-38MySQL的浮點型字段類型字段類型 需要的存儲量
FLOAT[(M,D)],FLOAT(4)
4字節(jié)DOUBLE[(M,D)],FLOAT(8)8字節(jié)DOUBLEPRECISION,
REAL,DEC,
DECIMAL(M,D),NUMERICM+2字節(jié)第5章MySQL數據庫基礎88-39MySQL字段類型---DECEMAL說明(1)DEC、NUMERIC、REAL和DOUBLEPRECISION作為關鍵詞在MySQL中是DECEMAL的同義詞,被實現為同樣的類型,用于保存對準確精度敏感的值例如與貨幣有有關的數據當聲明某個字段是這些類型之一時,需要指定數值的精度(Precision)和小數位數(Scale)第5章MySQL數據庫基礎88-40MySQL字段類型---DECEMAL說明(2)在MySQL中,為保證小數精度,DECIMAL
等類型數值是以字符串形式而不是以二進制浮點數形式存儲的,被保存數值的每位使用1個字符對于負值,“-”號占一個字符,當一個數的小數部分不為零時,小數點“.”占一個字符,反之,小數點不占字符例如:18.0的存儲形式為18,是2位,而18.3的存儲形式為18.3,是4位第5章MySQL數據庫基礎88-41MySQL字段類型---DECEMAL說明(3)DECIMAL字段,實際范圍可由設定字段的precision(M)或scale(D)限制如果賦給小數部分的位超過了scale所指定的位數時,該值將根據scale四舍五入當一個DECIMAL字段被賦予的值超過了指定的(或默認值)precision和scale隱含范圍時,MySQL將存儲該字段所示范圍的相應最大值或最小值例如:“testDECEMAL(4,2)”被賦予0.003時,實際存儲的值為0.01第5章MySQL數據庫基礎88-42MySQL字段類型---字符串字符串類型有CHAR,VARCHAR,BLOB,TEXT,ENUM和SET字符串類型不但可以存儲字符串,也可以用來存儲二進制數據,例如圖像和聲音等多媒體數據第5章MySQL數據庫基礎88-43MySQL字段類型---字符串說明VARCHAR和BLOB和TEXT類型是變長類型,對于其存儲需求取決于字段值的實際長度ENUM對象是枚舉類型,其大小由不同枚舉值的數量決定。長度為1個字節(jié)時,最大多以有255個值;2個字節(jié)時,最多可以有65535個值SET對象的大小由(彼此不同的)集合成員數量決定,如果集合大小是N,對象可占據(N+7)/8(結果四舍五入為1,2,3,4或8)個字節(jié)。一個SET對象最多能有64個成員第5章MySQL數據庫基礎88-44CHAR和VARCHAR(1)這兩種數據類型區(qū)別在于存儲和檢索的方式不同CHAR字段的長度可以是0~255之間的整數值。例如CHAR(4)占有4個字節(jié)。當CHAR值存儲時,如果實際字符串長度較聲明的短,系統(tǒng)用空格字符串靠右填補到聲明長度。當CHAR值被檢索時,右面的空格被自動刪去,因此CHAR數據類型右面無法加上空格第5章MySQL數據庫基礎88-45CHAR和VARCHAR(2)VARCHAR字段中的值是變長字符串。VARCHAR字段長度可以在1~255之間聲明VARCHAR值除存儲若干字符外,還須一個字節(jié)用于記錄字串長度,而不再填補空格VARCHAR的值在存儲時,右面的空格被自動刪去這樣,從最終檢索效果來看和CHAR是一樣的,但VARCHAR比CHAR多占據一個字節(jié)如果把一個超過字段最大長度的字符串賦給CHAR或VARCHAR字段,該字符串將被截斷,以適合最大長度
第5章MySQL數據庫基礎88-46CHAR和VARCHAR(3)CHAR和VARCHAR字段在存儲和比較值時,一般不用區(qū)分字母的大小寫,除非在建表時,被指定具有BINARY屬性BINARY屬性意味著該字段的值根據ASCII代碼順序以大小寫區(qū)分的方式存儲和比較如果標記了BINARY的字段用于一個表達式中,整個表達式將作為一個BINARY值參與比較第5章MySQL數據庫基礎88-47TEXT和BLOB說明(1)MySQL有4個TEXT類型:TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT;一般情況下,可以認為TEXT字段是一個大型的VARCHAR字段與TEXT類型相對應于4個BLOB類型:TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB??梢园袯LOB字段看成是一個大型VARCHARBINARY字段第5章MySQL數據庫基礎88-48TEXT和BLOB(2)二者具有同樣的最大長度和存儲需求。BLOB和TEXT類型之間的惟一差別是:對BLOB的值進行排序和比較時,要考慮字母大小寫,而TEXT值不用考慮字母大小寫如果把一個超過字段類型最大長度的值賦給BLOB或TEXT字段,這個的超過部分將被略去LongBLOB或LongTEXT字段數據項的存儲能力為232+4(用于存儲多媒體數據)第5章MySQL數據庫基礎88-49MySQL日期和時間類型DATETIME、DATE、TIMESTAMP、TIME和YEAR,都有合法的取值范圍插入非法的值的結果,該字段值被置為0為使日期核查更“快捷”,MySQL只檢查月份是否在0~12的范圍內,日期在0~31的范圍內MySQL實際上允許存儲某些不存在的日期值,例如2002-2-31,因此日期檢查成了應用程序的責任第5章MySQL數據庫基礎88-50MySQL日期和時間類型DATETIME同時包含日期和時間信息DATE類型只包含日期值MySQL以“HH:MM:SS”格式顯示TIME值MySQL檢索并且以“YYYY”格式顯示YEAR值,其范圍從1901~2155第5章MySQL數據庫基礎88-51數據庫表字段類型選擇(一)字段類型選擇要能正確表達應用程序對數據本身的要求。例如:如果是金融數據,設計時程序要考慮字段類型能否表達所需數據的精度在科研和工程應用方面,則必須考慮字段類型能否正確表示特別大或特別小的數據,不能因為數據超出可表達的范圍而被截斷第5章MySQL數據庫基礎88-52數據庫表字段類型選擇(二)字段類型選擇要便于操作。有些數據表面上是數字,但實際使用時,用字符串表示則會更方便例如,在查詢IP地址時,很少做算術運算,卻可能經常做模式匹配對于選項很少的字符串,一般用枚舉型要合適些。例如,性別第5章MySQL數據庫基礎88-53數據庫表字段類型選擇(二)字段類型選擇必須考慮和比較選擇方案的性能和效率問題對于比較短數據,通常不要隨便使用過大的字段類型,這樣數據處理會更快一般情況下,定長字段類型比不定長字段類型處理要快,整數比浮點數要快得多第5章MySQL數據庫基礎88-54MySQL---數據庫級操作創(chuàng)建數據庫
mysql>CreateDatabase數據庫名;例如:mysql>CreateDatabasenetsql;//創(chuàng)建網絡實驗用數據庫第5章MySQL數據庫基礎88-55創(chuàng)建數據庫新建的數據庫以一個目錄形式存在于硬盤上(xampp\mysql\data目錄下)目錄中為每個表建立了3個文件,分別記錄表結構、索引(即使不建立索引這個文件依然存在)和數據內容第5章MySQL數據庫基礎88-56使用(選擇)數據庫在MySQL中,用戶可以操作多個數據庫,use指令用來確定當前數據庫:mysql>use數據庫名;例如:mysql>usenetsql;
//選定網絡實驗用數據庫對于當前的數據庫表進行操作時,可以省略數據庫名稱當被操作的表不在當前數據庫時,要用“數據庫名.表名”作為被操作對象的名稱第5章MySQL數據庫基礎88-57MySQL表結構的操作指令“CREATETABLE”是創(chuàng)建新表的命令,MySQL建表命令格式如下:CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name
[(create_definition,...)][table_options][select_statement]第5章MySQL數據庫基礎88-58建表操作一個用MySQL指令建立表的示例:mysql>CREATETABLEsample(
NameCHAR(30)NOTNULL,addressCHAR(60),ageINTNOTNULL,
weightINT,sexENUM("F","M"),INDEX(name(10))
);第5章MySQL數據庫基礎88-59建表操作(使用SELECT)如果在CREATE語句后指定一個SELECT語句,則可以從一個現有的表中派生出一張新表,MySQL將為在SELECT語句中所列出的所有的字段創(chuàng)建新字段。例如:
mysql>CREATETABLEtest2SELECTb,cFROMtest1
該指令將創(chuàng)建一個有2個字段的新表test2,其字段的定義來自于其派生的表test1第5章MySQL數據庫基礎88-60MySQL的數據錄入可以使用INSERT語句在表建好的表中存儲數據,其基本格式是:INSERT[INTO]tbl_name[(col_name,...)]
VALUES(expression,...),(...),...上述格式表示,一次可以插入多個數據字段。例如:$sql="INSERTINTOimgstoreVALUES(NULL,'$formdesc','$data',
#026:'$formdata_name','$formdata_size','$formdata_type')";
第5章MySQL數據庫基礎88-61MySQL的數據錄入注意事項在作INSERT操作時:不要忘記給聲明了NOTNULL的字段賦值注意數值字段不要超出范圍字符串字段長度不要超界第5章MySQL數據庫基礎88-62MySQL的數據錄入---表輸入如果要用一個現成表的數據建立一個新表,則可以用下列格式完成:INSERT[INTO]tbl_name[(col_name,...)]SELECT...INSERT語句里的SELECT子句不能包含ORDERBY子句如果tbl_name后面沒有跟col_name,所有的字段值必須在VALUES()表中或由SELECT提供任何沒有明確給出值的字段都將被置為其默認值第5章MySQL數據庫基礎88-63MySQL的數據錄入---文件輸入(一)MySQL提供的“LOADDATA”命令,可以用一個文本文件來輸入數據,它的基本格式如下:LOADDATA[LOCAL]INFILE'file_name.txt'INTOTABLEtbl_name如果沒有使用“LOCAL”關鍵字,則“file_name.txt”必須位于MySQL服務器駐留的主機上在讀取位于服務器上的文件時,文件必須處于MySQL數據庫的安裝目錄下并可被所有人讀取,而且用戶須在服務器主機上擁有對文件進行操作的權限第5章MySQL數據庫基礎88-64MySQL的數據錄入---文件錄入(圖例)第5章MySQL數據庫基礎88-65MySQL的數據錄入---文件輸入(二)如果指定了“LOCAL”,則從客戶端主機讀入文件這種方式將比從服務器直接存取文件慢些,因為文件內容須從客戶主機傳送到服務器主機但這種方式用戶無須在服務器主機上擁有裝載文件的file權限第5章MySQL數據庫基礎88-66MySQL的數據錄入文件輸入(三)讀取輸入文件時,LOADDATAINFILE假定文本文件的格式滿足以下幾條規(guī)定:記錄邊界在換行符(CR)處制表符在(Tab)記錄中分出字段不需要引號將字符串括起按字面形式解釋“\”開頭字符,不作替換第5章MySQL數據庫基礎88-67MySQL的數據錄入---文件輸入(例1)設“areacode.txt”文件存有我國各個地市的地區(qū)代碼和與其相對應的地名,每行都有兩個字符串,即區(qū)域代碼(5位字符)和區(qū)域名稱(2~10個漢字),兩種數據之間用制表符分隔如果將區(qū)域代碼和區(qū)域名稱存入MySQL數據庫,可提供查詢操作第5章MySQL數據庫基礎88-68MySQL的數據錄入---文件輸入(例2)mysql>createdatabasenetsql;mysql>usenetsql;mysql>createtableareacode(codechar(5),addrvarchar(30));mysql>loaddatainfile'areacode.txt'intotableareacode;mysql>select*fromareacodewherecode='46101';第5章MySQL數據庫基礎88-69MySQL的數據更新(一)更新數據庫中現存的數據,需要用到UPDATE語句,其的格式如下:
UPDATEtbl_nameSETcol_name1=expr1,col_name2=expr2,...
[WHEREwhere_definition]SET子句指出需要修改的字段并給出正確的值;WHERE子句是可選的,用來選擇需要更新的記錄如果沒WHERE子句,則表示表中所有的記錄將被全部更新第5章MySQL數據庫基礎88-70MySQL的數據更新(例1)下列語句將salaries表的所有記錄中的sum字段的當前值加1:mysql>UPDATEsalariesSETsum=sum+1;第5章MySQL數據庫基礎88-71MySQL的數據更新(例2)下列語句將salaries表的所有記錄的sum字段值加倍再加1:mysql>UPDATEsalariesSETsum=sum*2,sum=sum+1;在執(zhí)行UPDATE語句后,數據庫系統(tǒng)會返回被更新記錄的數量第5章MySQL數據庫基礎88-72MySQL的數據刪除(一)DELETE用來刪除表中的數據,它的格式是:DELETEFROMtbl_name[WHEREwhere_definition]例如:mysql>DELETEFROMsample;上述指令將刪除sample表中的所有記錄為了提高效率,MySQL實際上是通過創(chuàng)建一個空的sample表來完成該操作第5章MySQL數據庫基礎88-73MySQL的數據刪除(例)如果希望只刪除某個表中特定的某些記錄,就要使用WHERE子句,例如:mysql>DELETEFROMsampleWHEREid>1000;
mysql>DELETEFROMsampleWHEREid>1000ANDvalue<100;第5章MySQL數據庫基礎88-74MySQL的查詢在數據庫操作中,對表進行查詢是建立數據庫的主要目的所以在SQL中,數據查詢是數據庫操作中最為有用、同時又是最為復雜的功能可以這樣認為:數據庫的建設和數據的錄入往往是少數專業(yè)人士的任務對數據庫中的資源利用(也就是查詢),卻是全體數據庫用戶所需要掌握的技術第5章MySQL數據庫基礎88-75MySQL的查詢---基本格式在SQL中,用SELECT語句進行信息查詢,它的一般格式是:
SELECTselect_expression,..[FROMtable_references[WHEREwhere_definition]]SELECT從指定表中選取符合條件的記錄中的特定字段。SELECT最簡單、并且最常見的用途是從數據表中檢索所有信息:
mysql>select*fromuser;第5章MySQL數據庫基礎88-76MySQL的查詢---例外不過在MySQL中,有時SELECT操作卻與表毫無關聯(lián),下面的命令就是一個例子:
mysql>SELECT1+1;
mysql>selectnow();第5章MySQL數據庫基礎88-77MySQL的查詢---客戶端程序當在MYSQL自己的客戶端程序(mysql.exe)上進行數據庫查詢操作時,由于mysql.user表的記錄比較長,因此在屏幕顯示時會出現繞回的情況,顯示結果看上去比較凌亂ApacheFriends套件中的phpmyadmin,可以解決MySQL的所有查詢和其他基本操作第5章MySQL數據庫基礎88-78MySQL的查詢---where子句用戶可從表中只選擇特定的字段進行顯示:mysql>SELECTHost,UserFROMuser;如果希望指定顯示某些特定記錄,那么可以使用WHERE子句:mysql>SELECT*FROMuserWHEREHost='localhost';Where子句里可以有邏輯操作:mysql>SELECT*FROMuserWHEREHost="localhost"ANDUser='root';第5章MySQL數據庫基礎88-79MySQL的查詢---結果排序檢索顯示在記錄用某個有意義的方式進行排序時,將會變得更加有效。排序操作需要在SELECT語句中使用ORDERBY子句但是,目前的MySQL對漢字排序處理沒有實際意義第5章MySQL數據庫基礎88-80MySQL的查詢---結果排序舉例mysql>SELEC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年酒吧經營合作合同3篇
- 2024民政廳制定離婚財產分配合同書3篇
- 2025版KTV裝修工程款項支付與驗收合同范本3篇
- 2024版互聯(lián)網金融信息服務合同
- 2024年電子信息產品設計勞務分包合同模板3篇
- 2024商業(yè)新物業(yè)管理合同-商業(yè)物業(yè)管理合同續(xù)簽與終止條款3篇
- 體育場館系統(tǒng)解決方案例文(3篇)
- 2024年瑪雅特色房屋租賃與社區(qū)共享空間開發(fā)合同3篇
- 2025年金融銷售工作計劃例文(二篇)
- 模型工安全操作規(guī)程(2篇)
- 2024年研究生考試考研思想政治理論(101)試卷及解答參考
- 年終獎發(fā)放通知范文
- 油田員工勞動合同范例
- Unit 5 Music Listening and Talking 說課稿-2023-2024學年高一英語人教版(2019)必修第二冊
- 車間主任個人年終總結
- 2024年甘肅省公務員錄用考試《行測》試題及答案解析
- 消防工程技術專業(yè)畢業(yè)實習報告范文
- 2024年高等教育法學類自考-00229證據法學考試近5年真題附答案
- 安徽省合肥市一六八中2025屆高二生物第一學期期末教學質量檢測試題含解析
- 醫(yī)院后勤管理作業(yè)指導書
- 六年級下冊心理健康教育教案-8 男女生交往小鬧鐘遼大版
評論
0/150
提交評論