版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
DatabaseTechnology&Applications數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用SQL概述SQL的功能SQL功能動(dòng)詞數(shù)據(jù)定義CREATEDROPALTER數(shù)據(jù)更新INSERTUPDATEDELETE數(shù)據(jù)查詢SELECT
數(shù)據(jù)控制GRANTREVOKE
SQL(StructuredQueryLanguage)是1974年由IBM公司的RayBoyce和DonChamberlin依據(jù)Codd關(guān)系數(shù)據(jù)庫(kù)的12條準(zhǔn)則的數(shù)學(xué)定義提出來(lái)的。SQL的特點(diǎn)一體化非過(guò)程化面向集合一種語(yǔ)法兩種使用方式簡(jiǎn)潔易學(xué)關(guān)系數(shù)據(jù)庫(kù)的實(shí)現(xiàn)(以openGauss為例)連接數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建表結(jié)構(gòu)建立表間關(guān)系向表中輸入數(shù)據(jù)連接openGauss數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建表結(jié)構(gòu)openGauss常用的數(shù)據(jù)類型及其使用方法數(shù)據(jù)類型使用說(shuō)明大小數(shù)值可用來(lái)進(jìn)行算術(shù)計(jì)算的數(shù)字?jǐn)?shù)據(jù)。設(shè)置“字段大小”屬性定義一個(gè)特定的數(shù)字類型。其中NUMERIC、DECIMAL是任意精度類型。1、2、4或8個(gè)字節(jié),與“字段大小”屬性定義有關(guān)。例如NUMERIC[(p[,s])],DECIMAL[(p[,s])],p為總位數(shù),s為小數(shù)位數(shù)日期/時(shí)間用于存儲(chǔ)日期和時(shí)間值4、8、12、16個(gè)字節(jié)字符字符串類型指CHAR、CHARACTER、NCHAR、VARCHAR、CHARACTERVARYING、VARCHAR2、NVARCHAR2、CLOB和TEXT。10MB~1GB-8203字節(jié)布爾即true或false1字節(jié)“學(xué)生”表結(jié)構(gòu)“課程”表結(jié)構(gòu)“選修”表結(jié)構(gòu)建立表間關(guān)系建立表間關(guān)系向表中輸入數(shù)據(jù)——手動(dòng)輸入數(shù)據(jù)向表中輸入數(shù)據(jù)——從Excel表批量導(dǎo)入數(shù)據(jù)向表中輸入數(shù)據(jù)——從Excel表批量導(dǎo)入數(shù)據(jù)向表中輸入數(shù)據(jù)——從Excel表批量導(dǎo)入數(shù)據(jù)數(shù)據(jù)定義SQL的數(shù)據(jù)對(duì)象創(chuàng)建數(shù)據(jù)對(duì)象定義撤消更改數(shù)據(jù)庫(kù)CREATEDATABASEDROPDATABASEALTERDATABASE基本表CREATETABLEDROPTABLEALTERTABLE視圖CREATEVIEWDROPVIEW
索引CREATEINDEXDROPINDEX
結(jié)構(gòu)定義CREATECREATEDATABASE<數(shù)據(jù)庫(kù)模式名>CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[列級(jí)完整性約束條件][,<列名><數(shù)據(jù)類型>[列級(jí)完整性約束條件]]……[,<表級(jí)完整性約束條件>])其中[]內(nèi)的內(nèi)容是可選項(xiàng)。結(jié)構(gòu)定義CREATE【例7.1】在Navicat中用SQL語(yǔ)句來(lái)實(shí)現(xiàn)7.1.2節(jié)中通過(guò)圖形化界面創(chuàng)建的數(shù)據(jù)庫(kù)和表。
用CREATEDATABASE命令創(chuàng)建“選課管理數(shù)據(jù)庫(kù)”(EMS):結(jié)構(gòu)定義CREATE【例7.1】在Navicat中用SQL語(yǔ)句來(lái)實(shí)現(xiàn)7.1.2節(jié)中通過(guò)圖形化界面創(chuàng)建的數(shù)據(jù)庫(kù)和表。CREATETABLEpublic.課程(
課程號(hào)varchar(35)NOTNULL,
課程名varchar(20)NOTNULL,
學(xué)時(shí)int2NOTNULL,
學(xué)分float4NOTNULL,CONSTRAINTCourse_pkeyPRIMARYKEY(課程號(hào)));結(jié)構(gòu)定義CREATE【例7.1】在Navicat中用SQL語(yǔ)句來(lái)實(shí)現(xiàn)7.1.2節(jié)中通過(guò)圖形化界面創(chuàng)建的數(shù)據(jù)庫(kù)和表。CREATETABLEpublic.學(xué)生(
身份證號(hào)varchar(18)NOTNULL,
學(xué)號(hào)varchar(12)NOTNULL,
姓名varchar(10)NOTNULL,
性別varchar(1)NOTNULLDEFAULT'男'::charactervarying,
班級(jí)varchar(20),
生日dateNOTNULL,CONSTRAINT"學(xué)生_pkey"PRIMARYKEY(學(xué)號(hào)),CONSTRAINT"學(xué)生_性別_check"CHECK(性別='男’or性別='女'));結(jié)構(gòu)定義CREATE【例7.1】在Navicat中用SQL語(yǔ)句來(lái)實(shí)現(xiàn)7.1.2節(jié)中通過(guò)圖形化界面創(chuàng)建的數(shù)據(jù)庫(kù)和表。CREATETABLEpublic.選修(
課程號(hào)varchar(35)NOTNULL,
學(xué)號(hào)varchar(12)NOTNULL,
成績(jī)int4,CONSTRAINT選修_pkeyPRIMARYKEY(課程號(hào),學(xué)號(hào)),CONSTRAINTFK_學(xué)號(hào)FOREIGNKEY(學(xué)號(hào))REFERENCESpublic.學(xué)生(學(xué)號(hào))ONDELETENOACTIONONUPDATENOACTION,CONSTRAINTFK_課程號(hào)FOREIGNKEY(課程號(hào))REFERENCESpublic.課程(課程號(hào))ONDELETENOACTIONONUPDATENOACTION);結(jié)構(gòu)更新ALTER增加屬性列ALTERTABLE<基本表名>ADD<新列名><數(shù)據(jù)類型>[完整性約束條件]-<表名>是要更新的基本表名稱-ADD子句用于增加新列和新的完整性約束條件【例7.2】在“學(xué)生”表中添加一個(gè)新的地址屬性ADDRESS。ALTERTABLE學(xué)生ADDADDRESSVARCHAR(30);結(jié)構(gòu)更新ALTER刪除屬性列ALTERTABLE<基本表名>DROP<屬性列名>[CASCADE|RESTRAIN]-CASCADE表示在基本表刪除某屬性列時(shí),所有引用到該屬性列的視圖和約束也要一起自動(dòng)刪除-RESTRAIN表示在沒(méi)有視圖或約束引用該屬性列時(shí),才可以在基本表中刪除該列,否則就拒絕刪除操作【例7.3】在“學(xué)生”表中刪除屬性列ADDRESS。ALTERTABLE學(xué)生DROPADDRESSCASCADE;結(jié)構(gòu)更新ALTER修改屬性列ALTERTABLE<基本表名>MODIFY<屬性列名><類型>【例7.4】在“學(xué)生”表中將學(xué)號(hào)的長(zhǎng)度修改為“12”。ALTERTABLE學(xué)生MODIFY學(xué)號(hào)CHAR(12);結(jié)構(gòu)更新ALTER補(bǔ)充定義主鍵ALTERTABLE<表名>ADDPRIMARYKEY(<列名表>)需要指出,被定義為主鍵的屬性列應(yīng)當(dāng)是非空和滿足唯一性要求的。結(jié)構(gòu)更新ALTER刪除主鍵ALTERTABLE<表名>DROPPRIMARYKEY(<列名表>)或者ALTERTABLE<表名>DROPCONSTRAINT<主鍵約束名>【例7.5】刪除“學(xué)生”表中主鍵“學(xué)號(hào)”的SQL語(yǔ)句如下。ALTERTABLE學(xué)生DROPCONSTRAINT學(xué)生_pkeyCASCADE;結(jié)構(gòu)更新ALTER【例7.6】在“學(xué)生”表中添加主鍵“學(xué)號(hào)”以及在“選修”表中添加外鍵的SQL語(yǔ)句如下。ALTERTABLE學(xué)生ADDPRIMARYKEY(學(xué)號(hào));ALTERTABLE選修ADDCONSTRAINTFK_學(xué)號(hào)FOREIGNKEY(學(xué)號(hào))REFERENCESpublic.學(xué)生(學(xué)號(hào))ONDELETENOACTIONONUPDATENOACTION;結(jié)構(gòu)撤銷DROP【例7.7】撤銷“學(xué)生”表,但要求只有在沒(méi)有視圖或約束引用“學(xué)生”表的屬性列時(shí)才能撤銷,否則拒絕撤銷。DROPTABLE學(xué)生RESTRICT;DROPDATABASE<數(shù)據(jù)庫(kù)名>DROPTABLE<基本表名>[CASCADE|RESTRICT]-RESTRICT表示沒(méi)有視圖或約束引用“學(xué)生”表的屬性列時(shí)才能撤銷,否則拒絕撤銷,意味著要先刪除視圖或相關(guān)約束,再來(lái)刪除該表。-CASCADE表示刪除表的時(shí)候會(huì)把相關(guān)的視圖等一并刪除。數(shù)據(jù)查詢SELECT基本語(yǔ)法SELECT[ALL|DISTINCT]<屬性名>[,<屬性名>]…FROM<基本表名或視圖名>[,<基本表名或視圖名>]…[WHERE<邏輯條件式>][GROUPBY<屬性名1>[HAVING<邏輯表達(dá)式>]][ORDERBY<屬性名2>[ASC|DESC]]單表查詢【例7.8】在“選課管理數(shù)據(jù)庫(kù)”中查詢“課程”表的全部記錄情況。SELECT*FROM課程;單表查詢【例7.9】在“學(xué)生”表中查詢學(xué)生的學(xué)號(hào)、姓名和性別。SELECT學(xué)號(hào),姓名,性別FROM學(xué)生;單表查詢【例7.10】(查詢指定屬性列)查詢所有選修了課程的學(xué)生的學(xué)號(hào)。SELECT學(xué)號(hào)FROM選修;說(shuō)明:該查詢的結(jié)果中會(huì)有重復(fù)的學(xué)號(hào)。SELECT后加DISTINCT即可去掉重復(fù)學(xué)號(hào):SELECTDISTINCT學(xué)號(hào)FROM選修;單表查詢【例7.11】查詢?nèi)w學(xué)生的分?jǐn)?shù)都增加10分后的“選修”表。SELECT學(xué)號(hào),成績(jī)+10FROM選修;具條件的屬性列查詢運(yùn)算符含義集合成員運(yùn)算IN,NOTIN在集合中,不在集合中字符匹配運(yùn)算LIKE與-和%進(jìn)行單個(gè)、多個(gè)字符匹配空值運(yùn)算ISNULL,ISNOTNULL為空,不能為空比較運(yùn)算>,>=,<,,=<,=,<>大于,大于等于,小于,小于等于,等于,不等于邏輯運(yùn)算AND,OR,NOT與,或,非,具條件的屬性列查詢【例7.12】在“選修”表中查找不及格的學(xué)生的學(xué)號(hào)。SELECT學(xué)號(hào)FROM選修WHERE成績(jī)<60;具條件的屬性列查詢【例7.13】在“選修”表中查找課程號(hào)為“1026”的不及格的學(xué)生學(xué)號(hào)。SELECT學(xué)號(hào)FROM選修WHERE成績(jī)<60AND課程號(hào)='1026';具條件的屬性列查詢【例7.14】在“選修”表中查找成績(jī)?cè)赱60,80]這個(gè)區(qū)間內(nèi)的記錄。SELECT*FROM選修WHERE成績(jī)BETWEEN60AND80;具條件的屬性列查詢【例7.15】在“選修”表中查找成績(jī)?yōu)閧60,70,80}的學(xué)生。SELECT*FROM選修WHERE成績(jī)IN(60,70,80);查詢通配符通配符含
義%包含0個(gè)或多個(gè)字符_包含1個(gè)字符[]指定范圍,如[a-d]代表a、b、c和d[^]不屬于指定的范圍,如[^a-d]代表排除了a、b、c和d以外的其他字符查詢通配符【例7.16】顯示“學(xué)生”表中姓“馬”的同學(xué)的基本信息。SELECT*FROM學(xué)生WHERE姓名LIKE'馬%';查詢通配符【例7.17】若要查找的馬姓同學(xué)的姓名只有兩個(gè)字。SELECT*FROM學(xué)生WHERE姓名LIKE'馬_';空值查詢【例7.18】將“選修”表中有成績(jī)的記錄顯示出來(lái)。SELECT*FROM選修WHERE成績(jī)ISNOTNULL;排序查詢【例7.19】在“學(xué)生”表中查詢學(xué)生的基本情況(包括學(xué)生的學(xué)號(hào)、姓名和性別),結(jié)果按照學(xué)號(hào)的降序排列。SELECT學(xué)號(hào),姓名,性別FROM學(xué)生ORDERBY學(xué)號(hào)DESC;若將DESC改成ASC或者不寫(xiě),則查詢結(jié)果會(huì)根據(jù)ORDERBY后面的字段升序排列。排序查詢【例7.20】在“學(xué)生”表中查詢學(xué)生的基本情況,并按性別的升序顯示結(jié)果;對(duì)于性別相同的記錄,再按學(xué)號(hào)的降序進(jìn)行排列。SELECT*FROM學(xué)生ORDERBY性別ASC,學(xué)號(hào)DESC;排序查詢【例7.21】在“選修”表中查找課程號(hào)為“1026”的成績(jī)最高的前三名學(xué)生的學(xué)號(hào)。SELECT學(xué)號(hào)FROM選修WHERE課程號(hào)='1026'ORDERBY成績(jī)DESCLIMIT3;連接查詢內(nèi)連接(INNERJOIN)外連接(OUTERJOIN)連接(LEFTJOIN)右連接(RIGHTJOIN)全連接(FULLJOIN)內(nèi)連接基本語(yǔ)法SELECT<屬性或表達(dá)式列表>FROM<表名>[INNER]JOIN<表名>ON<連接條件>/USING<字段1>[WHERE<限定條件>]只有滿足給出的連接條件時(shí),相應(yīng)結(jié)果才會(huì)出現(xiàn)在結(jié)果關(guān)系表中。內(nèi)連接【例7.22】查詢選修了課程號(hào)為“1025”課程的所有學(xué)生學(xué)號(hào)與姓名。SELECT學(xué)生.學(xué)號(hào),姓名FROM學(xué)生JOIN選修ON學(xué)生.學(xué)號(hào)=選修.學(xué)號(hào)WHERE課程號(hào)=’1025’;SELECT學(xué)生.學(xué)號(hào),姓名FROM學(xué)生JOIN選修USING(學(xué)號(hào))WHERE課程號(hào)='1025';SELECT學(xué)生.學(xué)號(hào),姓名FROM學(xué)生,選修WHERE學(xué)生.學(xué)號(hào)=選修.學(xué)號(hào)AND課程號(hào)='1025';內(nèi)連接【例7.23】查詢修讀課程名為“數(shù)據(jù)庫(kù)”的所有學(xué)生的姓名。SELECT姓名FROM學(xué)生JOIN選修ON學(xué)生.學(xué)號(hào)=選修.學(xué)號(hào)JOIN課程O(píng)N選修.課程號(hào)=課程.課程號(hào)WHERE課程名='數(shù)據(jù)庫(kù)';內(nèi)連接【例7.24】查詢至少修讀了學(xué)生學(xué)號(hào)為“202101231234”所修讀的一門(mén)課的學(xué)生學(xué)號(hào)。SELECT選修1.學(xué)號(hào)FROM選修選修1,選修選修2WHERE選修1.課程號(hào)=選修2.課程號(hào)AND選修2.學(xué)號(hào)=‘202101231234’;外連接【例7.25】查詢所有學(xué)生的基本信息和選課情況。SELECT學(xué)號(hào),姓名,生日,班級(jí),身份證號(hào),課程號(hào),成績(jī)FROM學(xué)生JOIN選修ON學(xué)生.學(xué)號(hào)=選修.學(xué)號(hào);學(xué)生李敏沒(méi)有選修任何課程,由于在“選修”表沒(méi)有李敏的相應(yīng)元組,所以查詢結(jié)果中不會(huì)出現(xiàn)她的學(xué)號(hào)。外連接基本語(yǔ)法SELECT<屬性或表達(dá)式列表>FROM<表名>LEFT|RIGHT|FULL[OUTER]JOIN<表名>ON<連接條件>/USING<字段1>[WHERE<限定條件>]外連接【例7.26】查詢所有學(xué)生的基本信息和選課情況。SELECT學(xué)生.學(xué)號(hào),姓名,班級(jí),身份證號(hào),課程號(hào),成績(jī)FROM學(xué)生LEFTJOIN選修ON學(xué)生.學(xué)號(hào)=選修.學(xué)號(hào);外連接【例7.27】查詢所有課程的基本信息和被選修的情況,包括沒(méi)有人選修的也要列出。SELECT課程.課程號(hào),課程名,學(xué)時(shí),學(xué)分,成績(jī)FROM選修RIGHTJOIN課程O(píng)N學(xué)生.學(xué)號(hào)=選修.學(xué)號(hào);嵌套查詢作為WHERE子句中的邏輯表達(dá)式,嵌套子查詢有三種形式:字段[NOT]IN子查詢字段θSOME/ANY/ALL子查詢[NOT]EXISTS(子查詢)嵌套查詢【例7.28】查詢修讀課程號(hào)為“1025”的所有學(xué)生的姓名。SELECT姓名FROM學(xué)生WHERE學(xué)號(hào)IN (SELECT學(xué)號(hào) FROM選修 WHERE課程號(hào)=‘1025’);嵌套查詢【例7.29】查詢沒(méi)有修讀課程號(hào)為“1025”的所有學(xué)生的姓名。SELECT姓名FROM學(xué)生WHERE學(xué)號(hào)NOTIN (SELECT學(xué)號(hào) FROM選修 WHERE課程號(hào)=‘1025’);嵌套查詢【例7.30】查詢修讀課程名為“數(shù)據(jù)庫(kù)”的所有學(xué)生的姓名。SELECT姓名FROM學(xué)生 WHERE學(xué)號(hào)IN(SELECT學(xué)號(hào)FROM選修
WHERE課程號(hào)IN (SELECT課程號(hào)FROM課程 WHERE課程名=‘?dāng)?shù)據(jù)庫(kù)’));嵌套查詢【例7.31】查詢修讀課程號(hào)為“1025”的所有學(xué)生的姓名。SELECT姓名FROM學(xué)生WHERE學(xué)號(hào)=SOME (SELECT學(xué)號(hào) FROM選修 WHERE課程號(hào)=‘1025’);嵌套查詢【例7.32】查詢沒(méi)有修讀課程號(hào)為“1025”的所有學(xué)生的姓名。SELECT姓名FROM學(xué)生WHERE學(xué)號(hào)<>ALL (SELECT學(xué)號(hào) FROM選修 WHERE課程號(hào)=‘1025’);嵌套查詢【例7.33】查詢課程號(hào)為“1025”的最高分的學(xué)生姓名。SELECT姓名FROM學(xué)生INNERJOIN選修USING(學(xué)號(hào))WHERE課程號(hào)=‘1025’AND成績(jī)>=ALL (SELECT成績(jī)
FROM選修
WHERE課程號(hào)=‘1025’AND成績(jī)ISNOTNULL);嵌套查詢【例7.34】查詢學(xué)生“賀易”本期選修課程號(hào)“1025”的成績(jī)。SELECT成績(jī)FROM選修WHERE課程號(hào)=‘1025’AND學(xué)號(hào)=(SELECT學(xué)號(hào) FROM學(xué)生 WHERE姓名=‘賀易’);嵌套查詢【例7.35】查詢修讀課程號(hào)為“1025”的所有學(xué)生的姓名。SELECT姓名FROM學(xué)生WHEREEXISTS (SELECT* FROM選修 WHERE課程號(hào)=’1025’AND學(xué)生.學(xué)號(hào)=選修.學(xué)號(hào));嵌套查詢【例7.36】查詢沒(méi)有修讀課程號(hào)為“1025”的所有學(xué)生的姓名。SELECT姓名FROM學(xué)生WHERENOTEXISTS (SELECT* FROM選修 WHERE課程號(hào)=‘1025’AND學(xué)生.學(xué)號(hào)=選修.學(xué)號(hào));嵌套查詢【例7.37】查詢課程號(hào)為“1025”的最高分的學(xué)生姓名。SELECT姓名FROM學(xué)生INNERJOIN選修選修1ON學(xué)生.學(xué)號(hào)=選修1.學(xué)號(hào)WHERE課程號(hào)=‘1025’ANDNOTEXISTS
(SELECT* FROM選修選修2WHERE課程號(hào)=‘1025’AND選修1.成績(jī)<選修2.成績(jī));嵌套查詢【例7.38】查詢學(xué)生“賀易”選修課程號(hào)“1025”的成績(jī)。SELECT成績(jī)FROM選修WHERE課程號(hào)=‘1025’ANDEXISTS
(SELECT* FROM學(xué)生 WHERE姓名=‘賀易’AND選修.學(xué)號(hào)=學(xué)生.學(xué)號(hào));聚合函數(shù)COUNT函數(shù)ICOUNT([DISTINCT|ALL]*)統(tǒng)計(jì)關(guān)系中元組個(gè)數(shù)。COUNT函數(shù)IICOUNT([DISTINCT|ALL]<列名>)統(tǒng)計(jì)關(guān)系中給定列中屬性值個(gè)數(shù)。SUM函數(shù)SUM([DISTINCT|ALL]<列名>)計(jì)算關(guān)系中數(shù)值型屬性值總和。AVG函數(shù)AVG([DISTINCT|ALL]<列名>)計(jì)算關(guān)系中數(shù)值型屬性值平均值。MAX函數(shù)MAX([DISTINCT|ALL]<列名>)計(jì)算關(guān)系中給定屬性列中數(shù)值型屬性值的最大者。MIN函數(shù)MIN([DISTINCT|ALL]<列名>)計(jì)算關(guān)系中給定屬性列中數(shù)值型屬性值的最小者。聚合函數(shù)【例7.39】查詢?nèi)w學(xué)生人數(shù)。SELECTCOUNT(*)FROM學(xué)生;聚合函數(shù)【例7.40】查詢學(xué)生張怡修讀的課程數(shù)。SELECTCOUNT(*)FROM學(xué)生INNERJOIN選修USING(學(xué)號(hào))WHERE姓名=’張怡’;聚合函數(shù)【例7.41】查詢學(xué)號(hào)為“202101231234”的學(xué)生所修讀課程的平均成績(jī)。SELECTAVG(成績(jī))FROM選修WHERE學(xué)號(hào)=‘202101231234’;聚合函數(shù)【例7.42】查詢可供學(xué)生選修的課程門(mén)數(shù)。SELECTCOUNT(*)FROM課程;聚合函數(shù)【例7.43】查詢已有學(xué)生選修的課程門(mén)數(shù)。SELECTCOUNT(DISTINCT課程號(hào))FROM選修;分組基本語(yǔ)法SELECT[ALL|DISTINCT]<屬性名>[,<屬性名>]…FROM<基本表名或視圖名>[,<基本表名或視圖名>]…[WHERE<邏輯條件式>][GROUPBY<屬性名1>[HAVING<邏輯表達(dá)式>]][ORDERBY<屬性名2>[ASC|DESC]]分組【例7.44】給出每門(mén)課程的平均成績(jī)。SELECT課程號(hào),AVG(成績(jī))FROM選修GROUPBY課程號(hào);分組【例7.45】給出每個(gè)學(xué)生修讀課程的門(mén)數(shù):SELECT學(xué)號(hào),COUNT(課程號(hào))FROM選修GROUPBY學(xué)號(hào);分組【例7.46】例7.33選修課程號(hào)為“1025”的最高分的學(xué)生姓名的查詢也可以寫(xiě)為:SELECT姓名FROM學(xué)生INNERJOIN選修ON學(xué)生.學(xué)號(hào)=選修.學(xué)號(hào)WHERE課程號(hào)=‘1025’AND成績(jī)=SOME
(SELECTMAX(成績(jī)) FROM選修
WHERE課程號(hào)=‘1025’);分組【例7.47】給出有10個(gè)或10個(gè)以上學(xué)生所修讀課程的課程號(hào)和學(xué)生數(shù)。SELECT課程號(hào),COUNT(學(xué)號(hào))FROM選修GROUPBY課程號(hào)HAVINGCOUNT(*)>=10;數(shù)據(jù)更新數(shù)據(jù)更新功能刪除插入修改基本語(yǔ)句DELETEFROM<表名>[WHERE<條件>]INSERTINTO<表名>[屬性列]…VALUES(屬性值1,屬性值2,…)或子查詢UPDATE<表名>SET屬性名=屬性值,…[WHERE<條件>]基本語(yǔ)義刪除元組插入元組修改屬性值數(shù)據(jù)刪除基本語(yǔ)法DELETEFROM<基本表名>WHERE<條件>刪除多個(gè)元組的值【例7.48】刪除學(xué)生“劉玉”的記錄。DELETEFROM學(xué)生WHERE姓名=‘劉玉’;帶子查詢刪除語(yǔ)句【例7.49】刪除21醫(yī)學(xué)院全體學(xué)生的選課記錄。DELETEFROM選修WHERE‘21醫(yī)學(xué)院’=(SELECT班級(jí)
FROM學(xué)生 WHERE學(xué)生.學(xué)號(hào)=選修.學(xué)號(hào));數(shù)據(jù)插入基本語(yǔ)法INSERTINTO<表名>(字段列表)VALUES(值列表)或INSERTINTO<表名>(字段列表)子查詢數(shù)據(jù)插入【例7.50】往“課程”表添加入一條課程號(hào)為“1032”,課程名為“大學(xué)物理”,學(xué)時(shí)為64,學(xué)分為3的記錄。INSERTINTO課程(課程號(hào),課程名,學(xué)時(shí),學(xué)分)VALUES('1032','大學(xué)物理',64,3);或INSERTINTO課程VALUES('1032','大學(xué)物理',64,3);數(shù)據(jù)插入【例7.51】將一個(gè)學(xué)生新記錄(身份證號(hào)學(xué)號(hào)202101231255,姓名:陳靜,性別:女,生日:2001-12-29)插入到“學(xué)生”表中。INSERTINTO學(xué)生(身份證號(hào),學(xué)號(hào),姓名,性別,生日)VALUES(,'202101231255','陳靜','女','2001-12-29');數(shù)據(jù)插入【例7.52】創(chuàng)建一張新表“學(xué)生平均分”,有兩個(gè)字段(學(xué)號(hào),成績(jī)),將每個(gè)學(xué)生選修的平均分放至該表中。CREATETABLE學(xué)生平均分(學(xué)號(hào)varchar(12)NOTNULL,成績(jī)int4);INSERTINTO學(xué)生平均分SELECT學(xué)號(hào),AVG(成績(jī))FROM選修GROUPBY學(xué)號(hào);數(shù)據(jù)修改基本語(yǔ)法UPDATE<基本表名>SET<列名>=表達(dá)式[,<列名>=表達(dá)式]…WHERE<邏輯條件>數(shù)據(jù)修改
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個(gè)人門(mén)面房屋租賃合同標(biāo)準(zhǔn)樣本(2篇)
- 2025年鄉(xiāng)村農(nóng)副產(chǎn)品采購(gòu)合同協(xié)議模板(2篇)
- 2025年交易會(huì)攤位制作協(xié)議樣本(2篇)
- 2025年個(gè)人挖掘機(jī)買(mǎi)賣(mài)合同(2篇)
- 2025年個(gè)人機(jī)械租賃合同協(xié)議(4篇)
- 2025年事業(yè)單位臨時(shí)工合同樣本(2篇)
- 寫(xiě)字樓裝修解除合同協(xié)議書(shū)
- 2025年度安全設(shè)施完善租賃住宅合同示例
- 旗艦店品牌形象裝修合同
- 寵物店裝修承攬協(xié)議
- 針灸治療動(dòng)眼神經(jīng)麻痹
- 傾聽(tīng)幼兒馬賽克方法培訓(xùn)
- 設(shè)備日常維護(hù)及保養(yǎng)培訓(xùn)
- 設(shè)計(jì)院個(gè)人年終總結(jié)
- 鋼結(jié)構(gòu)實(shí)習(xí)報(bào)告
- 2024年建房四鄰協(xié)議范本
- FTTR-H 全光組網(wǎng)解決方案裝維理論考試復(fù)習(xí)試題
- 2024年安全生產(chǎn)月主題2024年學(xué)校安全生產(chǎn)月活動(dòng)方案
- 2024年廣東佛山市中醫(yī)院三水醫(yī)院招聘61人歷年高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 測(cè)繪保密協(xié)議書(shū)保密協(xié)議(2024版)
- 中級(jí)半導(dǎo)體分立器件和集成電路裝調(diào)工技能鑒定考試題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論