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