mysql課程配套學習第二天筆記_第1頁
mysql課程配套學習第二天筆記_第2頁
mysql課程配套學習第二天筆記_第3頁
mysql課程配套學習第二天筆記_第4頁
mysql課程配套學習第二天筆記_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫基礎知識:關系型數(shù)據(jù)庫(磁盤)和非關系型數(shù)據(jù)庫(內(nèi)存)關系型數(shù)據(jù)庫:建立在關系模型上的數(shù)據(jù)庫數(shù)據(jù)結構:二維表(比較浪費空間操作數(shù)據(jù)的指令集合SQL(DDL,DML[DQL]完整性約束:表內(nèi)和表之間(實體Mysql關系型數(shù)據(jù)庫:c/s結構軟件(連接認證,SQL指令,服務器處理指令返回結果,客Mysql服務端對象DBMSDatabaseTablefieldsSQL基本操作:庫操作,表操作(字段)和數(shù)據(jù)操作字符集問題:改變服務器接收數(shù)據(jù)的字符集:改變服務器返回數(shù)據(jù)的字符集:快捷方式setnames字符集(三件事情web亂碼問題:瀏覽器解析PHP處理(本地文件),數(shù)據(jù)庫處理校對集問題:比較規(guī)則:_bin,_cs和_ci,利用排序(orderby)算法:快速排序(遞歸--作業(yè):將用戶的信息記錄到文件中:獨占一行,記錄IP地所有的信息都是通過文件中記錄的內(nèi)容來計算出來:整個文件:一行代表的一次:使用file函數(shù).總的次數(shù)出來:就是總行數(shù),就是的數(shù)組的錄求出當前用戶的次數(shù):當前用戶的IP在數(shù)組中出現(xiàn)的次總共有多少個用戶過:遍歷當前所有的用戶信息,另外使用一個數(shù)組保存:如ip在數(shù)組中存在,那么不加入,否則加入:最后統(tǒng)計新數(shù)組即可.求出當前用戶是第幾位者:只要判斷當前IP在獨立用戶數(shù)數(shù)組中出現(xiàn)的位置即所謂的數(shù)據(jù)類型:對數(shù)據(jù)進行統(tǒng)一的分類,從系統(tǒng)的角度出發(fā)為了能夠使用統(tǒng)一的方式進行管理:更好的利用有限的空間.SQL中將數(shù)據(jù)類型分成了三大類:數(shù)值類型,數(shù)值型數(shù)據(jù):系統(tǒng)將數(shù)值型分為整數(shù)型和小數(shù)型存放整型數(shù)據(jù):在SQL中因為要考慮如何節(jié)省磁盤空間,所以系統(tǒng)將整型又細分成了類Tinyint:迷你整型,使用一個字節(jié),表示的狀態(tài)最多為256種(常用)Smallint:小整型,使用2個字節(jié),表示的狀態(tài)最多為65536種Mediumint:中整型,3個字節(jié)Int:標準整型,使用4個字節(jié)(常用Bigint:大整型,8個字節(jié)插入數(shù)據(jù):只能插入整型,SQL中的數(shù)值類型全部都是默認有符號:有時候需要使用無符號數(shù)據(jù):需要給數(shù)據(jù)類型限定intunsigned;--無符號:0查看表結構的時候,發(fā)現(xiàn)每個字段的數(shù)據(jù)類型之后都會自帶一個括號,顯示寬度:沒有特別的含義,只是默認的告訴用戶可以顯示的形式而已:世界上用戶是可以顯示寬度的意義:在于當數(shù)據(jù)不夠顯示寬度的時候,會自動讓數(shù)據(jù)變成對應的顯示寬度:通0來增加寬度,不改變值大小zerofill(零填充):零填充會導致數(shù)值自動零填充+零填充的意義(顯示寬度):小數(shù)型:帶有小數(shù)點或者范圍超出整型的數(shù)值類型SQL中:將小數(shù)型細分成兩種:浮點型和定點型浮點型:小數(shù)點浮動,精度有限,而且會丟失精度定點型:小數(shù)點固定,精度固定,不會丟失精度浮點型數(shù)據(jù)是一種精度型數(shù)據(jù):因為超出指定范圍之后,會丟失精度(自動四舍五入)浮點型:理論分為兩種精度Float:單精度,占用4個字節(jié)數(shù)據(jù),精度范圍大概為7位左Double:雙精度,占用8個字節(jié)數(shù)據(jù),精度方位大概為15位左創(chuàng)建浮點數(shù)表:浮點的使用方式:float表示沒有小數(shù)部分;float(M,D):M代表總長度,D代表小數(shù)部分長度,M-D插入數(shù)據(jù)插入數(shù)據(jù):可以是直接小數(shù),浮點型數(shù)據(jù)的插入:整型部分是出長度的,但是小數(shù)部分可以超出長度(系統(tǒng)會自動四結果:浮點數(shù)一定會進行四舍五入(超出精度范圍):浮點數(shù)如果是因為系統(tǒng)進位導致整數(shù)部定點型:保證整數(shù)部分不會被四舍五入(不會丟失精度),小數(shù)部分有可能(理論小數(shù)部創(chuàng)建定點數(shù)表:插入數(shù)據(jù):定點數(shù)的整數(shù)部分一定出長度(進位不可以),小數(shù)部分的長度可以隨意超浮點數(shù)如果進位導致長度溢出沒有問題,Datetime:時間日期,YYYY-mm-ddHH:ii:ss,10009999年,0值:0000-00-0000:00:00Date:日期,datetimedateTime:時間(段),指定的某個區(qū)間之間時間到+Timestamp:時間戳,并不是時間戳,只是從1970年開始的YYYY-mm-ddHH:ii:ssdatetimeYear:年份,兩種形式y(tǒng)ear(2)year(41901-插入數(shù)據(jù):時間time可以是負數(shù),而且可以是很大的負數(shù)year可以使用2位數(shù)插入,也可以使4位數(shù)Timestamp字段:只要當前所在的記錄被更新,PHP為實現(xiàn)的主要操作對象PHP中有非常強大的時間日期處理函數(shù):date,只需要一個時間戳就可以轉(zhuǎn)換成任意類型的時間:以PHP為主的時候,都是在數(shù)據(jù)庫使用時間戳(整型)來時間.SQL中,6類char,varchar,textblob,enum定長字符串:char,磁盤(二維表)在定義結構的時候,就已經(jīng)確定了最終數(shù)據(jù)的長度.Char(L):L代表length,可以的長度,單位為字符,最大長度值可以為255.Char(4):UTF8環(huán)境下,4*312變長字符串:varchar,在分配空間的時候,按照最大的空間分配:但是實際上最終用了多少,Varchar(L):L65536個字符,12個字節(jié)來確定的實際長度:255,既不用定長也不用變長,textVarchar(10):10個漢字utf8環(huán)境10*313個漢字:3*31=定長與變長的實際空間實際數(shù)CharVarchar(占用字節(jié)4*3=4*3+1=AAA4*3=1*3+1=如何選擇定長或者是變長字符串呢定長的磁盤空間比較浪費,但是效率高:如果數(shù)據(jù)基本上確定長度都一樣,就是使用定長,如,,號碼等變長的磁盤空間比較節(jié)省,但是效率低:如果數(shù)據(jù)不能確定長度(不同數(shù)據(jù)有變化),如如果數(shù)據(jù)量非常大,255個字符就會使用文本字符串文本字符串根據(jù)的數(shù)據(jù)的格式進行分類:text和blobText:文字(二進制數(shù)據(jù)實際上都是路徑)Blob:二進制數(shù)據(jù)(通常不用)枚舉:enum,事先將所有可能出現(xiàn)的結果都設計好,實際上的數(shù)據(jù)必須是規(guī)定好的數(shù)據(jù)定義:enum(可能出現(xiàn)的元素列表 //如enum(‘男’,’女’,’不男不女’,’妖’,’使用:數(shù)據(jù),只能上面定義好的數(shù)加入數(shù)據(jù):作用之一:規(guī)范數(shù)據(jù)格式:作用之二:節(jié)省空間(枚舉通常有一個別名:單選框):枚舉實際的是數(shù)值而不是字mysql中,系統(tǒng)也是自動轉(zhuǎn)換數(shù)據(jù)格式的:PHP一樣(尤其是字符串轉(zhuǎn)數(shù)字證明字段的數(shù)據(jù)是數(shù)值:將數(shù)據(jù)取出來+0就可以判斷出原來的數(shù)據(jù)存的到底是字符串還是數(shù)值:如果是字符串最終結果為0,否則就是其他值.找出了枚舉元素的實際規(guī)律:按照元素出現(xiàn)的順序,1枚舉原理:枚舉在進行數(shù)據(jù)規(guī)范的時候(定義的時候),系統(tǒng)會自動建立一個數(shù)字與枚舉元素的對應關系(關系放到日志中):然后在進行數(shù)據(jù)插入的時候,系統(tǒng)自動將字符轉(zhuǎn)換成對應的數(shù)字,然后在進行數(shù)據(jù)提取的時候,系統(tǒng)自動將數(shù)值轉(zhuǎn)換成對應的字符串顯示.因為枚舉實際的是數(shù)值,所以可以直接插入數(shù)值集合跟枚舉很類似:實際的是數(shù)值,而不是字符串(集合是多選)定義Set(元素列表使用:可以使用元素列表中的元素(多個),插入數(shù)據(jù):可以使用多個元素字符串組合,查看數(shù)據(jù):+集合中元素的順序沒有關系:集合的強大在于能夠規(guī)范數(shù)據(jù)和節(jié)省空間PHP也可以規(guī)范數(shù)據(jù),PHP來說效率優(yōu)先,而且數(shù)據(jù)的可以通過數(shù)字進行,增加PHP的成本:PHP根本沒有辦法判斷數(shù)據(jù)MysqlMysql中規(guī)定:任何一條記錄最長過65535個字節(jié).(varchar達不到理論值Varchar的實際長度能達到多少呢?看字符集編碼Utf8下varchar的實際頂配21844GBKvarchar的實際頂配3276665535個字節(jié)長度:tinyintMysql記錄中:如果有任何一個字段允許為空,那么系統(tǒng)會自動從整個記錄中保留一個字節(jié)來NULL(若想釋放NULL所占用的字節(jié):必須保證所有的字段都不允許為空)Mysql中text文本字符串,不占用記錄長度:額外.但是text文本字符串也是屬于記錄的一部分:一定需要占據(jù)記錄中的部分長度:10個字節(jié)(保存數(shù)據(jù)的地址以及長度).列屬性:真正約束字段的是數(shù)據(jù)類型,但是數(shù)據(jù)類型的約束很單一.需要有一些額外的約束,來更加保證數(shù)據(jù)的.列屬性有很多:NULL/NOTNULL,default,Primarykey,unique 兩個值NULL(默認的)NOTNULL(不為空雖然默認的,數(shù)據(jù)庫基本都是字段為空,但是實際上在真實開發(fā)的時候,盡可能的要保證所有的數(shù)據(jù)都不應該為空:空數(shù)據(jù)沒有意義;空數(shù)據(jù)

溫馨提示

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

評論

0/150

提交評論