




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
比如商品信息包括商品的名稱、描述、價(jià)格 n那么這些信息不能直 很難以合適的方式組織數(shù)據(jù)(多張表之前的關(guān)系合理組織 n數(shù)據(jù)庫通俗來講就是一 n通 n關(guān)系型數(shù)據(jù)庫:MySQL、Oracle、DB2、SQLServer、PostgreSQL 非關(guān)系型數(shù)據(jù)庫的英文其實(shí)是NotonlySQL,也簡稱為 相當(dāng)而已非關(guān)系型數(shù)據(jù)庫比較簡單一些 n我們的課程是開發(fā)自己的后端項(xiàng)目,所以我們以關(guān)系型數(shù)據(jù)庫MySQLnMySQL MySQL原本是一個(gè)開源的數(shù)據(jù)庫,原開發(fā)者為瑞典的MySQLAB n根據(jù)自己的操作系 n推薦大家直 n這里我安裝的是 n打開終端,查看MySQLmysql--
Macexportn我們?nèi)绻胍僮鲾?shù)據(jù),需要先和數(shù)據(jù)建 n mysqlurootpCoderwhy888.#方式二:mysql-uroot-Enterpassword:yourn我 showshownMySQL performance_schema:性能數(shù)據(jù)庫,記錄著MySQLServer數(shù)據(jù)庫引擎在運(yùn)行 n在終端直接創(chuàng)建一個(gè)屬于自己的新的數(shù)據(jù)庫coderhub(一般情況下一個(gè)新的項(xiàng)目會(huì)對(duì)應(yīng)一個(gè)新的數(shù)據(jù)庫)createcreatedatabasen使用我們創(chuàng)建的數(shù)據(jù)庫useusencreatecreatetablenamevarchar(20),ageint,heightinsertintouser(name,age,height)values('why',18,1.88);insertintouser(name,age,height)values('kobe',40,1.98);n n所以在開發(fā)中,我們可以借助于一些GUI工具來幫助我們連接上數(shù)據(jù)庫,之后直接在GUIn常見的MySQL的GUI 的(有免費(fèi)的試用時(shí)間,或者各顯神通 頁n我們希望操作數(shù)據(jù)庫(特別是在程序中),就需要有和數(shù)據(jù)庫溝通的語言,這個(gè)語言就是 SQL是StructuredQueryLanguage,稱之為結(jié)構(gòu)化查詢語言,簡稱 n事實(shí)上,常見的關(guān)系型數(shù)據(jù)庫SQL語句都是比較相似的,所以你學(xué)會(huì)了MySQL中的SQLnSQL n常見的SQLnDDL(DataDefinitionLanguage): nDML(DataManipulationLanguage): nDQL(DataQueryLanguage) nDCL(DataControlLanguage): nnSHOWUSESELECTDEFAULTDEFAULTCHARACTERSETutf8mb4COLLATEIFNOTIFNOTnDROPDATABASEDROPDATABASEIFEXITnALTERDATABASEbilibiliCHARACTERSET=utf8COLLATE=nSHOWDESCnCREATECREATETABLEIFNOTEXISTS`users`(nameVARCHAR(20),ageINT,heightDOUBLESQL n SQLnMySQL SQLnMySQLnCHAR類型在創(chuàng)建表時(shí)為固定長度,長度可以是0到255 nBINARY和VARBINARY類型用 nBLOB用 nTEXT用 n主鍵:PRIMARYp一張表中,我們?yōu)榱藚^(qū)分每一條記錄的唯一性,必須有一個(gè)字段是 主鍵是表中唯一的索引 并且必須是NOTNULL的,如果沒有設(shè)置NOTNULL,那么MySQL也會(huì)隱式的設(shè)置為NOT n唯一p某些字段在開發(fā)中我們希望是唯一的,不會(huì)重復(fù)的,比如 p使用UNIQUEp對(duì)于所有引擎,UNIQUE索引允許NULL包含的列具有多個(gè)值NULLn不能為空:NOTpNOTNULLnpDEFAULTn自動(dòng)遞增n外鍵約束也是最常用的一種約 nCREATETABLEIFNOTEXISTSidINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(20)NOTNULL,ageINTDEFAULTPhoneVARCHAR(20)DEFAULT''UNIQUENOTnDROPTABLEDROPTABLEIFEXISTSn1.ALTERTABLE`moments`RENAMETO`moment`;#2.添加一個(gè)新的列ALTERTABLE`moment`ADD`publishTime`DATETIME;ALTERTABLE`moment`ADD`updateTime`DATETIME;#3.刪除一列數(shù)據(jù)ALTERTABLE`moment`DROP`updateTime`;#4.修改列的名稱ALTERTABLE`moment`CHANGE`publishTime``publishDate`DATE;#5.修改列的數(shù)據(jù)類型ALTERTABLE`moment`MODIFY`id`nDML:DataManipulationLanguage(數(shù)據(jù)操作語言nCREATECREATETABLEIFNOTEXISTS`id`INTPRIMARYKEY`title``description``price``publishTime`nINSERTINTO`products`(`title`,`description`,`price`,`publishTime`)VALUES(' ',' 12只要998998.88,'2020-10-10');INSERTINTO`products`(`title`,`description`,`price`,`publishTime`)VALUES(' ',' P40只要888',888.88,'2020-11-11');#會(huì)刪除表中所有的數(shù)據(jù)DELETEFROM`products`;#會(huì)刪除符合條件的數(shù)據(jù)DELETEFROM`products`WHERE`title`=UPDATE`products`SET`title`=12',`price`=UPDATE`products`SET`title`= 12',`price`=1299.88WHERE`title`= nnALTERTABLE`products`ADD`updateTime`DEFAULTCURRENT_TIMESTAMPONUPDATEn如果我ALTERTABLE`products`ADD`updateTime`DEFAULTCURRENT_TIMESTAMPONUPDATEnDQL:DataQueryLanguage(數(shù)據(jù)查詢語言 nSELECTselect_expr[,select_expr]...[FROMtable_references][WHEREwhere_condition][ORDERBYexpr[ASC|DESC]][LIMIT{[offset,]row_count|row_countOFFSET[GROUPBY[HAVINGn
constmysql=CREATETABLEIFNOTEXISTS`products`(idINTPRIMARYKEYCREATETABLEIFNOTEXISTS`products`(idINTPRIMARYKEYAUTO_INCREMENT,brandVARCHAR(20),titleVARCHAR(100)NOTNULL,priceDOUBLENOTNULL,scoreDECIMAL(2,1),turlpidport:3306,user:'root',database:'coderhub'conststatement=`INSERTINTOproductsSET?;`constphoneJson=require('./phone.json');for(letphoneofphoneJson){}nSELECTSELECT*FROMn查詢title、brand、SELECTSELECTtitle,brand,priceFROMn SELECTSELECTtitleast,brandasb,priceaspFROM WEHREnWHERE查詢價(jià)格小于1000SELECT*FROM`products`WHEREprice<查詢價(jià)格大于等于2000SELECT*FROM`products`WHEREprice>=價(jià)格等于3399SELECT*FROM`products`WHEREprice=價(jià)格不等于3399SELECT*FROM`products`WHEREprice=#查 SELECT*FROM`products`WHERE`brand`= nWHERE#查詢品牌 SELECT*FROM`products`WHERE`brand`=' 'and`price`<2000;SELECT*FROM`products`WHERE`brand`=' '&&`price`<2000;#查 (不包 SELECT*FROM`products`WHEREprice>1000andprice<OR:#查詢所有 SELECT*FROM`products`WHEREbrand= 'orprice<#查 (包 SELECT*FROM`products`WHEREpriceBETWEEN1000andSELECT*FROM`products`WHEREbrandin 小米n模糊查詢使用LIKE 查詢所有以v開頭的SELECT*FROM`products`WHERE#查詢帶M的titleSELECT*FROM`products`查詢帶M的titleSELECT*FROM`products`'n當(dāng)我們查詢到結(jié)果的時(shí)候,我們希望講結(jié)果按照某種方式進(jìn)行排序,這個(gè)時(shí)候使用的是ORDERnORDERBY SELECTSELECT*FROM`products`WHEREbrand= 'orprice<1000ORDERBYpricen當(dāng)數(shù)據(jù)庫中的數(shù)據(jù)非常多時(shí) 它的用法有[LIMIToffset,]row_count|row_countOFFSET***#另外一種寫法:offset,row_countSELECT*FROM`products`LIMIT90,30;n聚合函數(shù)表示對(duì)值集合進(jìn)行操作的組(集合)# SELECTAVG(price)FROM`products`WHEREbrand=' #計(jì)算所有 SELECTAVG(score)FROM SELECTMAX(score)FROM`products`;SELECTMIN(score)FROMSELECT t)FROMSELECTCOUNT(*FROM`products`; SELECTCOUNT(*)FROM`products`WHEREbrand= 認(rèn)識(shí)Groupn GROUPnGROUPBY n
SELECTCOUNT(*)ascount,ROUND(AVG(price),2)asavgPrice,FROM`products`GROUPBYGroupByn使用我們希望給GroupBy查詢到的結(jié)果添加一些約束,那么我們可以使用:HAVINGn比如:如果我們還希望篩選出平均價(jià)格在4000以下,并且平均分在7SELECTSELECTCOUNT(*)ascount,ROUND(AVG(price),2)asavgPrice,MAX(price)asmaxPrice,MIN(price)asminPrice,AVG(score)asavgScoreFROM`products`GROUPBYHAVINGavgPrice<4000andavgScore>n n CREATETABLEIFNOTEXISTS`brand`(CREATETABLEIFNOTEXISTS`brand`(idINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(20)NOTNULL,websiteVARCHAR(100),worldRankINTINSERTINSERTINTO`brand`(name,INSERTINTO`brand`(name,website,INSERTINTO`brand`(name,website,INSERTINTO`brand`(name,website,INSE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025生鮮肉類運(yùn)輸合同范本
- 2025建筑材料采購合同(范本)
- 廢鋼運(yùn)輸收購合同范本
- 新舊磚瓦銷售合同范本
- 房屋抵押他人合同范本
- 圍欄租用合同范本
- 無償轉(zhuǎn)讓股權(quán)合同范本
- 土地賣賣居間合同范本
- 承接主體勞務(wù)合同范本
- 配送員招聘合同范本
- 動(dòng)畫制作員職業(yè)技能大賽考試題庫(濃縮500題)
- 動(dòng)畫制作員職業(yè)技能競(jìng)賽理論考試題庫(含答案)
- 妊娠合并膿毒血癥護(hù)理查房
- 《冠心病病人的護(hù)理》課件
- 牧場(chǎng)物語-礦石鎮(zhèn)的伙伴們-完全攻略
- 中建三局社招在線測(cè)評(píng)題
- 2024年甲醇合成及精餾操作理論試題題庫
- 外科學(xué)-第三十六章-闌尾疾病
- 旅游規(guī)劃行業(yè)旅游目的地規(guī)劃方案
- A特種設(shè)備安全管理考試題庫及答案
- TCNPA - 景區(qū)玻璃棧道建設(shè)規(guī)范
評(píng)論
0/150
提交評(píng)論