{
\"code\": 200,
\"title\": \"\",
\"content\": \"SQL(StructuredQueryLanguage)結構化查詢語言,是一種數據庫查詢和程式設計語言,用於存取數據以及查詢、更新和管理關係數據庫係統。同時也是數據庫腳本檔案的擴展名。\\n\\nSQL是高級的非過程化編程語言,是溝通數據庫服務器和客戶端的重要工具,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶瞭解具體的數據存放方式,所以,具有完全不同底層結\\n\\nSQL\\n\\n構的不同數據庫係統,可以使用相同的SQL語言作為數據輸入與管理的\\n\\nSQL介麵。它以\\n\\n記錄集合作為操作對象,所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為另一條SQL語句的輸入,所以SQL語句可以巢狀,這使它具有極大的靈活性和強大的功能,在多數情況下,在其他語言中需要一大段程式實現的功能隻需要一個SQL語句就可以達到目的,這也意味著用SQL語言可以寫出非常複雜的語句。\\n\\n結構化查詢語言(StructuredQueryLanguage)最早是IBM的聖約瑟研究實驗室為其關係數據庫管理係統SYSTEMR開發的一種查詢語言,它的前身是SQUARE語言。SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL語言得到了廣泛的應用。如今無論是像Oracle、Sybase、DB2、Informix、SQLServer這些大型的數據庫管理係統,還是像VisualFoxpro、PowerBuilder這些PC上常用的數據庫開發係統,都支援SQL語言作為查詢語言。\\n\\n美國國家標準局(ANSI)與國際標準化組織(ISO)已經製定了SQL標準。ANSI是一個美國工業和商業集團組織,負責開發美國的商務和通訊標準。ANSI同時也是ISO和InternationalElectrotechnicalCommission(IEC)的成員之一。ANSI釋出與國際標準組織相應的美國標準。1992年,ISO和IEC釋出了SQL國際標準,稱為SQL-92。ANSI隨之釋出的相應標準是ANSISQL-92。ANSISQL-92有時被稱為ANSISQL。儘管不同的關係數據庫使用的SQL版本有一些差異,但大多數都遵循ANSISQL標準。SQLServer使用ANSISQL-92的擴展集,稱為T-SQL,其遵循ANSI製定的SQL-92標準。\\n\\nSQL語言包含4個部分:\\n\\n※數據定義語言(DDL),例如:CREATE、DROP、ALTER等語句。\\n\\n※數據操作語言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(刪除)語句。\\n\\n※數據查詢語言(DQL),例如:SELECT語句。\\n\\n※數據控製語言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等語句。\\n\\nSQL語言包括三種主要程式設計語言類彆的語句:數據定義語言(DDL),數據操作語言(DML)及數據控製語言(DCL)。\\n\\nSQL是用於訪問和處理數據庫的標準的計算機語言。\\n\\n功能介紹\\n\\nSQL麵向數據庫執行查詢;SQL可從數據庫取回數據;SQL可在數據庫中插入新的記錄;SQL可更新數據庫中的數據;SQL可從數據庫刪除記錄;SQL可創建新數據庫;SQL可在數據庫中創建新表;SQL可在數據庫中創建存儲過程;SQL可在數據庫中創建視圖;SQL可以設置表、存儲過程和視圖的權限。\\n\\nSQL是一種標準-但是...\\n\\nSQL是一門ANSI的標準計算機語言,用來訪問和操作數據庫係統。SQL語句用於取回和更新數據庫中的數據。SQL可與數據庫程式協同工作,比如MSAccess、DB2、Informix、MSSQLServer、Oracle、Sybase以\\n\\nSQL語句結構\\n\\n及其他數據庫係統。\\n\\nSQL語句結構不幸地是,存在著很多不同版本的SQL語言,但是為\\n\\n了與ANSI標準相相容,它們必須以相似的方式共同地來支援一些主要的關鍵詞(比如SELECT、UPDATE、DELETE、INSERT、WHERE等等)。\\n\\n註釋:除了SQL標準之外,大部分SQL數據庫程式都擁有它們自己的私有擴展!\\n\\nSQL擴展語言\\n\\nT-SQL\\n\\nPL\\/SQL\\n\\n在您的網站中使用SQL\\n\\n要創建釋出數據庫中數據的網站,您需要以下要素:\\n\\nRDBMS數據庫程式(比如MSAccess,SQLServer,MySQL);\\n\\n服務器端腳本語言(比如PHP或ASP,JSP);\\n\\nSQL;\\n\\nHTML\\/CSS。\\n\\nRDBMS\\n\\nRDBMS指的是關係型數據庫管理係統(RelationshipDataBaseManagementSystem)。\\n\\nRDBMS是SQL的基礎,同樣也是所有現代數據庫係統的基礎,比如MSSQLServer,IBMDB2,Oracle,MySQL以及MicrosoftAccess。\\n\\nRDBMS中的數據存儲在被稱為表(tables)的數據庫對象中。\\n\\n表是相關的數據項的集合,它由列和行組成。\\n\\nSQL發展曆史\\n\\n1970:E.J.Codd發表了關係數據庫理論(relationaldatabasetheory);\\n\\n1974-79:IBM以Codd的理論為基礎開發了“Sequel”,並重新命名為\\\"SQL\\\";\\n\\n1979:Oracle釋出了商業版SQL\\n\\n1981-84:出現了其他商業版本,分彆來自IBM(DB2),DataGeneral(DG\\/SQL),RelationalTechnology(INGRES);\\n\\nSQL\\/86:ANSI跟ISO的第一個標準;\\n\\nSQL\\/89:增加了引用完整性(referentialintegrity);\\n\\nSQL\\/92(akaSQL2):被數據庫管理係統(DBMS)生產商廣發接受;\\n\\n1997 :成為動態網站(Dynamicwebcontent)的後台支援;\\n\\nSQL\\/99:Corelevel跟其他8種相應的level,包括遞歸查詢,程式跟流程控製,基本的對象(object)支援包括oids;\\n\\nSQL\\/2003:包含了XML相關內容,自動生成列值(columnvalues);\\n\\n2005-09-30:“Dataisthenextgenerationinside...SQListhenewHTML”!TimO'eilly提出了Web2.0理念,稱數據將是核心,SQL將成為“新的HTML\\\";\\n\\nSQL\\/2006:定義了SQL與XML(包含XQuery)的關聯應用;\\n\\n2006:Sun公司將以SQL基礎的數據庫管理係統嵌入JavaV6\\n\\n2007:SQLServer2008(Katmi)在過去的SQL2005基礎上增強了它的安全性,主要在:簡單的數據加密,外鍵管理,增強了審查,改進了數據庫鏡像,加強了可支援性。\\n\\nDDL\\n\\n數據庫模式定義語言DDL(DataDefinitionLanguage)用於定義和管理對象,例如數據庫、數據表以及視圖。DDL語句通常包括每個對象的CREATE、ALTER以及DROP命令。舉例來說,CREATETABLE、ALTERTABLE以及DROPTABLE這些語句便可以用來建立新數據表、修改其屬性(如新增或刪除資料行)、刪除數據表等,下麵我們會一一介紹。\\n\\nCREATETABLE語句\\n\\n使用DDL在MyDB資料庫建立一個名為Customer_Data的範例數據表(注:以下語句都必須在SqlServer數據庫中執行),本章後麵的例子我們會使用到這個數據表。如前所述,CREATETABLE語句可以用來建立數據表。這個範例數據表被定義成四個數據行,如下所示:\\n\\nUseMyDB\\n\\nCREATETABLECustomer_Data\\n\\n(customer_idsmallint,\\n\\nfirst_namechar(20),\\n\\nlast_namechar(20),\\n\\nphonechar(10))\\n\\nGO\\n\\n這個語句能產生Customer_Data數據表,這個數據表會一直是空的直到數據被填入數據表內。\\n\\nALTERTABLE語句\\n\\nALTERTABLE語句用來修改數據表的定義與屬性。在下麵的例子中,我們利用ALTERTABLE在已經存在的Customer_Data數據表中新增middle_initial數據行。\\n\\nALTERTABLECustomer_Data\\n\\nADDmiddle_initialchar(1)\\n\\nGO\\n\\nDROPTABLE語句\\n\\nDROPTABLE語句用來刪除數據表定義以及所有的數據、索引、觸發程式、條件約束以及數據表的權限。要刪除我們的Customer_Data數據表,可利用下列命令:\\n\\nDROPTABLECustomer_Data\\n\\nGO\\n\\nDML\\n\\nDML(DataManipulationLanguage)數據操縱語言 DML利用INSERT、SELECT、UPDATE及DELETE等語句來操作數據庫對象所包含的數據。\\n\\nINSERT語句 INSERT語句用來在數據表或視圖中插入一行數據。例如,如果要在Customer_Data數據表中新增一個客戶,可使用類似以下的INSERT語句:\\n\\nINSERTINTOCustomer_Data\\n\\n(customer_id,first_name,last_name,phone)\\n\\nVALUES(777,'Frankie','Stein','4895873900')\\n\\n請注意SQL語句中第二行的數據列名稱列表,列表上數據行名稱的次序決定了數據數值將被放在哪個數據列。舉例來說,第一個數據數值將被放在列表列出的第一個數據列customer_id、第二個數據數值放在第二個數據列,依此類推。由於我們在建立數據表時,定義數據行填入數值的次序與現在相同,因此我們不必特意指定列名稱。我們可以用以下的INSERT語句代替:\\n\\nINSERTINTOCustomer_Data\\n\\nVALUES(777,'Frankie','Stein','4895873900')\\n\\n注意\\n\\n如果使用這種形式的INSERT語句,但被插入的數值次序上與建立數據表不同時,數值將被放入錯誤的數據列。如果數據的類型與定義不符,則會收到一個錯誤訊息。\\n\\nUPDATE語句\\n\\nUPDATE語句用來更新或修改一行或多行中的值。例如,一位名稱為FrankieStein的客戶想要在記錄中改變他的姓氏為Franklin,可使用以下UPDATE陳述式:\\n\\nUPDATECustomer_Data\\n\\nSETfirst_name=‘Franklin’\\n\\nWHERElast_name=‘Stein’andcustomer_id=777\\n\\n我們在WHERE子句中加入customer_id的項目來確定其他名稱不為Stein的客戶不會被影響----隻有customer_id為777的客戶,姓氏會有所改變。\\n\\n--------------------------------------------------------------------------------\\n\\n說明\\n\\n當您使用UPDATE語句時,要確定在WHERE子句提供充分的篩選條件,如此纔不會不經意地改變了一些不該改變的數據。\\n\\n--------------------------------------------------------------------------------\\n\\nDELETE語句\\n\\nDELETE語句用來刪除數據表中一行或多行的數據,您也可以刪除資料表中的所有數據行。要從Customer_Data數據表中刪除所有的行,您可以利用下列語句:\\n\\nDELETEFROMCustomer_Data\\n\\n或\\n\\nDELETECustomer_Data\\n\\n數據表名稱前的FROM關鍵字在DELETE語句中是選擇性的。除此之外,這兩個語句完全相同。\\n\\n要從Customer_Data數據表中刪除customer_id數據行的值小於100的行,可利用下語句:\\n\\nDELETEFROMCustomer_Data\\n\\nWHEREcustomer_id10000\\n\\n)ASt\\n\\nWHEREaau_id=taau_id\\n\\nANDta.title_id=t.title_id\\n\\n此例中,將SELECT返回的結果集合給予一彆名t,然後再從中檢索數據。\\n\\n(三)使用WHERE子句設置查詢條件\\n\\nWHERE子句設置查詢條件,過濾掉不需要的數據行。例如下麵語句查詢年齡大於20的數據:\\n\\nSELECT*\\n\\nFROMusertable\\n\\nWHEREage>20\\n\\nWHERE子句可包括各種條件運算符:\\n\\n比較運算符(大小比較):>、>=、=、=、