2018python全棧01課堂筆記01數(shù)據(jù)庫概述_第1頁
2018python全棧01課堂筆記01數(shù)據(jù)庫概述_第2頁
2018python全棧01課堂筆記01數(shù)據(jù)庫概述_第3頁
2018python全棧01課堂筆記01數(shù)據(jù)庫概述_第4頁
2018python全棧01課堂筆記01數(shù)據(jù)庫概述_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

后來,數(shù)據(jù)可以在磁帶上,順序的、寫入磁帶 以樹型結(jié)構(gòu)表示實體及其之間的聯(lián)系。關(guān)系只支持一對多。代表數(shù)據(jù)庫IBMIMS多個父結(jié)點,結(jié)點之間支持可以多對多關(guān)聯(lián)。關(guān)系模型比網(wǎng)狀模型、層次模型更簡單,不需要關(guān)系數(shù)的物理細節(jié),專心于數(shù)據(jù)的邏輯構(gòu)建,而且關(guān)系模型的嚴格的數(shù)學理論基礎支撐。1970年,IBM的研究員E.F.Codd了名為“ARelationalModelofDataforLargeSharedDataBanks”的 基于關(guān)系模型構(gòu)建的數(shù)據(jù)庫系統(tǒng)成為RDBMS(RelationalDataBaseSystem)IBMDB2、Oracle的Oracle和Mysql、微軟的MSSQL。以前的infomix、Sybase(LarryElsn仔細閱讀了IBM的關(guān)系數(shù)據(jù)庫的 ,敏銳在這個研究基礎上可以開發(fā)軟件系統(tǒng)。他們決定開發(fā)通用數(shù)據(jù)庫系統(tǒng)Oacle,這個名字來源于他們曾給局做過的項目名。幾個月后,他們就開發(fā)了Oacle.。Oacle快速的被推銷,但是很不穩(wěn)定。直到199年的時候,Oacl7才逐漸穩(wěn)定下來,并取得巨大成功。2001年的i版本被廣泛應用。年 日,甲骨文公司宣布將以每股.50,總計74億美金收購su(計算機系統(tǒng))公司。2010年1功收購。1985年幾個瑞典人為大型零售商的項目設計了一種利用索引順序存取數(shù)據(jù)的軟件,這就是ySA的前身。年,ySL.0發(fā)布,隨后發(fā)布了.1.1版本,并開始往其它平臺移植。2000年yS采用GPL協(xié)議開源。ySL.開始支持MySAM、InDB引擎。2005年10月,ySL.0成為里程碑版本。2009年1月,在Oracle收購MySQL之前,MontyWidenius擔心收購,就從MySQLServer5.5開始一條新的GPL分MySQL的引擎是插件化的,可以支持很多種引擎:MyISASM,不支持事務,插入、查詢速度快。InnoDB,支持事務,行級鎖,MySQL5.5起的默認引擎去據(jù)庫、EC設備,可以說。而使用這些架構(gòu)的企業(yè),不但采購、成本極高,架構(gòu)還掌握在他人手中。對于阿里巴巴這樣大規(guī)模的互聯(lián)網(wǎng)應用,應該采用開源、開放的系統(tǒng)架構(gòu)。這種思路并不是阿里巴巴的新發(fā)明,國外的谷歌、 、亞馬遜等早已為之。只不過它們幾乎一開始就有沒有采用T商業(yè)公司的架構(gòu),所以他們也不用去IE”。數(shù)據(jù)庫流行度 使用yum安裝rpm包,Cnts自帶的版本太低,建議安裝5.以版。推薦安裝MriB,或者Peco版本。#yuminstallPercona-Server-shared-55-5.5.45-rel37.4.el6.x86_64.rpmPercona-Server- #yuminstallPercona-Server-shared-55-5.5.45-rel37.4.el6.x86_64.rpmPercona-Server- 5.5.45-rel37.4.el6.x86_64.rpmPercona-Server-server-55-5.5.45-rel37.4.el6.x86_64.rpm#servicemysql#mysql_secure_installation#mysql-uroot-p<test.sqltest.sqlSQLSQL是結(jié)構(gòu)化查詢語言StructuredQueryLanguage。1987年被ISO組織標準化。GRANTALLGRANTALLONemployees.*TO'wayne'@'%'IDENTIFIEDby'wayne';REVOKEALLON*.*FROMwayne;*為通配符,指代任意庫或者任意表。*.*%為通配符,它是SQL刪除用戶(慎用

DROPDROPUSERCREATECREATEDATABASEIFNOTEXISTSgogsCHARACTERSETutf8mb4COLLATECHARACTERSET指定字符集。utf8mb4是utf8的擴展,支持4字節(jié)utf8mb4,需要MySQL5.5.3+。DROPDROPDATABASEIFEXISTSCREATECREATETABLE`employees``emp_no`int(11)NOT`birth_date`dateNOT`first_name`varchar(14)NOT`last_name`varchar(16)NOT`gender`enum('M','F')NOT`hire_date`dateNOTNULL,PRIMARYKEY(`emp_no`))ENGINE=InnoDBDEFAULT{DESCRIBE|DESC}tbl_name[col_name|DESCDESCDESCemployeesDROPDROPDATABASEIFEXISTSCREATEDATABASEIFNOTEXISTStestCHARACTERSETutf8mb4COLLATECREATECREATETABLE`reg``id`int(11)NOT`loginname`varchar(50)DEFAULT`name`varchar(64)DEFAULT`password`varchar(128)DEFAULTNULL,PRIMARYKEY(`id`))PRIMARYKEY表中一列或者多列組成唯一的y,也就是通過這一個或者多個列能唯一的標識一條記錄。主鍵的列不能包含空值l。主鍵往往設置為整型、長整型,且自增AU_NEENT。表中可以沒有主鍵,但是,一般表設計中,往往都會有主鍵。 主鍵索引,主鍵會自動建立主鍵索引,主鍵本身就是為了快速定位唯一記錄的唯一索引,表中的索引列組成的索引必須唯一,但可以為空,非空值必須唯一普通索引,沒有唯一性的要求,就是建了一個字典的 而已。PRIMARYKEY如果表A要刪除一條記錄,那么就等于刪除一個主鍵,那么如果表B中到了這個主鍵,就必須先刪除表B中修改表A的主鍵,由于主鍵的唯一性,修改的主鍵相當于插入新主鍵,那么表B過這個主鍵,將表A的主鍵 tinyint,0表示假,非0 47。無符號的范圍是長整型,8字節(jié),帶符號的范圍是符號的范圍是0 07支持的范圍是'1000-01-0100:00:00'到'9999-12-31時間戳。范圍是'1970-01-0100:00:00'到2037變長字符串。 選擇(slectio):又稱為限制,是從關(guān)系中選擇出滿足給定條件的元組。投影(pjection):在關(guān)系上投影就是從選擇出若干屬性列組成新的關(guān)系。連接(ji):將不同的兩個關(guān)系連接成一個關(guān)系。InsertSETcol_name1=expr1[,col_name2=expr2...][WHEREwhere_de?nition]IGNORE意義同InsertDeleteDELETE[IGNORE]FROMtbl_name[WHEREwhere_de?nition]Selectselect_expr,...[FROMtable_references[WHERE[GROUPBY{col_name|expr|position}[ASC|DESC],...[WITHROLLUP]][HAVING[ORDERBY{col_name|expr|position}[ASC|DESC],...][LIMIT{[offset,]row_count|row_countOFFSEToffset}][FORUPDATE|LOCKINSHAREMODE]]SELECTSELECTSELECT*FROMSELECTemp_no,first_name+last_nameFROMSELECTemp_no,CONCAT(first_name,'',last_name)FROM--AS定義別名,可選。寫ASSELECTemp_noas`no`,CONCAT(first_name,'',last_name)nameFROMemployeesLimit返回5SELECT*FROMemployeesempLIMIT--返回5條記錄,偏移18SELECT*FROMemployeesempLIMIT5OFFSET18;SELECT*FROMemployeesempLIMIT18,5;Where=>、<、>=、在某個范圍之內(nèi),betweenaandb等價于[a,與或注意:如果很多表達式需要使用AND、O計算邏輯表達式的值的時候,由于有結(jié)合律的問題,建議使用小括號來避免產(chǎn)生錯誤----SELECT*FROMemployeesWHEREemp_no<10015andlast_nameLIKESELECT*FROMemployeesWHEREemp_noBETWEEN10010AND10015ANDlast_nameLIKE'P%';SELECT*FROMemployeesWHEREemp_noin(10001,10002,10010);OrderbySELECT*FROMemployeesWHEREemp_noin(10001,10002,10010)ORDERBYemp_no----DISTINCTSELECTDISTINCTdept_nofromdept_emp;SELECTDISTINCTemp_nofromSELECTDISTINCTdept_no,emp_nofromMIN(expr),----SELECTCOUNT(*),AVG(emp_no),SUM(emp_no),MIN(emp_no),MAX(emp_no)FROM使用 ----SELECTemp_no,SUM(salary),AVG(salary),COUNT(emp_no)from--SELECTemp_no,SUM(salary),AVG(salary),COUNT(emp_no)fromsalariesWHEREemp_no<--按照不同emp_noSELECTemp_no,SUM(salary),AVG(salary),COUNT(emp_no)fromsalariesWHEREemp_no<10003GROUPBYemp_no;--HAVINGSELECTemp_no,SUM(salary),AVG(salary),COUNT(emp_no)fromsalariesGROUPBYemp_noHAVINGAVG(salary)>45000;--SELECTemp_no,SUM(salary),AVG(salary)ASsal_avg,COUNT(emp_no)fromsalariesGROUPBYemp_noHAVINGsal_avg>60000;--SELECTSELECTemp_no,SUM(salary),AVG(salary)ASsal_avg,COUNT(emp_no)fromsalariesGROUPBYemp_noHAVINGsal_avg>60000ORDERBYsal_avg;子查詢中不能使用OrderbySELECT*FROMemployeesWHEREemp_noin(SELECTemp_nofromemployeesWHEREemp_no>10015)ORDERBYemp_noDESC;SELECTemp.emp_no,emp.first_name,genderFROM(SELECT*fromemployeesWHEREemp_no>10015)ASempWHEREemp.emp_no<10019ORDERBYemp_noDESC;連接交叉連接cross----工資40SELECT*FROM--20SELECT*FROM---800SELECT*fromemployeesCROSSJOINinnerjoin,省略為join等值連接,只選某些?d相等的元組(行),使用On----乘積800SELECT*fromemployeesJOINSELECT*fromemployeesINNERJOIN--ON等值連接40SELECT*fromemployeesJOINsalariesONemployees.emp_no=自然連接,去掉了重復列,且自行使用employees.emp_nosalaries.emp_no的條件SELECT*fromemployeesNATURALJOINsalaries;outerjoin,可以省略為SELECT*fromemployeesLEFTJOINsalariesONemployees.emp_no=SELECT*fromemployeesRIGHTJOINsalariesONemployees.emp_no=--SELECT*fromsalariesRIGHTJOINemployeesONemployees.emp_no=selectselectmanager.*fromempmanager,empworkerwheremanaer.empno=worker.mgrandworker.empno=1;selectmanager.*fromempmanagerinnerjoinempworkeronmanaer.empno=worker.mgrwhere事務性他事務是的,并發(fā)執(zhí)行的各個事務之間不能互相干擾持久性也稱永久性(prmannc),就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響享資源一樣不可預期,就不能保證一致性。性,就是指多個事務共同的數(shù)據(jù)了,應該互不干擾。性,指的是究竟在一個事務處理期間,其MySQL級首先看看性不好,帶來哪些問題:更新丟失Lost事務A和B,事務B到了事務A未提交的數(shù)據(jù)(這個數(shù)據(jù)可能是一個中間值,也可能事務A后回事務)。事務A是否最后提交并不關(guān)心。只要到了這個被修改的數(shù)據(jù)就是臟讀。不可重復讀Unrepeatable事務A在事務執(zhí)行中相同查詢語句,得到了不同的結(jié)果,不能保證同一條查詢語句重復讀以重復讀?;米xPhantom事務A中同一個查詢要進行多次,事務B插入數(shù)據(jù),導致A返回不同的結(jié)果集,如同幻覺,就是幻讀。數(shù)據(jù)集有記錄增加了,可以看做是增加了記錄的不可重復讀。 READ可以重復讀,MySQL的默認級別級別越高,串行化越高,數(shù)據(jù)庫執(zhí)行效率低;級別越低,并行度越高,性能越高。---設置會話級或者全 SET[SESSION|GLOBAL]TRANSACTION

溫馨提示

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

評論

0/150

提交評論