資源描述:
《第7章 SQL 語言基礎(chǔ)ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第7章SQL語言基礎(chǔ)7.1基本概念7.2SQL的數(shù)據(jù)類型7.3基本表的定義、刪除及修改7.4數(shù)據(jù)查詢功能7.5數(shù)據(jù)更改功能7.6建立與刪除索引7.7建立與刪除索引7.1基本概念7.1.1SQL語言的發(fā)展7.1.2SQL語言功能概述7.1.1SQL語言的發(fā)展SQL(StructuredQueryLanguage)語言是1974年提出的,由于它功能豐富,語言簡潔倍受用戶及計(jì)算機(jī)工業(yè)界歡迎,被眾多計(jì)算機(jī)公司和軟件公司所采用。經(jīng)各公司的不斷修改、擴(kuò)充和完善,SQL語言最終發(fā)展成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。1986年10月美國國家標(biāo)準(zhǔn)局(ANSI,AmericanN
2、ationalStandardInstitute)頒布了SQL語言的美國標(biāo)準(zhǔn),該標(biāo)準(zhǔn)也稱為SQL86。1987年6月SQL86被國際標(biāo)準(zhǔn)化組織(ISO,InternationalOrganizationforStandardization)采納為國際標(biāo)準(zhǔn)。1999年又發(fā)布了SQL—99,也即SQL3,它是在SQL2的基礎(chǔ)上擴(kuò)展了許多新的特性,如遞歸、觸發(fā)器以及對象等。7.1.2SQL語言功能概述SQL功能命令動(dòng)詞數(shù)據(jù)查詢SELECT數(shù)據(jù)定義CREATE、DROP、ALTER數(shù)據(jù)操縱INSERT、UPDATE、DELETE數(shù)據(jù)控制GRANT、REVOKE
3、四部分:數(shù)據(jù)定義功能、數(shù)據(jù)控制功能、數(shù)據(jù)查詢功能和數(shù)據(jù)操縱功能。7.2SQL的數(shù)據(jù)類型數(shù)值型字符串型日期時(shí)間型貨幣型數(shù)值型整數(shù)Bigint:8字節(jié),Int:4字節(jié)Smallint:2字節(jié),Tinyint:1字節(jié)Bit:1位,存儲1或0小數(shù)Numeric(p,q)其中:p為數(shù)字位長度,q:小數(shù)位長度。字符串類型Char(n):定長存儲,n<=8000Varchar(n):不定長存儲(按實(shí)際長度存儲),長度最大不超過n,n<=8000Text:存儲大于8000字節(jié)的文本日期時(shí)間型和貨幣型Datetime:8字節(jié),年月日時(shí)分秒毫秒(例:‘2001/08/03
4、10:30:00.000’)Money:8個(gè)字節(jié),精確到貨幣單位的千分之十。7.3基本表的定義、刪除及修改7.3.1基本表的定義與刪除7.3.2修改表結(jié)構(gòu)7.3.1基本表的定義與刪除1.定義基本表(CREATETABLE)格式:CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[列級完整性約束定義]{,<列名><數(shù)據(jù)類型>[列級完整性約束定義]…}[,表級完整性約束定義])2應(yīng)用舉例CREATETABLEStudent(Snochar(7),Snamechar(10),Ssexchar(2),Sagetinyint,Sdeptchar(20))在列級
5、完整性約束定義處可以定義的約束NOTNULL:限制列取值非空。DEFAULT:給定列的默認(rèn)值。UNIQUE:限制列取值不重。CHECK:限制列的取值范圍。PRIMARYKEY:指定本列為主碼。FOREIGNKEY:定義本列為引用其他表的外碼。約束定義①列取值非空約束<列名><類型>NOTNULL例:snamechar(10)NOTNULL約束定義(續(xù))②主碼約束A:在定義列時(shí)定義主碼(僅用于單列主碼)例:SNOchar(7)PRIMARYKEYB:在定義完列時(shí)定義主碼(用于單列或多列主碼)例:PRIMARYKEY(SNO)PRIMARYKEY(SNO,
6、CNO)約束定義(續(xù))④默認(rèn)值約束格式:DEFAULT默認(rèn)值例:定義系的默認(rèn)值為“計(jì)算機(jī)系”。Sdeptchar(20)DEFAULT‘計(jì)算機(jī)系’約束定義(續(xù))⑤CHECK約束格式:CHECK(約束表達(dá)式)例:年齡大于等于0。SagetinyintCHECK(grade>=0)約束定義(續(xù))⑥UNIQUE約束在列級約束定義(僅用于單列約束)列定義UNIQUE例:SNAMEchar(7)UNIQUE在表級約束定義(用于單列或多列組合約束)UNIQUE(<列名序列>)例:UNIQUE(SNO,CNO)創(chuàng)建學(xué)生表CREATETABLEStudent(Snoc
7、har(7)PRIMARYKEY,Snamechar(10)NOTNULL,Ssexchar(2)CHECK(Ssex='男'ORSsex='女'),SagetinyintCHECK(Sage>=15ANDSage<=75),Sdeptchar(20)DEFAULT'計(jì)算機(jī)系')創(chuàng)建課程表CREATETABLECourse(Cnochar(10)NOTNULL,Cnamechar(20)NOTNULL,CcredittinyintCHECK(Ccredit>0),SemestertinyintCHECK(Semester>0),PeriodintCHE
8、CK(Period>0),PRIMARYKEY(Cno))創(chuàng)建SC表CREATETABLESC