本人之前接觸的關(guān)系型數(shù)據(jù)庫主要是oracle和sqlserver,而對于mysql知之甚少,但查閱網(wǎng)上資料發(fā)現(xiàn),mysql與oracle非常相似,所以學(xué)起來應(yīng)該不會很費勁,在總結(jié)的時候可能更多的把關(guān)注點放在它與oracle的不同之處,
MySQL學(xué)習(xí)筆記之一MySQL入門
。一、簡介
MySQL是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器。SQL(結(jié)構(gòu)化查詢語言)是世界上最流行的和標準化的數(shù)據(jù)庫語言。MySQL是一個客戶端/服務(wù)器結(jié)構(gòu)的實現(xiàn),
它由一個服務(wù)器守護程序mysqld和很多不同的客戶程序和庫組成。
MySQL的普及并不局限于開放源代碼團隊內(nèi)。雖然它在個人計算機上運行(確實,MYSQL的開發(fā)一般在不昂貴的linux系統(tǒng)上進行),但它是可移植的,并且可以運行
在商用操作系統(tǒng)和一直到企業(yè)服務(wù)器的各種硬件上。此外,它的性能也足以和任何其他系統(tǒng)相匹敵,而且它還可以處理具有數(shù)百萬級的大型數(shù)據(jù)庫。
1.1 MYSQL優(yōu)勢:
1、速度。MySQL 運行速度很快。開發(fā)者聲稱MySQL 可能是目前能得到的最快的數(shù)據(jù)庫。
2、使用簡單。MySQL 是一個高性能且相對簡單的數(shù)據(jù)庫系統(tǒng),與一些更大系統(tǒng)的設(shè)置和管理相比,其復(fù)雜程度較低。
3、價格可免費。MySQL 對多數(shù)個人用戶來說是免費的。
4、支持查詢語言。MySQL 可以利用SQL(結(jié)構(gòu)化查詢語言),SQL 是一種所有現(xiàn)代數(shù)據(jù)庫系統(tǒng)都選用的語言。也可以利用支持ODBC(開放式數(shù)據(jù)庫連接)的應(yīng)用程序,ODBC 是Microsoft 開發(fā)的一種數(shù)據(jù)庫通信協(xié)議。
5、性能高。許多客戶機可同時連接到服務(wù)器。多個客戶機可同時使用多個數(shù)據(jù)庫?衫脦讉輸入查詢并查看結(jié)果的界面來交互式地訪問MySQL。
6、連接性和安全性優(yōu)越。MySQL 是完全網(wǎng)絡(luò)化的,其數(shù)據(jù)庫可在因特網(wǎng)上的任何地方訪問,因此,可以和任何地方的任何人共享數(shù)據(jù)庫。而且MySQL 還能進行訪問控制,可以控制哪些人不能看到您的數(shù)據(jù)。
7、可移植性強。。MySQL 可運行在各種版本的UNIX 以及其他非UNIX 的系統(tǒng)(如Windows 和OS/2)上。
二、 關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)
一個關(guān)系型表有一組命名的屬性(a t t r i b u t e )或列,以及一組元組(t u p l e )或行。有時列被稱為域,行被稱為記錄,列和行的交集通常被叫做單元。列標示位置,有作用域或數(shù)據(jù)類型,例如字符或整數(shù)。行自己就是數(shù)據(jù)。
關(guān)系表必須符合某些特定條件
1、存儲在單元中的數(shù)據(jù)必須是原子的。每個單元只能存貯一條數(shù)據(jù),這也叫信息原則(Information Principle )。盡管在過去的數(shù)年中按某些違反這一條的方式已經(jīng)建立了許多系統(tǒng),但違反這一條將不能運用良好的設(shè)計原則。當(dāng)一個單元包含多于一條的信息時,這叫做信息編碼(information coding )。在這樣的情況下,是否采用違背理論的方案是一個設(shè)計的選擇問題,盡管在多數(shù)情況下,結(jié)果證明這對數(shù)據(jù)的完整性是一不利的。
2、存儲在列下的數(shù)據(jù)必須具有相同的數(shù)據(jù)類型
3、每行必須唯一
4、列沒有順序
5、行沒有順序
6、列名稱唯一
關(guān)系模型兩個完整性原則:實體完整性原則簡潔地表明主鍵不能全部或部分地空缺或為空,引用完整性原則簡潔地表明一個外鍵必須為空或者與它所引用的主鍵當(dāng)前存在的值相一致,
電腦資料
《MySQL學(xué)習(xí)筆記之一MySQL入門》(http://www.shangyepx.com)。2.1 SQL與非過程化程序設(shè)計語言
SQL是一種典型的非過程化程序設(shè)計語言,這種語言的特點是:只指定哪些數(shù)據(jù) 縱,至于對這些數(shù)據(jù)要執(zhí)行哪些操作,以及這些操作是如何執(zhí)行的,則未被指定。
與之相對應(yīng)的是過程化程序設(shè)計語言,我們平常熟悉的各種高級程序設(shè)計語言都屬于這一范疇。這種語言的特點是:一條語句的執(zhí)行是與其前后的語句和控制結(jié)構(gòu)(如條件語句、循環(huán)語句等)相關(guān)的。
SQL這種語言被設(shè)計為不允許你按照某種特定的順序來取出記錄,因為這樣做會降低SQL Sever取記錄的效率。使用SQL,你只能按查詢條件來讀取記錄。
三、MYSQL數(shù)據(jù)處理
MySQL支持大量的列類型,它可以被分為3類:數(shù)字類型、日期和時間類型以及字符串(字符)類型。
3.1 字符串值:
在字符串中不僅可以使用普通的字符,也可使用幾個轉(zhuǎn)義序列,它們用來表示特殊的字符。每個轉(zhuǎn)義序列以一個反斜杠(“\”)開始,指出后面的字符使用轉(zhuǎn)義字符來解釋,而不是普通字符。注意NUL 字節(jié)與NULL 值不同;NUL 為一個零值字節(jié),而NULL 代表沒有值。
引號在字符串中使用注意事項:<喎?http:///kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgIMjnufu0rsrH08PP4M2stcTS/brFwKjG8MC0tcSjrMTHw7TU2rSu1tDQ6NKq0v26xbXEtdi3vdbYuLTQtLjD0v26xby0v8mhozxicj4KICAgIMjnufu0rsrH08PB7c3itcTS/brFwKjG8MC0tcSjrNTysrvQ6NKqy6vQtM/g06bS/brFo6zWsb3T1Nq0rtbQyrnTw6OsuMPS/brFsruxu8zYyuK21LT9oaM8YnI+CiAgICDKudPDt7TQsbjco6zTw9eq0sbQ8sHQtcS3vcq9se3KvqO71eLW1re9t6iyu8iludzTw8C0vau0rsCoxvC1xMrHtaXS/brFu7nKx8ur0v26xaGjPC9wPgo8cD4gICAgPGltZyBzcmM9"http:///uploadfile/Collfiles/20140510/201405100857392.jpg" alt="\">
3.1.1 MySQL字符串列類型
3.2 數(shù)字值:
MySQL 支持說明為整數(shù)(無小數(shù)部分)或浮點數(shù)(有小數(shù)部分)的值。
MySQL 支持科學(xué)表示法。科學(xué)表示法由整數(shù)或浮點數(shù)后跟“e”或“E”、一個符號(“+”或“-”,必須具有)和一個整數(shù)指數(shù)來表示。
3.2.1 MySQL數(shù)字列類型
3.2.2 十六進制數(shù)字:
MySQL支持十六進制值。以十六進制形式表示的整數(shù)由“0x”后跟一個或多個十六進制數(shù)字(”0”到“9”及“a”到“f”)組成。十六進制數(shù)字不區(qū)分大小寫,但其前綴“0x”不能為“0X”。即0x0a 和0x0A 都是合法的,但0X0a 和0X0A 不是合法的。
在數(shù)字上下文,它們表現(xiàn)類似于一個整數(shù)(64位精度)。在字符串上下文,它們表現(xiàn)類似于一個二進制字符串,這里每一對十六進制數(shù)字被變換為一個字符。
3.3 日期和時間列類型: