- 網(wǎng)站入侵與腳本攻防修煉
- 肖遙編著
- 1166字
- 2019-03-01 22:12:22
第2章 SQL注入,刺入網(wǎng)站的核心
如果說(shuō)數(shù)據(jù)庫(kù)是一個(gè)網(wǎng)站的心臟,那么,SQL注入攻擊絕對(duì)是一把直刺網(wǎng)站心臟的匕首,讓網(wǎng)站陷入萬(wàn)劫不復(fù)之地。SQL注入(SQL Injection)攻擊,是眾多針對(duì)腳本系統(tǒng)的攻擊中最常見(jiàn)的一種攻擊手段,也是危害最大的一種攻擊手段。由于SQL注入攻擊的易學(xué)易用,使得網(wǎng)上各種SQL注入攻擊事件成風(fēng),對(duì)網(wǎng)站安全的危害十分嚴(yán)重。
目前,引起SQL注入的原因主要是程序員在編寫(xiě)腳本程序時(shí)對(duì)特殊字符過(guò)濾不完全引起的,造成此現(xiàn)象主要是由于程序員對(duì)腳本安全的意識(shí)不夠,或者是考慮不周所造成的。因此,深入了解與SQL注入攻擊的成因及相應(yīng)的攻擊手段與防范方法,對(duì)每一個(gè)網(wǎng)站安全工作者來(lái)說(shuō),都是必需的。
2.1 SQL注入的目標(biāo)是數(shù)據(jù)庫(kù)
那么,究竟什么是SQL注入(SQL Injection)攻擊呢?來(lái)自官方的說(shuō)法是:“當(dāng)應(yīng)用程序使用輸入內(nèi)容來(lái)構(gòu)造動(dòng)態(tài)SQL語(yǔ)句以訪問(wèn)數(shù)據(jù)庫(kù)時(shí),會(huì)發(fā)生SQL注入攻擊。如果代碼使用存儲(chǔ)過(guò)程,而這些存儲(chǔ)過(guò)程作為包含未篩選的用戶輸入的字符串來(lái)傳遞時(shí),也會(huì)發(fā)生SQL注入攻擊。SQL注入可能導(dǎo)致攻擊者能夠使用應(yīng)用程序登錄,并在數(shù)據(jù)庫(kù)中執(zhí)行命令。如果應(yīng)用程序使用特權(quán)過(guò)高的賬戶連接到數(shù)據(jù)庫(kù),這種問(wèn)題會(huì)變得很嚴(yán)重。”
也就是說(shuō),SQL注入攻擊是建立在網(wǎng)站數(shù)據(jù)庫(kù)上的一種攻擊方式。因此,了解一些常見(jiàn)的數(shù)據(jù)庫(kù)分類、數(shù)據(jù)庫(kù)執(zhí)行語(yǔ)句,以及數(shù)據(jù)庫(kù)在網(wǎng)站中的調(diào)用,是學(xué)習(xí)分析SQL注入攻擊的基礎(chǔ)。
從上面對(duì)SQL注入攻擊的解釋可以看出,SQL注入的攻擊目標(biāo)就是數(shù)據(jù)庫(kù),或者將數(shù)據(jù)庫(kù)作為跳板,進(jìn)而攻擊數(shù)據(jù)庫(kù)所有的服務(wù)器。那么,要深入地了解SQL注入攻擊,就不得不對(duì)數(shù)據(jù)庫(kù)有所了解。在本節(jié)中,我們將向大家簡(jiǎn)單介紹一些數(shù)據(jù)庫(kù)知識(shí),為后面的SQL注入攻擊學(xué)習(xí)打下基礎(chǔ)。
2.1.1 數(shù)據(jù)庫(kù)就是網(wǎng)站的一切內(nèi)容
我們先來(lái)了解一下什么是“數(shù)據(jù)庫(kù)”。簡(jiǎn)單地說(shuō),“數(shù)據(jù)庫(kù)”(database)就是為了實(shí)現(xiàn)一定的目的按某種規(guī)則組織起來(lái)的“數(shù)據(jù)”的“集合”。下面以一個(gè)很直觀的例子來(lái)說(shuō)明。
每個(gè)人都有很多朋友,為了保持與他們的聯(lián)系,我們常常用一個(gè)筆記本將他們的姓名、地址、電話等信息都記錄下來(lái),這樣要查誰(shuí)的電話或地址就很方便了。這個(gè)“通訊錄”就可以看做一個(gè)最簡(jiǎn)單的“數(shù)據(jù)庫(kù)”,每個(gè)人的姓名、地址、電話等信息就是這個(gè)數(shù)據(jù)庫(kù)中的“數(shù)據(jù)”。我們可以在筆記本這個(gè)“數(shù)據(jù)庫(kù)”中添加新朋友的個(gè)人信息,也可以由于某個(gè)朋友的電話變動(dòng)而修改他的電話號(hào)碼的“數(shù)據(jù)”。
在計(jì)算機(jī)系統(tǒng)中,構(gòu)成數(shù)據(jù)庫(kù)的數(shù)據(jù),并不是記錄在某個(gè)通訊錄之類的存儲(chǔ)上,而是作為一個(gè)數(shù)據(jù)集合,被電子化存儲(chǔ)在計(jì)算機(jī)的磁盤(pán)存儲(chǔ)系統(tǒng)中。這些數(shù)據(jù)集合,通常被保存為一個(gè)或多個(gè)彼此相關(guān)的磁盤(pán)文件。通常,就把這些文件形式存在的數(shù)據(jù)集合稱為數(shù)據(jù)庫(kù)。
對(duì)于一個(gè)網(wǎng)站來(lái)說(shuō),數(shù)據(jù)庫(kù)是必不可少的。在網(wǎng)站的數(shù)據(jù)庫(kù)中,記錄著網(wǎng)站的一切操作信息,包括新聞、文章、用戶名及密碼、商品信息、圖片分類等。數(shù)據(jù)庫(kù)對(duì)網(wǎng)站是至關(guān)重要的,可以說(shuō),網(wǎng)站的數(shù)據(jù)庫(kù)就好像網(wǎng)站的存儲(chǔ)器,在這個(gè)存儲(chǔ)器中,存儲(chǔ)著網(wǎng)站中的所有數(shù)據(jù)信息。一旦網(wǎng)站的數(shù)據(jù)庫(kù)遭到攻擊破壞,就會(huì)丟失網(wǎng)站新聞、文章等各種信息,可能會(huì)造成整個(gè)網(wǎng)站的崩潰!
依照數(shù)據(jù)庫(kù)中的數(shù)據(jù)關(guān)系,數(shù)據(jù)庫(kù)可分為兩類:關(guān)系(型)數(shù)據(jù)庫(kù)和面向?qū)ο髷?shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)中的數(shù)據(jù)被分門(mén)別類地存放在一些結(jié)構(gòu)化的數(shù)據(jù)表(table)里,而數(shù)據(jù)表之間又往往會(huì)形成種種內(nèi)在的交叉引用關(guān)系。存在于數(shù)據(jù)表之間的這種關(guān)系(relation)的數(shù)據(jù)庫(kù)又被稱為關(guān)系(型)數(shù)據(jù)庫(kù)(Relational DataBase, RDB)。另一類數(shù)據(jù)庫(kù)被統(tǒng)稱為面向?qū)ο髷?shù)據(jù)庫(kù)(object-oriented database),主要用于存儲(chǔ)彼此沒(méi)有內(nèi)在聯(lián)系的數(shù)據(jù)對(duì)象(而不必把它們安排到數(shù)據(jù)表里去)。
在各種網(wǎng)站中,面向?qū)ο蟮臄?shù)據(jù)庫(kù)產(chǎn)品使用得比較少,因此本書(shū)主要涉及到的是與各網(wǎng)站安全息息相關(guān)的關(guān)系(型)數(shù)據(jù)庫(kù)。
2.1.2 明白幾個(gè)SQL中要用到的名詞
與其他計(jì)算機(jī)系統(tǒng)數(shù)據(jù)庫(kù)相似,在網(wǎng)站的數(shù)據(jù)庫(kù)中,也有一些基本的構(gòu)成組件,包括數(shù)據(jù)表(table)、記錄(data record)、字段(field)、查詢(query)、SQL、索引(index)和鍵(key)等。
1.?dāng)?shù)據(jù)表(table)、記錄(data record)和字段(field)
前面已經(jīng)提到過(guò)數(shù)據(jù)表(table),即用來(lái)實(shí)際存放有關(guān)數(shù)據(jù)的框架結(jié)構(gòu)(見(jiàn)圖1)。這種數(shù)據(jù)表里的每一行被稱為一條數(shù)據(jù)記錄(data record),簡(jiǎn)稱“記錄”,每條記錄的結(jié)構(gòu)和格式是由操作者在定義該數(shù)據(jù)表時(shí)決定的。
例如,在某個(gè)網(wǎng)站的用戶數(shù)據(jù)表里,每條數(shù)據(jù)記錄可能包含著姓氏、名字、性別、生日、電話等多個(gè)字段(field)。每個(gè)字段對(duì)自己所能存儲(chǔ)的信息數(shù)據(jù)類型又有著一定的要求,例如,它必須是一個(gè)指定格式的數(shù)字,或者是一個(gè)指定長(zhǎng)度的字符或字符串等。

圖1 某網(wǎng)站數(shù)據(jù)庫(kù)中的用戶數(shù)據(jù)表結(jié)構(gòu)
對(duì)一個(gè)數(shù)據(jù)庫(kù)的描述被稱為一個(gè)數(shù)據(jù)庫(kù)模型(database model),它是由這個(gè)數(shù)據(jù)庫(kù)里的全體數(shù)據(jù)表及它們所有的字段、關(guān)系和索引構(gòu)成的。數(shù)據(jù)庫(kù)模型不僅要定義所涉及的各種數(shù)據(jù)結(jié)構(gòu)的整體框架,還必須同時(shí)給出將存放于此的數(shù)據(jù)存儲(chǔ)格式。
2.查詢(query)與SQL
存儲(chǔ)在數(shù)據(jù)表里的數(shù)據(jù)通常沒(méi)有特定的順序,數(shù)據(jù)表里的數(shù)據(jù)通常是按照它們被錄入或修改時(shí)的順序進(jìn)行排列的。因此,要想有效率地使用數(shù)據(jù)庫(kù)里的數(shù)據(jù),根據(jù)某個(gè)條件為相應(yīng)的數(shù)據(jù)創(chuàng)建一個(gè)清單十分必要。
例如,在上面的數(shù)據(jù)表中,我們需要查看所有電話號(hào)碼為130開(kāi)頭的用戶數(shù)據(jù),就需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)清單。要?jiǎng)?chuàng)建數(shù)據(jù)清單,就必須構(gòu)造并執(zhí)行相應(yīng)的查詢(query)。查詢的結(jié)果其實(shí)也是一個(gè)數(shù)據(jù)表,只不過(guò)這個(gè)數(shù)據(jù)表將只存在于計(jì)算機(jī)的內(nèi)存中,而不是在硬盤(pán)上。
查詢(query)是通過(guò)各種SQL指令執(zhí)行的,SQL指令負(fù)責(zé)具體完成篩選和提取結(jié)果數(shù)據(jù)的工作。SQL是英文“Structured Query Language”(結(jié)構(gòu)化查詢語(yǔ)言)的縮寫(xiě),這種語(yǔ)言已發(fā)展演變?yōu)槿藗冊(cè)跇?gòu)造數(shù)據(jù)庫(kù)查詢命令時(shí)的一個(gè)標(biāo)準(zhǔn)。
3.索引(index)和主鍵(primary key)
隨著數(shù)據(jù)量的增加,數(shù)據(jù)表會(huì)變得越來(lái)越大,數(shù)據(jù)字段通常是按照先后順序被存入數(shù)據(jù)表的,查詢的速度往往會(huì)因?yàn)閿?shù)據(jù)量而受很大的影響,因此為了提高查詢速度,需要為數(shù)據(jù)建立適當(dāng)?shù)乃饕K饕╥ndex)是一種輔助性的數(shù)據(jù)表,它們只包含一種信息——原始數(shù)據(jù)記錄的排序情況。索引還經(jīng)常被人們稱為鍵字或鍵(key)。
索引有助于加快對(duì)數(shù)據(jù)的訪問(wèn)速度,但同時(shí)也存在著一些缺點(diǎn)。首先,索引會(huì)增加數(shù)據(jù)庫(kù)文件在硬盤(pán)上的空間占用量。其次,索引必須隨原始數(shù)據(jù)同步更新才有實(shí)際意義,而這么做當(dāng)然需要花費(fèi)時(shí)間。換句話說(shuō),在讀取數(shù)據(jù)時(shí),索引可以節(jié)約時(shí)間;但在輸入和修改數(shù)據(jù)時(shí),索引反而會(huì)“浪費(fèi)”時(shí)間。
有一種特殊的索引叫做主索引(primary index)或主鍵(primary key),它們與其他索引的區(qū)別在于,主索引必須保證每條記錄的索引值必須是獨(dú)一無(wú)二的。為了做到這一點(diǎn),通常采用一個(gè)遞增的索引編號(hào)(ID編號(hào))作為主索引。主索引在關(guān)系數(shù)據(jù)庫(kù)里扮演著一個(gè)極其重要的角色,它們可以顯著加快對(duì)數(shù)據(jù)的訪問(wèn)速度。
2.1.3 SQL注入攻擊中常碰到的幾種DBMS
對(duì)于網(wǎng)站的數(shù)據(jù)庫(kù)來(lái)說(shuō),數(shù)據(jù)庫(kù)管理系統(tǒng)就是掌握數(shù)據(jù)庫(kù)功能的主宰,而攻擊者正是通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng),向網(wǎng)站發(fā)送一條條的欺騙性攻擊指令,達(dá)到攻擊網(wǎng)站的目的。
數(shù)據(jù)庫(kù)管理系統(tǒng)(Database Management System)是一種操縱和管理數(shù)據(jù)庫(kù)的軟件,是用于建立、使用和維護(hù)數(shù)據(jù)庫(kù),簡(jiǎn)稱DBMS。
數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫(kù)的安全性和完整性。用戶通過(guò)DBMS訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),數(shù)據(jù)庫(kù)管理員也通過(guò)DBMS進(jìn)行數(shù)據(jù)庫(kù)的維護(hù)工作。
數(shù)據(jù)庫(kù)數(shù)據(jù)模型結(jié)構(gòu),是數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)重要組成。數(shù)據(jù)庫(kù)的各種數(shù)據(jù)操作,如查找、修改、插入和刪除等,以及數(shù)據(jù)庫(kù)的維護(hù)管理,都是以數(shù)據(jù)庫(kù)模型為依據(jù)的。目前數(shù)據(jù)模型比較重要的有3種類型:分級(jí)模型、網(wǎng)絡(luò)模型和關(guān)系模型。
基于關(guān)系模型的數(shù)據(jù)庫(kù)管理系統(tǒng),被稱為關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(Relational Database Management System,簡(jiǎn)稱RDMS)。目前比較著名的數(shù)據(jù)庫(kù)管理系統(tǒng),大多是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),比如Oracle、Sybase、Informix、Microsoft SQL Server、Microsoft Access、Visual FoxPro和MySQL等。
1.Microsoft SQL Server
Microsoft SQL Server是一種典型的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),可以在許多操作系統(tǒng)上運(yùn)行,它使用Transact-SQL語(yǔ)言完成數(shù)據(jù)操作。由于Microsoft SQL Server是開(kāi)放式的系統(tǒng),其他系統(tǒng)可以與它進(jìn)行完好的交互操作。目前,最新版本的產(chǎn)品為Microsoft SQL Server 2005,它具有可靠性、可伸縮性、可用性、可管理性等特點(diǎn),可為用戶提供完整的數(shù)據(jù)庫(kù)解決方案。
SQL Server 2005是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能(BI)工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。SQL Server 2005數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使用戶可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。
SQL Server 2005數(shù)據(jù)引擎是本企業(yè)數(shù)據(jù)管理解決方案的核心。此外,SQL Server 2005還結(jié)合了分析、報(bào)表、集成和通知功能。
2.MySQL
MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中、小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中、小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統(tǒng), Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù),PHP作為服務(wù)器端腳本解釋器。
MySQL可以使用命令行工具管理MySQL數(shù)據(jù)庫(kù),也可以從MySQL的網(wǎng)站下載圖形管理工具M(jìn)ySQL Administrator和MySQL Query Browser。另外,MySQL還有一個(gè)專用的管理工具phpMyAdmin。phpMyAdmin是由PHP寫(xiě)成的MySQL資料庫(kù)系統(tǒng)管理程式,讓管理者可用Web界面管理MySQL資料庫(kù)。
3.Microsoft Access
Microsoft Access是Microsoft Office組件之一,也是在Windows環(huán)境下非常流行的桌面型數(shù)據(jù)庫(kù)管理系統(tǒng)。使用Microsoft Access無(wú)須編寫(xiě)任何代碼,只需通過(guò)直觀的可視化操作就可以完成大部分?jǐn)?shù)據(jù)管理任務(wù)。
在Microsoft Access數(shù)據(jù)庫(kù)中,包括許多組成數(shù)據(jù)庫(kù)的基本要素。這些要素是存儲(chǔ)信息的表、顯示人機(jī)交互界面的窗體、有效檢索數(shù)據(jù)的查詢、信息輸出載體的報(bào)表、提高應(yīng)用效率的宏、功能強(qiáng)大的模塊工具等。它不僅可以通過(guò)ODBC與其他數(shù)據(jù)庫(kù)相連,實(shí)現(xiàn)數(shù)據(jù)交換和共享,還可以與Word、Excel等辦公軟件進(jìn)行數(shù)據(jù)交換和共享,并且通過(guò)對(duì)象鏈接與嵌入技術(shù)在數(shù)據(jù)庫(kù)中嵌入和鏈接聲音、圖像等多媒體數(shù)據(jù)。
4.Oracle
Oracle也是一個(gè)應(yīng)用廣泛、功能強(qiáng)大的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。Oracle作為一個(gè)通用的數(shù)據(jù)庫(kù)管理系統(tǒng),不僅具有完整的數(shù)據(jù)管理功能,還是一個(gè)分布式數(shù)據(jù)庫(kù)系統(tǒng),支持各種分布式功能,特別是支持Internet應(yīng)用。
作為一個(gè)應(yīng)用開(kāi)發(fā)環(huán)境,Oracle提供了一套界面友好、功能齊全的數(shù)據(jù)庫(kù)開(kāi)發(fā)工具。Oracle使用PL/SQL語(yǔ)言執(zhí)行各種操作,具有可開(kāi)放性、可移植性、可伸縮性等功能。特別是在最新的Oracle11g中,支持面向?qū)ο蟮墓δ埽缰С诸悺⒎椒ā傩缘龋沟肙racle產(chǎn)品成為一種對(duì)象/關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。
目前,網(wǎng)上最常見(jiàn)的數(shù)據(jù)庫(kù)與語(yǔ)言網(wǎng)站構(gòu)架方式有MySQL+PHP、MS SQL+PHP、ASP+MS SQL、ASP+Access、JSP+Oracle、JSP+MySQL、ASPX+Access、ASPX+MS SQL和ASPX+Access等。因此,對(duì)前面提到的這4種數(shù)據(jù)庫(kù)管理系統(tǒng),進(jìn)行深入的了解是很有必要的。
2.1.4 提前了解幾條SQL注入查詢指令
通過(guò)前面的介紹,我們知道數(shù)據(jù)庫(kù)管理系統(tǒng)是通過(guò)SQL語(yǔ)句,執(zhí)行各種數(shù)據(jù)庫(kù)添加刪除操作及安全管理備份等功能。也就是說(shuō),數(shù)據(jù)庫(kù)是網(wǎng)站的大腦,數(shù)據(jù)庫(kù)管理系統(tǒng)就是傳導(dǎo)這些指令信號(hào)的神經(jīng)網(wǎng)絡(luò),而SQL語(yǔ)句就像是通過(guò)神經(jīng)網(wǎng)絡(luò)傳導(dǎo)到大腦的一條條神經(jīng)指令,讓大腦進(jìn)行信號(hào)分析從而執(zhí)行各種指令。
而攻擊者之所以能夠?qū)W(wǎng)站進(jìn)行攻擊,正是在混入神經(jīng)網(wǎng)絡(luò)中發(fā)送了一條條的欺騙性神經(jīng)指令。網(wǎng)絡(luò)入侵者最常用到的幾條欺騙性指令是哪些呢?
這里我們簡(jiǎn)單地介紹一下,在SQL注入攻擊中最常用到的幾條SQL語(yǔ)句,至于每條指令的詳細(xì)執(zhí)行及功能,將在后面以實(shí)例結(jié)合進(jìn)行講解。
1)數(shù)據(jù)記錄篩選語(yǔ)句
sql="select * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 數(shù)據(jù)表 where 字段名 like ' %字段值%' order by 字段名 [desc]" sql="select top 10 * from 數(shù)據(jù)表 where 字段名 order by 字段名 [desc]" sql="select * from 數(shù)據(jù)表 where 字段名 in (’值1' , ’值2' , ’值3' )" sql="select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2"
2)更新數(shù)據(jù)記錄語(yǔ)句
sql="update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達(dá)式" sql="update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達(dá)式"
3)刪除添加數(shù)據(jù)記錄語(yǔ)句
sql="delete from 數(shù)據(jù)表 where 條件表達(dá)式" sql="delete from 數(shù)據(jù)表" (將數(shù)據(jù)表所有記錄刪除) sql="insert into 數(shù)據(jù)表 (字段1,字段2,字段3 …) values (值1,值2, 值3 …)" sql="insert into 目標(biāo)數(shù)據(jù)表 select * from 源數(shù)據(jù)表" (把源數(shù)據(jù)表的 記錄添加到目標(biāo)數(shù)據(jù)表)
4)數(shù)據(jù)記錄統(tǒng)計(jì)函數(shù)
AVG(字段名) 得出一個(gè)表格欄平均值 COUNT(*—字段名) 對(duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì) MAX(字段名) 取得一個(gè)表格欄最大的值 MIN(字段名) 取得一個(gè)表格欄最小的值 SUM(字段名) 把數(shù)據(jù)欄的值相加 引用以上函數(shù)的方法: sql="select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達(dá)式" set rs=conn.excute(sql) 用 rs("別名") 獲取統(tǒng)的計(jì)值,其他函數(shù)運(yùn)用同上。
5)數(shù)據(jù)表的建立和刪除
CREATE TABLE 數(shù)據(jù)表名稱(字段1 類型1(長(zhǎng)度),字段2 類型2(長(zhǎng)度) ……)
以上語(yǔ)句用于新建一個(gè)數(shù)據(jù)表,例如:CREATE TABLE tab01(name varchar(50), datetime default now())
DROP TABLE 數(shù)據(jù)表名稱 (永久性刪除一個(gè)數(shù)據(jù)表)
- 21小時(shí)學(xué)通AutoCAD
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)·基礎(chǔ)模塊
- 錯(cuò)覺(jué):AI 如何通過(guò)數(shù)據(jù)挖掘誤導(dǎo)我們
- TestStand工業(yè)自動(dòng)化測(cè)試管理(典藏版)
- 自動(dòng)控制原理
- HBase Design Patterns
- Learning C for Arduino
- Kubernetes for Serverless Applications
- Learn CloudFormation
- 單片機(jī)技術(shù)一學(xué)就會(huì)
- INSTANT Puppet 3 Starter
- AI的25種可能
- Spark大數(shù)據(jù)商業(yè)實(shí)戰(zhàn)三部曲:內(nèi)核解密|商業(yè)案例|性能調(diào)優(yōu)
- Creating ELearning Games with Unity
- Serverless Design Patterns and Best Practices