23-系統(tǒng)安全03-數(shù)據(jù)庫安全01-數(shù)據(jù)庫基礎_第1頁
23-系統(tǒng)安全03-數(shù)據(jù)庫安全01-數(shù)據(jù)庫基礎_第2頁
23-系統(tǒng)安全03-數(shù)據(jù)庫安全01-數(shù)據(jù)庫基礎_第3頁
23-系統(tǒng)安全03-數(shù)據(jù)庫安全01-數(shù)據(jù)庫基礎_第4頁
23-系統(tǒng)安全03-數(shù)據(jù)庫安全01-數(shù)據(jù)庫基礎_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫基礎了解數(shù)據(jù)庫的概念及常見主流數(shù)據(jù)庫產(chǎn)品熟悉識別數(shù)據(jù)庫方法熟悉SQL語法,掌握常見SQL命令的使用教學目標數(shù)據(jù)庫概述識別數(shù)據(jù)庫SQL語法基礎目錄數(shù)據(jù)庫概述數(shù)據(jù)庫(DataBase,DB):存儲在磁帶、磁盤、光盤或其他外存介質上、按一定結構組織在一起的相關數(shù)據(jù)的集合。數(shù)據(jù)庫管理系統(tǒng)(DataBase

Management

System,DBMS):一種操縱和管理數(shù)據(jù)庫的大型軟件,用于建立、使用和維護數(shù)據(jù)庫。數(shù)據(jù)庫系統(tǒng)(DataBase

System,DBS):通常由軟件、數(shù)據(jù)庫(DB)和數(shù)據(jù)庫管理員組成。軟件主要包括操作系統(tǒng)、各種宿主語言、實用程序以及數(shù)據(jù)庫管理系統(tǒng)(DBMS)。數(shù)據(jù)庫(DB)由數(shù)據(jù)庫管理系統(tǒng)(DBMS)統(tǒng)一管理,數(shù)據(jù)的插入、修改和檢索均要通過數(shù)據(jù)庫管理系統(tǒng)(DBMS)進行。數(shù)據(jù)庫管理員負責創(chuàng)建、監(jiān)控和維護整個數(shù)據(jù)庫,使數(shù)據(jù)能被任何有權使用的人有效使用。典型的網(wǎng)站體系結構數(shù)據(jù)庫概述數(shù)據(jù)庫分類關系型數(shù)據(jù)庫關系型數(shù)據(jù)庫模型是把復雜的數(shù)據(jù)結構歸結為簡單的二元關系(即二維表格形式)。通過SQL結構化查詢語句存儲數(shù)據(jù),保持數(shù)據(jù)一致性,遵循ACID理論。關系型數(shù)據(jù)庫的典型產(chǎn)品:MySQL、MicrosoftSQLServer、Oracle、PostgreSQL、IBMDB2、Access等。非關系型數(shù)據(jù)庫非關系型數(shù)據(jù)庫也被成為NOSQL數(shù)據(jù)庫,NOSQL的本意是“NotOnlySQL”指的是非關系型數(shù)據(jù)庫,而不是“NoSQL”的意思。因此,NOSQL的產(chǎn)生并不是要徹底地否定關系型數(shù)據(jù)庫,而是作為傳統(tǒng)關系型數(shù)據(jù)庫的一個有效補充。NOSQL數(shù)據(jù)庫在特定的場景下可以發(fā)揮出難以想象的高效率和高性能。非關系型數(shù)據(jù)庫的典型產(chǎn)品:Memcached、Redis、mongoDB等。數(shù)據(jù)庫概述ACID理論原子性(Atomicity):事務是一個不可分割的單位,事務中的操作要么都發(fā)生,要么都不發(fā)生。一致性(Consistency):事務前后數(shù)據(jù)的完整性必須保持一致。隔離性(Isolation):多個用戶并發(fā)訪問數(shù)據(jù)庫時,數(shù)據(jù)庫為每一個用戶開啟的事務,不能被其他事務的操作數(shù)據(jù)所干擾,多個并發(fā)事務之間要相互隔離。持久性(Durability):一個事務一旦被提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久性的,接下來即使數(shù)據(jù)庫發(fā)生故障也不應該對其有任何影響。數(shù)據(jù)庫概述數(shù)據(jù)庫概述Oracle甲骨文公司的一款關系型數(shù)據(jù)庫管理系統(tǒng)。它是在數(shù)據(jù)庫領域一直處于領先地位的產(chǎn)品。可以說Oracle是目前世界上功能最強大、最復雜、市場占比最高的商業(yè)數(shù)據(jù)庫產(chǎn)品,適用于各類大、中、小、微機環(huán)境。它是一種高效率、可靠性好的適應高吞吐量的數(shù)據(jù)庫解決方案。從架構到運維,可以說是最難的數(shù)據(jù)庫,學習和使用難度較高。數(shù)據(jù)庫概述MySQLMySQL是當今最受歡迎的開源SQL數(shù)據(jù)庫管理系統(tǒng),它由瑞典MySQLAB開發(fā)、發(fā)布和支持。MySQLAB是一家基于MySQL開發(fā)人員的商業(yè)公司,它是一家使用了一種成功的商業(yè)模式來結合開源價值和方法論的第二代開源公司。MySQL是現(xiàn)在非常流行的關系型數(shù)據(jù)庫管理系統(tǒng),尤其在Web應用方面,是最好的關系型數(shù)據(jù)庫管理系統(tǒng)應用軟件之一。數(shù)據(jù)庫概述MicrosoftSQLServer(MSSQL)SQLServer是Microsoft推出的關系型數(shù)據(jù)庫管理系統(tǒng),具有使用方便、可伸縮性好、與相關軟件集成程度高等優(yōu)點,從舊版本的個人電腦到運行MicrosoftWindowsserver的大型多處理器的服務器都可以使用。老版本只能在Windows上運行,從SQLServer2017版本起可以在Linux上運行。數(shù)據(jù)庫概述PostgreSQLPostgreSQL是加州大學伯克利分校計算機系開發(fā)的開源對象關系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),穩(wěn)定性極強,用于安全地存儲數(shù)據(jù)。數(shù)據(jù)庫概述MemcachedMemcached是一個開源的、高性能的、具有分布式內(nèi)存對象的緩存系統(tǒng)。通過它可以減輕數(shù)據(jù)庫負載,加速動態(tài)的Web應用。目前全球有非常多的用戶都在使用它來架構主機的大負載網(wǎng)站或提升主機的高訪問網(wǎng)站的響應速度。Memcached是一種純內(nèi)存緩存系統(tǒng),把經(jīng)常存取的對象或數(shù)據(jù)緩存在Memcached的內(nèi)存中,這些緩存的數(shù)據(jù)被程序通過API的方式進行讀取,Memcached里面的數(shù)據(jù)就像一張巨大的hash表,數(shù)據(jù)以key-value對的方式存在。Memcached之反射拒絕服務攻擊技術數(shù)據(jù)庫概述RedisRedis也是一個key-value型存儲系統(tǒng)。但Redis支持的存儲value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)等。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集、并集和差集及更豐富的操作。Redis未授權訪問漏洞數(shù)據(jù)庫概述mongoDBmongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫,由C++語言編寫,旨在為Web應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。mongoDB是一個介于關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫之間的產(chǎn)品,是非關系型數(shù)據(jù)庫當中功能最豐富,最像關系型數(shù)據(jù)庫的。它支持的數(shù)據(jù)結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數(shù)據(jù)類型。mongoDB最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現(xiàn)類似關系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。MongoDB遠程代碼注入漏洞數(shù)據(jù)庫概述國內(nèi)自主研發(fā)的關系型數(shù)據(jù)庫達夢(DM):由華中理工馮玉才教授創(chuàng)辦,完全自主研發(fā),以Oracle為參照、追趕對象。人大金倉(Kingbase):由人民大學王珊教授創(chuàng)辦,自主研發(fā)。普通的關系型數(shù)據(jù)庫。神舟通用(OSCAR):神舟集團與南大通用合作開發(fā)的關系型數(shù)據(jù)庫,更多地用于數(shù)據(jù)分析領域。南大通用(GBase):南開大學的背景,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語法基礎目錄識別數(shù)據(jù)庫方法盲跟蹤Web應用技術不同數(shù)據(jù)庫SQL語句差異

非盲跟蹤報錯、直接查詢識別數(shù)據(jù)庫識別數(shù)據(jù)庫默認端口號Oracle:1521MySQL:3306SQLServer:1433PostgreSQL:5432mongoDB:27017Redis:6379MemcacheDB:11211識別數(shù)據(jù)庫報錯信息MySQL報錯信息:MSSQL(MicrosoftSQLServer)報錯信息:Oracle報錯信息:識別數(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語法基礎目錄SQL語法基礎庫、表、列/字段、值的定義數(shù)據(jù)庫名:data.mdb表:gmadmin(2)、news(14)、評論(40)…….表gmadmin字段或列:id、gmadmin、gmpass每個對應的字段都有對應的數(shù)值SQL語法基礎用于與關系型數(shù)據(jù)庫交互的標準SQL命令有CREATE、SELECT、INSERT、UPDATE、DELETE和DROP分為三組數(shù)據(jù)定義(Create、Drop)數(shù)據(jù)操縱(Select、Insert、Update、Delete)數(shù)據(jù)控制(Grant、Revoke)SQL語法基礎命令描述CREATE創(chuàng)建新的表、視圖或其他數(shù)據(jù)庫中的對象ALTER修改現(xiàn)存數(shù)據(jù)庫對象,比如一張表DROP刪除表、視圖或者數(shù)據(jù)庫中的其他對象命令描述SELECT從一張或者多張表中檢索特定的數(shù)據(jù)INSERT創(chuàng)建一條新記錄UPDATE修改記錄DELETE刪除記錄命令描述GRANT賦予用戶特權REVOKE收回賦予用戶的特權SQL語法基礎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語法基礎SQL基本操作創(chuàng)建數(shù)據(jù)庫college創(chuàng)建數(shù)據(jù)庫college中的表officesSQL語法基礎SQL基本操作向數(shù)據(jù)庫college中的表offices中添加數(shù)據(jù)SQL語法基礎SQL基本操作修改表offices中的某一行的數(shù)據(jù)SQL語法基礎SQL基本操作刪除表offices中的某一行數(shù)據(jù)SQL語法基礎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語法基礎(1)orderbySQL語法基礎orderby:當后面跟著的數(shù)字超出了字段數(shù)時,就會報錯!通過這個可以確定字段數(shù)。(1)orderbySQL語法基礎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語法基礎groupby語句:根據(jù)(by)一定的規(guī)則進行分組(Group)。

作用:通過一定的規(guī)則將一個數(shù)據(jù)集劃分成若干個小的區(qū)域,然后針對若干個小區(qū)域進行數(shù)據(jù)處理。

注意:groupby是先排序后分組;groupby必須有“聚合函數(shù)”sum()、count()、avg()來配合才能使用。(3)groupbySQL語法基礎(3)groupbySQL語法基礎錯誤查詢語句:selectproduct,pricefromordersgroupbyproduct正確查詢語句:selectproduct,sum(price)fromordersGROUPBYproduct(3)groupbySQL語法基礎(3)groupbySQL語法基礎當查詢語句同時出現(xiàn)了where,groupby,having,orderby的時候,執(zhí)行順序和編寫順序是:1.執(zhí)行wherexx對全表數(shù)據(jù)做篩選,返回第1個結果集。2.針對第1個結果集使用groupby分組,返回第2個結果集。3.針對第2個結果集中的每1組數(shù)據(jù)執(zhí)行selectxx,有幾組就執(zhí)行幾次,返回第3個結果集。4.針對第3個結集執(zhí)行havingxx進行篩選,返回第4個結果集。5.針對第4個結果集排序。SQL語法基礎selectproduct,sum(price)fromordersGROUPBYproductHAVINGsum(price)>100ORDERBYsum(price);SQL語法基礎(4)聯(lián)合查詢union因為查詢語句構造問題,可直接否認掉之前的查詢,構造一個全新的語句來執(zhí)行,需要注意的是查詢的列應當和之前對應。SQL語法基礎用and...unionselect1,2,3,4,5,6...;來猜解列數(shù)(字段數(shù)),只有列數(shù)相等了,才能返回True(4)聯(lián)合查詢unionSQL語法基礎知道列名后,把列名至于其中任意位置,就能在那個位置暴出列的內(nèi)容來。聯(lián)合查詢正常查詢(4)聯(lián)合查詢unionSQL語法基礎(5)結合其他函數(shù)結合exists()函數(shù)猜解表名andexists(select...)exists()函數(shù)用于檢查子查詢是否至少會返回一行數(shù)據(jù)。實際上不返回任何數(shù)據(jù),而是返回True或者False。存在offices_second表不存在offices_s表SQL語法基礎unionselect結合系統(tǒng)函數(shù)暴數(shù)據(jù)庫信息MySQL5.5以上版本自帶information_schema數(shù)據(jù)庫,其中保存著關于MySQL服務器所維護的所有其他數(shù)據(jù)庫的信息,如數(shù)據(jù)庫名、數(shù)據(jù)庫的表、表欄的數(shù)據(jù)類型與訪問權限等。information_schemaschematatablescolumnsschema_nametable_nametable_schemacolumn_nametable_name庫表列(字段)(5)結合其他函數(shù)SQL語法基礎union結合系統(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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 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

提交評論