版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
金鑫
吳靖
主編
唐小毅
馬燕林
參編數(shù)據(jù)庫原理及應(yīng)用(Access2021版)4.3.1創(chuàng)建表
4.3.2刪除表
4.3.3修改表4.1數(shù)據(jù)查詢語言4.4習(xí)題4.2數(shù)據(jù)操縱語言4.3數(shù)據(jù)定義語言4.1.1簡(jiǎn)單查詢
4.1.2多表查詢
4.1.3排序
4.1.4子查詢
4.1.5分組查詢
4.1.6連接查詢
4.1.7聯(lián)合查詢4.2.1追加
4.2.2更新
4.2.3刪除
第4章
結(jié)構(gòu)化查詢語言SQL第4章
SQL(StructuredQueryLanguage)是DBMS提供的對(duì)數(shù)據(jù)庫進(jìn)行操作的語言,稱為結(jié)構(gòu)化查詢語言。SQL已經(jīng)成為關(guān)系數(shù)據(jù)庫語言的國(guó)際標(biāo)準(zhǔn)。1986年美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)公布了第一個(gè)SQL標(biāo)準(zhǔn)SQL-86,將SQL解釋為StructuredQueryLanguage。國(guó)際標(biāo)準(zhǔn)化組織通過了SQL并于1989年公布了經(jīng)過增補(bǔ)的SQL-89,1992年公布了SQL-92,即SQL2。SQL支持?jǐn)?shù)據(jù)操作,用于描述數(shù)據(jù)的動(dòng)態(tài)特性。SQL包括4個(gè)主要功能:數(shù)據(jù)定義語言(DataDefinitionLanguage)、數(shù)據(jù)查詢語言(DataQueryLanguage)、數(shù)據(jù)操縱語言(DataManipulationLanguage)、數(shù)據(jù)控制語言(DataControlLanguage)。本章所用數(shù)據(jù)庫為學(xué)生管理數(shù)據(jù)庫,如下圖所示。
圖
學(xué)生管理數(shù)據(jù)庫第4章
SQL的核心是從一個(gè)或多個(gè)表中返回指定記錄集合的SELECT語句。SELECT命令的基本形式為:SELECT…FROM…WHERE?!久罡袷健縎ELECT[predicate]{*|table.*|[table.]field1[ASalias1][,[table.]field2[ASalias2][,...]]}FROMtable_names[WHEREsearch_criteria][GROUPBYgroupfieldlist [HAVINGaggregate_criteria]][ORDERBYcolumn_criteria[ASC|DESC]]
4.1數(shù)據(jù)查詢語言第4章
值得強(qiáng)調(diào)的是,上述命令結(jié)構(gòu)中包含了SQL子句,每一個(gè)子句執(zhí)行一個(gè)SQL語句的功能,有些子句在SELECT語句中是必須出現(xiàn)的,如表4-1所示。SQL子句執(zhí)行的操作是否必需SELECT列出查詢的字段是FROM列出包含查詢字段或查詢條件字段的表是WHERE指出查詢條件否ORDERBY對(duì)結(jié)果排序,指出排序的依據(jù)否GROUPBY在包含聚合函數(shù)的SQL語句中,列出未在SELECT子句中匯總的字段僅在存在這類字段時(shí)才是必需的HAVING在包含聚合函數(shù)的SQL語句中,指定應(yīng)用于在SELECT語句中匯總的字段的條件否表4-1SQL命令子句第4章
4.1.1簡(jiǎn)單查詢
1.選擇字段使用SELECT命令,可以選擇表中的部分字段,建立一個(gè)新表。相當(dāng)于關(guān)系運(yùn)算中的投影運(yùn)算。SELECT語句的最短的語法是:SELECTfieldsFROMtable。第4章【例4-1】
查詢學(xué)生姓名、性別和所屬院系。SELECT姓名,性別,所屬院系FROMstudent;【例4-2】
查詢student中所有字段和記錄。SELECT*FROMstudent;
【例4-3】
查詢已經(jīng)選課的學(xué)生的學(xué)號(hào)。SELECTDISTINCT學(xué)號(hào)FROMgrade;
4.1.1簡(jiǎn)單查詢
第4章【例4-4】
查詢學(xué)生的姓名和年齡。SELECT姓名,year(now())-year(出生日期)AS年齡FROMstudent;【例4-5】
所有課程的學(xué)分?jǐn)?shù)增加50%,重新計(jì)算各門課程的學(xué)分?jǐn)?shù)并列出清單。SELECT課程名稱,INT(學(xué)分*(1+0.5))AS新學(xué)分FROMcourse;【例4-6】
查詢學(xué)生的姓名,所屬院系,出生日期和性別。SELECT姓名,所屬院系,出生日期,性別FROMstudent;
4.1.1簡(jiǎn)單查詢
2.選擇記錄在SELECT命令中設(shè)定查詢條件,查找滿足條件的記錄,這就是關(guān)系運(yùn)行中的選擇運(yùn)算。SELECT命令中用于完成選擇記錄(查詢條件)的命令子句是:[WHEREsearch_criteria]第4章【例4-7】
查詢會(huì)計(jì)學(xué)院學(xué)生的學(xué)號(hào)、姓名和所屬院系屬性。SELECT學(xué)號(hào),姓名,所屬院系FROMstudentWHERE所屬院系="會(huì)計(jì)學(xué)院";【例4-8】
查詢學(xué)分少于3(不含3學(xué)分)的課程名稱、課程性質(zhì)和學(xué)分。SELECT課程名稱,課程性質(zhì),學(xué)分FROMcourseWHERE學(xué)分<3;【例4-9】
查詢會(huì)計(jì)學(xué)院的非黨員學(xué)生。SELECT學(xué)號(hào),姓名,所屬院系,政治面貌FROMstudentWHERE所屬院系="會(huì)計(jì)學(xué)院"and政治面貌<>"黨員";
4.1.1簡(jiǎn)單查詢
第4章【例4-10】
查詢成績(jī)?cè)?0分以下(不包括60分)、90分以上(含90分)學(xué)生的學(xué)號(hào)和成績(jī)。SELECT學(xué)號(hào),成績(jī)FROMgradeWHERE成績(jī)<60or成績(jī)>=90;【例4-11】
查詢教師中所有黨員記錄。SELECT*FROMteacherWHERE是否黨員=true;【例4-12】
查詢所有信息學(xué)院和會(huì)計(jì)學(xué)院的學(xué)生信息。SELECT*FROMstudentWHERE所屬院系IN('信息學(xué)院','會(huì)計(jì)學(xué)院');【例4-12】
查詢所有信息學(xué)院和會(huì)計(jì)學(xué)院的學(xué)生信息。SELECT*FROMstudentWHERE所屬院系IN('信息學(xué)院','會(huì)計(jì)學(xué)院');【例4-13】
查詢所有選修了課程,但沒有參加考試(成績(jī)?yōu)椤翱铡保┑膶W(xué)生學(xué)號(hào)。SELECT學(xué)號(hào)FROMgradeWHERE成績(jī)ISNULL;4.1.2多表查詢【例
4-14】
查詢會(huì)計(jì)學(xué)院學(xué)生選修的課程及成績(jī),要求查詢結(jié)果中含學(xué)號(hào)、姓名、課程名稱和成績(jī)。SELECTstudent.學(xué)號(hào),姓名,課程名稱,成績(jī)FROMstudent,grade,course,scheduleWHEREstudent.學(xué)號(hào)=grade.學(xué)號(hào)ANDgrade.課程ID=schedule.課程IDANDcourse.課程編號(hào)=schedule.課程編號(hào)AND所屬院系='會(huì)計(jì)學(xué)院'AND成績(jī)ISNOTNULL;第4章關(guān)系不是孤立的,所以表也不是孤立的,表之間是有聯(lián)系的。多表查詢是指SELECT命令的查詢內(nèi)容或查詢條件同時(shí)涉及數(shù)據(jù)庫中相關(guān)的多個(gè)表。第4章4.1.2多表查詢【例4-15】
查詢有不及格成績(jī)的學(xué)生的學(xué)號(hào)和姓名。SELECTDISTINCTstudent.學(xué)號(hào),姓名FROMstudent,gradeWHEREstudent.學(xué)號(hào)=grade.學(xué)號(hào)
AND成績(jī)<60AND成績(jī)ISNOTNULL;注意:DISTINCT在這條命令中所起到的作用【例4-16】
查詢所有選修了的課程,但沒有參加考試的學(xué)生的所屬院系、姓名、課程名稱和成績(jī)。SELECT所屬院系,姓名,課程名稱,成績(jī)
FROMstudent,course,grade,schedule
WHEREstudent.學(xué)號(hào)=grade.學(xué)號(hào)
ANDgrade.課程ID=schedule.課程ID
ANDschedule.課程編號(hào)=course.課程編號(hào)
AND成績(jī)ISNULL;第4章4.1.2多表查詢【例4-17】
查詢成績(jī)?cè)?0分以上(含60分)、90分以下(含90分)學(xué)生的學(xué)號(hào)、姓名、課程名稱和成績(jī)。SELECTstudent.學(xué)號(hào),姓名,課程名稱,成績(jī)FROMstudent,course,grade,scheduleWHEREstudent.學(xué)號(hào)=grade.學(xué)號(hào)ANDgrade.課程ID=schedule.課程IDANDschedule.課程編號(hào)=course.課程編號(hào)AND成績(jī)BETWEEN60AND90;【例4-18】
查詢經(jīng)濟(jì)學(xué)院開設(shè)的學(xué)分為2~4(含2和4)的所有課程的課程名稱、學(xué)分和所屬院系。SELECTDISTINCT課程名稱,學(xué)分,所屬院系FROMteacher,course,scheduleWHEREteacher.教師編號(hào)=schedule.教師編號(hào)ANDschedule.課程編號(hào)=course.課程編號(hào)AND所屬院系="經(jīng)濟(jì)學(xué)院"AND學(xué)分BETWEEN2AND4;第4章4.1.2多表查詢【例4-19】查詢課程名中最后兩個(gè)字是“管理”的課程信息。SELECT*FROMcourseWHERE課程名稱LIKE'*管理';意
義樣
例返回True返回False字符范圍LIKE[a-z]F,p,j2,&范圍之外LIKE[!a-z]9,&,%b,a非數(shù)字LIKE[!0-9]A,a,&,~0,1,9組合字LIKEa[!b-m]#An9,az0,a99abc,aj0第4章4.1.2多表查詢【例4-21】
查詢成績(jī)?cè)?0分以下(不含60)、90分以上(不含90分)學(xué)生的學(xué)號(hào)和成績(jī)。SELECT學(xué)號(hào),成績(jī)FROMgradeWHERE成績(jī)NOTBETWEEN60AND90;可以用SELECT…INTO語句將查詢結(jié)果保存到一個(gè)新的表中,語句格式如下:SELECTfield1[,field2[,
…]]INTOnewtable
FROMsource_table;【例4-20】
查詢課程名稱中含有“理”字的所有課程信息。SELECT*FROMcourseWHERE課程名稱LIKE'*理*';如果對(duì)上述例子中所有邏輯表達(dá)式進(jìn)行非運(yùn)算,就可以獲得否定(不是、不等于、不包含)的查詢結(jié)果。
4.1.3排序
第4章【例4-22】
查詢所有會(huì)計(jì)學(xué)院學(xué)生的信息,查詢結(jié)果按學(xué)號(hào)排序。SELECT*FROMstudentWHERE所屬院系='會(huì)計(jì)學(xué)院'ORDERBY學(xué)號(hào);SELECT命令中用于對(duì)查詢結(jié)果排序的命令子句為:[ORDERBY<fieldname1>[ASC|DESC][,<fieldname2>[ASC|DESC]...]]【例4-23】
查詢所有學(xué)生的信息,查詢結(jié)果按所屬院系排序,同一院系按性別降序排序。SELECT*FROMstudentORDERBY所屬院系,性別DESC;比較下面的命令:SELECT*FROMstudentORDERBY7,3DESC;第4章
4.1.3排序
【例4-24】
查詢學(xué)生所屬院系、學(xué)號(hào)、姓名、課程名稱和成績(jī)等信息,且按所屬院系升序排序,同一院系按學(xué)號(hào)升序排序,同一學(xué)生按課程名稱升序排序,相同課程名稱按成績(jī)降序排列結(jié)果。SELECT所屬院系,student.學(xué)號(hào),姓名,課程名稱,成績(jī)FROMstudent,course,grade,scheduleWHEREstudent.學(xué)號(hào)=grade.學(xué)號(hào)ANDgrade.課程ID=schedule.課程IDANDschedule.課程編號(hào)=course.課程編號(hào)AND成績(jī)ISNOTNULLORDERBY所屬院系,student.學(xué)號(hào),課程名稱,成績(jī)DESC;第4章
4.1.3排序
【例4-26】
查詢成績(jī)從高到低排序后,前20%學(xué)生的課程和成績(jī)信息。SELECTTOP20PERCENT*FROMgrade,schedule,courseWHEREgrade.課程ID=schedule.課程IDANDschedule.課程編號(hào)=course.課程編號(hào)ANDNOT(ISNULL(成績(jī)))ORDERBY成績(jī)DESC;【例4-25】
查詢成績(jī)最低的3名學(xué)生的課程和成績(jī)信息。SELECTTOP3student.學(xué)號(hào),姓名,課程名稱,成績(jī)FROMstudent,course,grade,scheduleWHEREstudent.學(xué)號(hào)=grade.學(xué)號(hào)ANDgrade.課程ID=schedule.課程IDANDschedule.課程編號(hào)=course.課程編號(hào)ANDNOT(ISNULL(成績(jī)))ORDERBY成績(jī);4.1.4子查詢
第4章【命令格式】comparison[ANY|ALL|SOME](sqlstatement)expression[NOT]IN(sqlstatement)【命令說明】1)comparison:一個(gè)表達(dá)式及一個(gè)比較運(yùn)算符,將表達(dá)式與子查詢的結(jié)果進(jìn)行比較。2)expression:用以搜尋子查詢結(jié)果集的表達(dá)式。3)sqlstatement:SELECT語句,遵從與其他SELECT語句相同的格式及規(guī)則。它必須放在括號(hào)之中。
在SQL查詢語言中,一個(gè)SELECT…FROM…WHERE語句稱為一個(gè)查詢塊,把一個(gè)查詢塊嵌套在另一個(gè)查詢塊的WHERE子句或HAVING子句的條件中的查詢,就構(gòu)成子查詢。
子查詢的一般求解方法是由里向外處理,即每一個(gè)子查詢?cè)谏弦患?jí)查詢處理之前求解,子查詢的結(jié)果用于建立其父查詢的查詢條件。外層查詢依賴于內(nèi)層查詢的結(jié)果,內(nèi)層查詢與外層查詢無關(guān)。通常的情況,當(dāng)查詢的結(jié)果出自一個(gè)表,條件涉及多個(gè)表時(shí),使用子查詢。第4章4.1.4子查詢
【例4-29】
查詢有不及格成績(jī)的學(xué)生信息。SELECT*FROMstudentWHERE學(xué)號(hào)IN (SELECT學(xué)號(hào)FROMgradeWHERE成績(jī)<60);【例4-28】
查詢沒有選修課程的學(xué)生,查詢結(jié)果中包含學(xué)號(hào)、姓名和所屬院系。結(jié)果按學(xué)號(hào)降序排列。SELECT學(xué)號(hào),姓名,所屬院系FROMstudentWHERE學(xué)號(hào)NOTIN(SELECT學(xué)號(hào)FROMgrade)ORDERBY學(xué)號(hào)DESC;【例4-27】
查詢所有學(xué)生選修的課程,查詢結(jié)果包含課程名稱和學(xué)分。SELECT課程名稱,學(xué)分FROMcourseWHERE課程編號(hào)IN(SELECT課程編號(hào)FROMschedule,gradeWHEREschedule.課程ID=grade.課程ID);第4章4.1.4子查詢
【例4-33】
查詢選修了“西方經(jīng)濟(jì)學(xué)”課程的學(xué)生信息。SELECT*FROMstudentWHERE學(xué)號(hào)IN(SELECT學(xué)號(hào)FROMgrade,schedule,courseWHEREgrade.課程ID=schedule.課程IDANDschedule.課程編號(hào)=course.課程編號(hào)AND課程名稱='西方經(jīng)濟(jì)學(xué)')【例4-32】
查詢所有選修課程的成績(jī)都及格了的學(xué)生信息。SELECT*FROMstudentWHERE學(xué)號(hào)NOTIN(SELECT學(xué)號(hào)FROMgradeWHERE成績(jī)<60)AND學(xué)號(hào)IN(SELECT學(xué)號(hào)FROMgrade)【例4-31】
查詢與“楊楊”同年出生的學(xué)生信息。SELECT*FROMstudentWHEREYEAR(出生日期)=
(SELECTYEAR(出生日期)FROMstudentWHERE姓名='楊楊');【例4-30】
查詢與“楊楊”在同一個(gè)院系的學(xué)生信息。
SELEOCT*FROMstudentWHERE所屬院系= (SELECT所屬院系FROMstudentWHERE姓名='楊楊');4.1.5分組查詢
第4章利用SELECT命令還可以進(jìn)行分組查詢,分組查詢是一種分類統(tǒng)計(jì)。【命令格式】SELECT[ALL|DISTINCT|DISTINCTROW] Aggregate_function(field_name)ASalias_name [,select_list] FROMtable_names [WHEREsearch_criteria] GROUPBYgroupfieldlist [HAVINGaggregate_criteria] [ORDERBYcolumn_criteria[ASC|DESC]]第4章4.1.5分組查詢
【例4-34】
查詢各門課程的平均分。SELECT課程名稱,AVG(成績(jī))AS平均分
FROMgrade,schedule,course
WHEREgrade.課程ID=schedule.課程ID
ANDschedule.課程編號(hào)=course.課程編號(hào)
AND成績(jī)ISNOTNULL
GROUPBY課程名稱;【例4-33】
查詢選修了“西方經(jīng)濟(jì)學(xué)”課程的學(xué)生信息。SELECT*FROMstudentWHERE學(xué)號(hào)IN(SELECT學(xué)號(hào)FROMgrade,schedule,courseWHEREgrade.課程ID=schedule.課程IDANDschedule.課程編號(hào)=course.課程編號(hào)AND課程名稱='西方經(jīng)濟(jì)學(xué)')第4章4.1.5分組查詢
【例4-37】
查詢“西方經(jīng)濟(jì)學(xué)”課程成績(jī)高于該門課程平均成績(jī)的學(xué)生信息。SELECTstudent.*
FROMstudent,grade,schedule,course
WHEREstudent.學(xué)號(hào)=grade.學(xué)號(hào)
ANDgrade.課程ID=schedule.課程ID
ANDschedule.課程編號(hào)=course.課程編號(hào)
AND課程名稱='西方經(jīng)濟(jì)學(xué)'AND成績(jī)
>=(SELECTAVG(成績(jī))AS平均分
FROMgrade,schedule,course
WHEREgrade.課程ID=schedule.課程ID
ANDschedule.課程編號(hào)=course.課程編號(hào)
AND課程名稱='西方經(jīng)濟(jì)學(xué)');【例4-36】
查詢至少有兩門不及格課程的學(xué)生信息。SELECT*FROMstudentWHERE學(xué)號(hào)IN(SELECT學(xué)號(hào)FROMgradeWHERE成績(jī)<60GROUPBY學(xué)號(hào)HAVINGCOUNT(*)>=2);【例4-35】
查詢選修“西方經(jīng)濟(jì)學(xué)”課程的學(xué)生人數(shù)。SELECT課程名稱,COUNT(*)AS選修人數(shù)
FROMgrade,schedule,course
WHEREgrade.課程ID=schedule.課程ID
ANDschedule.課程編號(hào)=course.課程編號(hào)
AND課程名稱='西方經(jīng)濟(jì)學(xué)'
GROUPBY課程名稱;第4章
4.1.6連接查詢
【命令格式】SELECT[predicate]select_listFROMtable1{INNER|LEFT|RIGHT}JOINtable2ONjoin_criteria[WHEREsearch_criteria] [ORDERBYcolumn_criteria[ASC|DESC]]注意:在這個(gè)命令子句中,所要連接的表和其連接類型是由FROM給出的,連接的條件是由ON給出的,ON條件指出當(dāng)兩個(gè)表在公共字段上的值相匹配時(shí),進(jìn)行連接。第4章
4.1.6連接查詢
【例4-39】
完成student表和grade表的普通連接。SELECT*FROMteacherINNERJOINsalaryONteacher.教師編號(hào)=salary.教師編號(hào);【例4-38】
完成student表和grade表的普通連接。SELECT*FROMstudentINNERJOINgradeONstudent.學(xué)號(hào)=grade.學(xué)號(hào);1.普通連接命令選項(xiàng)INNERJOIN為普通連接,也稱為內(nèi)部連接。普通連接的結(jié)果是只有滿足連接條件的記錄才會(huì)出現(xiàn)在查詢結(jié)果中。第4章
4.1.6連接查詢
【例4-40】
完成student表和grade表的左連接。結(jié)果包括所有的學(xué)生記錄(student表中全部記錄),也包括沒有選擇課程的學(xué)生信息。SELECT*FROMstudentLEFTJOINgradeONstudent.學(xué)號(hào)=grade.學(xué)號(hào);2.左連接左連接的查詢結(jié)果是返回第一個(gè)表全部記錄和第二個(gè)表中滿足連接條件的記錄。第一個(gè)表中所有沒在第二個(gè)表中找到相應(yīng)連接記錄的記錄,其對(duì)應(yīng)第二個(gè)表的字段值為NULL。第4章
4.1.6連接查詢
【例4-42】
完成grade表和course表的右連接。結(jié)果中包括了所有的課程(course中的全部記錄),也包括沒有學(xué)生選擇的課程。SELECT*FROMgradeRIGHTJOINcourseONcourse.課程編號(hào)=grade.課程編號(hào);【例4-41】
完成student表和grade表的右連接。SELECT*FROMstudentRIGHTJOINgradeONstudent.學(xué)號(hào)=grade.學(xué)號(hào);比較上述3種連接的結(jié)果。3.右連接右連接的查詢結(jié)果是返回第二個(gè)表全部記錄和第一個(gè)表中滿足連接條件的記錄。同樣,第二個(gè)表不滿足連接條件的記錄,其對(duì)應(yīng)第一個(gè)表的字段值為NULL。第4章
4.1.7聯(lián)合查詢
【例4-43】
查詢學(xué)生和教師中的女性記錄。SELECT姓名,性別,出生日期FROMstudentWHERE性別="女"UNIONSELECT姓名,性別,出生日期FROMteacherWHERE性別="女";【命令格式】SELECTselect_statementUNIONSELECTselect_statement[UNIONSELECTselect_statement[UNION……]聯(lián)合查詢的要求:聯(lián)合查詢中合并的選擇查詢必須具有相同的輸出字段數(shù)、采用相同的順序并包含相同或兼容的數(shù)據(jù)類型。在運(yùn)行聯(lián)合查詢時(shí),來自每組相應(yīng)字段中的數(shù)據(jù)將合并到一個(gè)輸出字段中,這樣查詢輸出所包含的字段數(shù)將與每個(gè)Select語句相同。4.2數(shù)據(jù)操縱語言第4章數(shù)據(jù)操作語言(DML)命令實(shí)現(xiàn)的功能包括追加、更新和刪除。第4章
4.2.1追加
追加就是添加一個(gè)或多個(gè)記錄至一個(gè)表。1.多重記錄追加查詢【命令格式】INSERTINTOtarget[(field1[,field2[,...]])]
SELECTfield1[,field2[,...]]
FROMtableexpression2.單一記錄追加查詢【命令格式】INSERTINTOtarget[(field1[,field2[,...]])]
VALUES(value1[,value2[,...]])【例4-44】
插入一條完整的記錄。INSERTINTOstudentVALUES('053500001','齊心','女',#1988-01-01#,"漢族",'團(tuán)員',"信息學(xué)院","電商05-1","北京市","排球","");
4.2.2更新
第4章更新命令改變指定表中滿足條件記錄的字段值?!久罡袷健縐PDATEtable_name SETcolumn_name=value[,column_name=value[,…]] WHEREupdatecriteria【例4-45】
對(duì)崗位津貼低于800元的教師,在其原有崗位津貼的基礎(chǔ)上增加20%,重新計(jì)算崗位津貼(此例在操作之前,先將salary表復(fù)制為salary1表)。UPDATEsalary1SET崗位津貼=崗位津貼*(1+0.2)WHERE崗位津貼<=800;
4.2.3刪除
第4章刪除命令刪除指定表中滿足條件的記錄?!久罡袷健? DELETEFROMtable_name [WHEREdelete_criteria]【例4-46】
刪除salary1表(見【例4-45】)中教師編號(hào)首位是“0”的記錄。DELETEFROMsalary1WHERE教師編號(hào)LIKE"0*";4.3數(shù)據(jù)定義語言第4章通過在SQL視圖中編寫數(shù)據(jù)定義語言可以創(chuàng)建和修改表、限制、索引和關(guān)系。本節(jié)介紹數(shù)據(jù)定義語言,以及如何使用這類語言創(chuàng)建表、限制、索引及關(guān)系。第4章【例4-48】
用CREATE命令建立mytable2表,其中ID字段為自動(dòng)編號(hào)主鍵。CREATETABLEmytable2(IDCOUNTERPRIMARYKEY,MyTextTEXT(10));【例4-47】
用CREATE命令建立mytable1表。CREATETABLEmytable1(FirstNameTEXT,LastNameTEXT,DateOfBirthDATETIME);4.3.1創(chuàng)建表第4章可以使用CREATETABLE命令創(chuàng)建表。
創(chuàng)建一個(gè)新表。在創(chuàng)建表的同時(shí)可以定義表的字段名、字段類型、小數(shù)位數(shù)、是否支持“空”值、參照完整性規(guī)則等?!久罡袷健緾REATE[TEMPORARY]TABLEtable_name(field1type[(size)][NOTNULL][index1][,field2type[(size)][NOTNULL][index2][,…]][CONSTRAINTmultifieldindex[,…]])
建立TEMPORARY表時(shí),只能在建立表的會(huì)話期間看見它。會(huì)話期終止時(shí),它就被自動(dòng)刪除。Temporary表能被不止一個(gè)用戶訪問。第4章【例4-50】
用CREATE命令建立grade表,其中“學(xué)號(hào)”和“課程編號(hào)”為雙字段主鍵,并與student表建立聯(lián)系。CREATETABLEgrade(學(xué)號(hào)TEXT(8)REFERENCESstudent(學(xué)號(hào)),課程編號(hào)TEXT(6),
成績(jī)NUMBER,PRIMARYKEY(學(xué)號(hào),課程編號(hào)));【例4-49】
用CREATE命令建立student表,學(xué)號(hào)為主鍵,且與grade表以學(xué)號(hào)為連接字段建立聯(lián)系。CREATETABLEstudent(學(xué)號(hào)TEXT(8)PRIMARYKEY,姓名TEXT(10),性別TEXT(1),出生日期DATETIME)referencesgrade(學(xué)號(hào));
4.3.2刪除表
第4章表中刪除已存在的索引?!久罡袷健緿ROP{TABLEtable_name|INDEXindex_nameON表}【例4-51】
刪除mytable表。DROPTABLEmytable
這種刪除是不可恢復(fù)的。4.3.3修改表第1章ALTER命令用于修改已創(chuàng)建
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 11073-2025硅片徑向電阻率變化測(cè)量方法
- 常州市溧陽中學(xué)高三地理一輪復(fù)習(xí)第二章城市化作業(yè)
- 2025年高職模具設(shè)計(jì)與制造(復(fù)雜模具設(shè)計(jì))試題及答案
- 大學(xué)(臨床醫(yī)學(xué))兒科學(xué)基礎(chǔ)2026年試題及答案
- 2025年中職(烹飪工藝)宴席菜品設(shè)計(jì)階段測(cè)試題及答案
- 2025年大學(xué)大一(輪機(jī)工程)輪機(jī)自動(dòng)化試題及答案
- 2025年高職(船舶電子電氣技術(shù))船舶電氣設(shè)備試題及答案
- 2025年大學(xué)測(cè)繪工程(地圖注記設(shè)計(jì))試題及答案
- 2025年大學(xué)大二(種子科學(xué)與工程)種子生產(chǎn)學(xué)基礎(chǔ)試題及答案
- 2025年中職(健康服務(wù)與管理)健康檔案管理試題及答案
- 電力安全風(fēng)險(xiǎn)管理
- 甘肅扶貧貸款管理辦法
- 甲狀腺膿腫課件
- 醫(yī)學(xué)類大學(xué)生職業(yè)規(guī)劃
- 同型半胱氨酸的檢測(cè)及臨床應(yīng)用
- 【MOOC答案】《電子線路設(shè)計(jì)、測(cè)試與實(shí)驗(yàn)(二)》(華中科技大學(xué))章節(jié)作業(yè)慕課答案
- 2025年高考數(shù)學(xué)立體幾何檢測(cè)卷(立體幾何中的三角函數(shù)應(yīng)用)
- 2025年綜合類-衛(wèi)生系統(tǒng)招聘考試-護(hù)士招聘考試歷年真題摘選帶答案(5卷100題)
- 駐外銷售人員管理辦法
- 醫(yī)療反歧視培訓(xùn)
- GB/T 45701-2025校園配餐服務(wù)企業(yè)管理指南
評(píng)論
0/150
提交評(píng)論