版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫基礎(chǔ)了解數(shù)據(jù)庫的概念及常見主流數(shù)據(jù)庫產(chǎn)品熟悉識別數(shù)據(jù)庫方法熟悉SQL語法,掌握常見SQL命令的使用教學(xué)目標(biāo)數(shù)據(jù)庫概述識別數(shù)據(jù)庫SQL語法基礎(chǔ)目錄數(shù)據(jù)庫概述數(shù)據(jù)庫(DataBase,DB):存儲在磁帶、磁盤、光盤或其他外存介質(zhì)上、按一定結(jié)構(gòu)組織在一起的相關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫管理系統(tǒng)(DataBase
Management
System,DBMS):一種操縱和管理數(shù)據(jù)庫的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫。數(shù)據(jù)庫系統(tǒng)(DataBase
System,DBS):通常由軟件、數(shù)據(jù)庫(DB)和數(shù)據(jù)庫管理員組成。軟件主要包括操作系統(tǒng)、各種宿主語言、實(shí)用程序以及數(shù)據(jù)庫管理系統(tǒng)(DBMS)。數(shù)據(jù)庫(DB)由數(shù)據(jù)庫管理系統(tǒng)(DBMS)統(tǒng)一管理,數(shù)據(jù)的插入、修改和檢索均要通過數(shù)據(jù)庫管理系統(tǒng)(DBMS)進(jìn)行。數(shù)據(jù)庫管理員負(fù)責(zé)創(chuàng)建、監(jiān)控和維護(hù)整個數(shù)據(jù)庫,使數(shù)據(jù)能被任何有權(quán)使用的人有效使用。典型的網(wǎng)站體系結(jié)構(gòu)數(shù)據(jù)庫概述數(shù)據(jù)庫分類關(guān)系型數(shù)據(jù)庫關(guān)系型數(shù)據(jù)庫模型是把復(fù)雜的數(shù)據(jù)結(jié)構(gòu)歸結(jié)為簡單的二元關(guān)系(即二維表格形式)。通過SQL結(jié)構(gòu)化查詢語句存儲數(shù)據(jù),保持?jǐn)?shù)據(jù)一致性,遵循ACID理論。關(guān)系型數(shù)據(jù)庫的典型產(chǎn)品:MySQL、MicrosoftSQLServer、Oracle、PostgreSQL、IBMDB2、Access等。非關(guān)系型數(shù)據(jù)庫非關(guān)系型數(shù)據(jù)庫也被成為NOSQL數(shù)據(jù)庫,NOSQL的本意是“NotOnlySQL”指的是非關(guān)系型數(shù)據(jù)庫,而不是“NoSQL”的意思。因此,NOSQL的產(chǎn)生并不是要徹底地否定關(guān)系型數(shù)據(jù)庫,而是作為傳統(tǒng)關(guān)系型數(shù)據(jù)庫的一個有效補(bǔ)充。NOSQL數(shù)據(jù)庫在特定的場景下可以發(fā)揮出難以想象的高效率和高性能。非關(guān)系型數(shù)據(jù)庫的典型產(chǎn)品:Memcached、Redis、mongoDB等。數(shù)據(jù)庫概述ACID理論原子性(Atomicity):事務(wù)是一個不可分割的單位,事務(wù)中的操作要么都發(fā)生,要么都不發(fā)生。一致性(Consistency):事務(wù)前后數(shù)據(jù)的完整性必須保持一致。隔離性(Isolation):多個用戶并發(fā)訪問數(shù)據(jù)庫時,數(shù)據(jù)庫為每一個用戶開啟的事務(wù),不能被其他事務(wù)的操作數(shù)據(jù)所干擾,多個并發(fā)事務(wù)之間要相互隔離。持久性(Durability):一個事務(wù)一旦被提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久性的,接下來即使數(shù)據(jù)庫發(fā)生故障也不應(yīng)該對其有任何影響。數(shù)據(jù)庫概述數(shù)據(jù)庫概述Oracle甲骨文公司的一款關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。它是在數(shù)據(jù)庫領(lǐng)域一直處于領(lǐng)先地位的產(chǎn)品。可以說Oracle是目前世界上功能最強(qiáng)大、最復(fù)雜、市場占比最高的商業(yè)數(shù)據(jù)庫產(chǎn)品,適用于各類大、中、小、微機(jī)環(huán)境。它是一種高效率、可靠性好的適應(yīng)高吞吐量的數(shù)據(jù)庫解決方案。從架構(gòu)到運(yùn)維,可以說是最難的數(shù)據(jù)庫,學(xué)習(xí)和使用難度較高。數(shù)據(jù)庫概述MySQLMySQL是當(dāng)今最受歡迎的開源SQL數(shù)據(jù)庫管理系統(tǒng),它由瑞典MySQLAB開發(fā)、發(fā)布和支持。MySQLAB是一家基于MySQL開發(fā)人員的商業(yè)公司,它是一家使用了一種成功的商業(yè)模式來結(jié)合開源價值和方法論的第二代開源公司。MySQL是現(xiàn)在非常流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),尤其在Web應(yīng)用方面,是最好的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)應(yīng)用軟件之一。數(shù)據(jù)庫概述MicrosoftSQLServer(MSSQL)SQLServer是Microsoft推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有使用方便、可伸縮性好、與相關(guān)軟件集成程度高等優(yōu)點(diǎn),從舊版本的個人電腦到運(yùn)行MicrosoftWindowsserver的大型多處理器的服務(wù)器都可以使用。老版本只能在Windows上運(yùn)行,從SQLServer2017版本起可以在Linux上運(yùn)行。數(shù)據(jù)庫概述PostgreSQLPostgreSQL是加州大學(xué)伯克利分校計(jì)算機(jī)系開發(fā)的開源對象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),穩(wěn)定性極強(qiáng),用于安全地存儲數(shù)據(jù)。數(shù)據(jù)庫概述MemcachedMemcached是一個開源的、高性能的、具有分布式內(nèi)存對象的緩存系統(tǒng)。通過它可以減輕數(shù)據(jù)庫負(fù)載,加速動態(tài)的Web應(yīng)用。目前全球有非常多的用戶都在使用它來架構(gòu)主機(jī)的大負(fù)載網(wǎng)站或提升主機(jī)的高訪問網(wǎng)站的響應(yīng)速度。Memcached是一種純內(nèi)存緩存系統(tǒng),把經(jīng)常存取的對象或數(shù)據(jù)緩存在Memcached的內(nèi)存中,這些緩存的數(shù)據(jù)被程序通過API的方式進(jìn)行讀取,Memcached里面的數(shù)據(jù)就像一張巨大的hash表,數(shù)據(jù)以key-value對的方式存在。Memcached之反射拒絕服務(wù)攻擊技術(shù)數(shù)據(jù)庫概述RedisRedis也是一個key-value型存儲系統(tǒng)。但Redis支持的存儲value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)等。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集、并集和差集及更豐富的操作。Redis未授權(quán)訪問漏洞數(shù)據(jù)庫概述mongoDBmongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫,由C++語言編寫,旨在為Web應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。mongoDB是一個介于關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系型數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系型數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。mongoDB最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。MongoDB遠(yuǎn)程代碼注入漏洞數(shù)據(jù)庫概述國內(nèi)自主研發(fā)的關(guān)系型數(shù)據(jù)庫達(dá)夢(DM):由華中理工馮玉才教授創(chuàng)辦,完全自主研發(fā),以O(shè)racle為參照、追趕對象。人大金倉(Kingbase):由人民大學(xué)王珊教授創(chuàng)辦,自主研發(fā)。普通的關(guān)系型數(shù)據(jù)庫。神舟通用(OSCAR):神舟集團(tuán)與南大通用合作開發(fā)的關(guān)系型數(shù)據(jù)庫,更多地用于數(shù)據(jù)分析領(lǐng)域。南大通用(GBase):南開大學(xué)的背景,2010年左右自主研發(fā)的基于列式存儲、面向數(shù)據(jù)分析、數(shù)據(jù)倉庫的數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫概述MySQL數(shù)據(jù)庫連接方法數(shù)據(jù)庫概述1.命令行連接:[root@host]#mysql-hX.X.X.X-uroot
-p2.PHP腳本連接:mysqli_connect(host,username,password,dbname,port,socket);3.第三方軟件連接MySQL數(shù)據(jù)庫連接方法數(shù)據(jù)庫概述1.命令行連接:[root@host]#mysql-hX.X.X.X-uroot
-p2.PHP腳本連接:mysqli_connect(host,username,password,dbname,port,socket);3.第三方軟件連接MySQL數(shù)據(jù)庫連接方法數(shù)據(jù)庫概述1.命令行連接:[root@host]#mysql-hX.X.X.X-uroot
-p2.PHP腳本連接:mysqli_connect(host,username,password,dbname,port,socket);3.第三方軟件連接數(shù)據(jù)庫概述識別數(shù)據(jù)庫SQL語法基礎(chǔ)目錄識別數(shù)據(jù)庫方法盲跟蹤Web應(yīng)用技術(shù)不同數(shù)據(jù)庫SQL語句差異
非盲跟蹤報(bào)錯、直接查詢識別數(shù)據(jù)庫識別數(shù)據(jù)庫默認(rèn)端口號Oracle:1521MySQL:3306SQLServer:1433PostgreSQL:5432mongoDB:27017Redis:6379MemcacheDB:11211識別數(shù)據(jù)庫報(bào)錯信息MySQL報(bào)錯信息:MSSQL(MicrosoftSQLServer)報(bào)錯信息:Oracle報(bào)錯信息:識別數(shù)據(jù)庫各數(shù)據(jù)庫的版本查詢方法區(qū)別MSSQLselect@@versionMySQLselectversion()/select@@versionOracleselectbannerfromv$versionPostgreSQLselectversion()識別數(shù)據(jù)庫各數(shù)據(jù)庫在字符串處理時的區(qū)別識別數(shù)據(jù)庫各數(shù)據(jù)庫與網(wǎng)頁編程語言的搭配常見的搭配:ASP和.NET:MicrosoftSQLServerPHP:MySQL、PostgreSQLJava:Oracle、MySQL數(shù)據(jù)庫概述識別數(shù)據(jù)庫SQL語法基礎(chǔ)目錄SQL語法基礎(chǔ)庫、表、列/字段、值的定義數(shù)據(jù)庫名:data.mdb表:gmadmin(2)、news(14)、評論(40)…….表gmadmin字段或列:id、gmadmin、gmpass每個對應(yīng)的字段都有對應(yīng)的數(shù)值SQL語法基礎(chǔ)用于與關(guān)系型數(shù)據(jù)庫交互的標(biāo)準(zhǔn)SQL命令有CREATE、SELECT、INSERT、UPDATE、DELETE和DROP分為三組數(shù)據(jù)定義(Create、Drop)數(shù)據(jù)操縱(Select、Insert、Update、Delete)數(shù)據(jù)控制(Grant、Revoke)SQL語法基礎(chǔ)命令描述CREATE創(chuàng)建新的表、視圖或其他數(shù)據(jù)庫中的對象ALTER修改現(xiàn)存數(shù)據(jù)庫對象,比如一張表DROP刪除表、視圖或者數(shù)據(jù)庫中的其他對象命令描述SELECT從一張或者多張表中檢索特定的數(shù)據(jù)INSERT創(chuàng)建一條新記錄UPDATE修改記錄DELETE刪除記錄命令描述GRANT賦予用戶特權(quán)REVOKE收回賦予用戶的特權(quán)SQL語法基礎(chǔ)SQL基本操作:CUDC=Create創(chuàng)建CREATEDATABASEtestdb;
CREATETABLEtable_name(column_namecolumn_type);U=Update更改UPDATEtable_nameSETfield1=new-value1,field2=new-value2[WHEREClause]D=Delete刪除DELETEFROMtable_name[WHEREClause]SQL語法基礎(chǔ)SQL基本操作創(chuàng)建數(shù)據(jù)庫college創(chuàng)建數(shù)據(jù)庫college中的表officesSQL語法基礎(chǔ)SQL基本操作向數(shù)據(jù)庫college中的表offices中添加數(shù)據(jù)SQL語法基礎(chǔ)SQL基本操作修改表offices中的某一行的數(shù)據(jù)SQL語法基礎(chǔ)SQL基本操作刪除表offices中的某一行數(shù)據(jù)SQL語法基礎(chǔ)SQL高級操作:排序,分組,限定條數(shù)排序orderbySELECT*FROMtest_tableORDERBYuserid;分組groupbySELECTname,COUNT(*)FROMtest_tableGROUPBYname;限定條數(shù)limitSELECT*FROMtest_tablelimit0,10;SELECT*FROMtest_tablelimit1,5;聯(lián)合查詢unionselectSELECT*FROMtest_tableUNIONSELECT1,2,3;SQL語法基礎(chǔ)(1)orderbySQL語法基礎(chǔ)orderby:當(dāng)后面跟著的數(shù)字超出了字段數(shù)時,就會報(bào)錯!通過這個可以確定字段數(shù)。(1)orderbySQL語法基礎(chǔ)select*fromtablelimitm,n其中m是指記錄開始的index,從0開始;n是指從第m+1條開始,取n條兩個參數(shù):第一個是偏移量,第二個是數(shù)目select*fromemployeelimit3,7;//返回4-10行select*fromemployeelimit3,1;//返回第4行一個參數(shù)select*fromemployeelimit3;//返回前3行(2)limitSQL語法基礎(chǔ)groupby語句:根據(jù)(by)一定的規(guī)則進(jìn)行分組(Group)。
作用:通過一定的規(guī)則將一個數(shù)據(jù)集劃分成若干個小的區(qū)域,然后針對若干個小區(qū)域進(jìn)行數(shù)據(jù)處理。
注意:groupby是先排序后分組;groupby必須有“聚合函數(shù)”sum()、count()、avg()來配合才能使用。(3)groupbySQL語法基礎(chǔ)(3)groupbySQL語法基礎(chǔ)錯誤查詢語句:selectproduct,pricefromordersgroupbyproduct正確查詢語句:selectproduct,sum(price)fromordersGROUPBYproduct(3)groupbySQL語法基礎(chǔ)(3)groupbySQL語法基礎(chǔ)當(dāng)查詢語句同時出現(xiàn)了where,groupby,having,orderby的時候,執(zhí)行順序和編寫順序是:1.執(zhí)行wherexx對全表數(shù)據(jù)做篩選,返回第1個結(jié)果集。2.針對第1個結(jié)果集使用groupby分組,返回第2個結(jié)果集。3.針對第2個結(jié)果集中的每1組數(shù)據(jù)執(zhí)行selectxx,有幾組就執(zhí)行幾次,返回第3個結(jié)果集。4.針對第3個結(jié)集執(zhí)行havingxx進(jìn)行篩選,返回第4個結(jié)果集。5.針對第4個結(jié)果集排序。SQL語法基礎(chǔ)selectproduct,sum(price)fromordersGROUPBYproductHAVINGsum(price)>100ORDERBYsum(price);SQL語法基礎(chǔ)(4)聯(lián)合查詢union因?yàn)椴樵冋Z句構(gòu)造問題,可直接否認(rèn)掉之前的查詢,構(gòu)造一個全新的語句來執(zhí)行,需要注意的是查詢的列應(yīng)當(dāng)和之前對應(yīng)。SQL語法基礎(chǔ)用and...unionselect1,2,3,4,5,6...;來猜解列數(shù)(字段數(shù)),只有列數(shù)相等了,才能返回True(4)聯(lián)合查詢unionSQL語法基礎(chǔ)知道列名后,把列名至于其中任意位置,就能在那個位置暴出列的內(nèi)容來。聯(lián)合查詢正常查詢(4)聯(lián)合查詢unionSQL語法基礎(chǔ)(5)結(jié)合其他函數(shù)結(jié)合exists()函數(shù)猜解表名andexists(select...)exists()函數(shù)用于檢查子查詢是否至少會返回一行數(shù)據(jù)。實(shí)際上不返回任何數(shù)據(jù),而是返回True或者False。存在offices_second表不存在offices_s表SQL語法基礎(chǔ)unionselect結(jié)合系統(tǒng)函數(shù)暴數(shù)據(jù)庫信息MySQL5.5以上版本自帶information_schema數(shù)據(jù)庫,其中保存著關(guān)于MySQL服務(wù)器所維護(hù)的所有其他數(shù)據(jù)庫的信息,如數(shù)據(jù)庫名、數(shù)據(jù)庫的表、表欄的數(shù)據(jù)類型與訪問權(quán)限等。information_schemaschematatablescolumnsschema_nametable_nametable_schemacolumn_nametable_name庫表列(字段)(5)結(jié)合其他函數(shù)SQL語法基礎(chǔ)union結(jié)合系統(tǒng)函數(shù)暴數(shù)據(jù)庫信息information_schema.TABLES表中的TABLE_NAME和TABLE_SCHEMA查看所有的表名和所在的數(shù)據(jù)庫:
selectTABLE_NAME,TABLE_SCHEMAfrominformation_schema.TABLESwhere
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 裝飾押金合同范本
- 意向競買協(xié)議書
- 裝修門頭協(xié)議書
- 贈送汽車協(xié)議書
- 自行返程協(xié)議書
- 贈送商鋪協(xié)議書
- 資助捐贈協(xié)議書
- 營地運(yùn)營協(xié)議書
- 賬清了的協(xié)議書
- 蒸汽管路協(xié)議書
- 知道智慧樹西方文論經(jīng)典導(dǎo)讀滿分測試答案
- 醫(yī)藥行業(yè)合規(guī)培訓(xùn)課件
- 水域事故緊急救援與處置預(yù)案
- 新能源汽車工程技術(shù)專業(yè)教學(xué)標(biāo)準(zhǔn)(高等職業(yè)教育本科)2025修訂
- 四川省成都市2023級高中畢業(yè)班摸底測試英語試題(含答案和音頻)
- 以歌為翼:中文歌曲在泰國小學(xué)漢語課堂的教學(xué)效能探究
- 2025-2030中國除濕干燥機(jī)行業(yè)應(yīng)用趨勢與需求規(guī)模預(yù)測報(bào)告
- 2025廣東高考物理試題(大題部分)+評析
- 2025年中國國際貨運(yùn)代理行業(yè)市場情況研究及競爭格局分析報(bào)告
- 家庭教育概論 課件 第5章 親子關(guān)系:家庭教育的起點(diǎn)與結(jié)果
- 500千伏輸電線路工程項(xiàng)目管理實(shí)施規(guī)劃
評論
0/150
提交評論