版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.數(shù)據(jù)庫(kù)表和視圖的基本操作摘要:也可利用新建視圖進(jìn)行查詢,如下例所示:例1查詢所有學(xué)生信息,如圖20所示.例35查詢所有高考成績(jī)?cè)?00分到900分之間的學(xué)生.SELECT sname.關(guān)鍵詞:查詢,高考類別:其它來(lái)源:牛檔搜索(Niudown.COM)本文系牛檔搜索(Niudown.COM)根據(jù)用戶的指令自動(dòng)搜索的結(jié)果,文中內(nèi)涉及到的資料均來(lái)自互聯(lián)網(wǎng),用于學(xué)習(xí)交流經(jīng)驗(yàn),作品其著作權(quán)歸原作者所有。不代表牛檔搜索(Niudown.COM)贊成本文的內(nèi)容或立場(chǎng),牛檔搜索(Niudown.COM)不對(duì)其付相應(yīng)的法律責(zé)任!;實(shí)驗(yàn)一 數(shù)據(jù)庫(kù)表和視圖的基本操作一、實(shí)驗(yàn)大綱實(shí)驗(yàn)?zāi)康模?. 掌握數(shù)據(jù)庫(kù)表和視圖
2、的概念2. 熟練掌握創(chuàng)建、修改、刪除表的方法3. 熟練掌握創(chuàng)建、修改、刪除視圖的方法4. 掌握表和視圖的區(qū)別5. 熟練掌握單表和視圖的各種查詢操作6. 掌握空值的概念7. 了解別名的概念8. 掌握不精確查詢的操作方法9. 熟練掌握數(shù)據(jù)插入、修改、刪除的概念10. 熟練掌握INSERT、UPDATE、DELETE命令的實(shí)現(xiàn)方式11. 掌握將子查詢嵌套在INSERT、UPDATE、DELETE中的操作方法12. 掌握分別用T-SQL語(yǔ)言和企業(yè)管理器兩種方法進(jìn)行以上各種操作實(shí)驗(yàn)要求:1創(chuàng)建表表1結(jié)構(gòu)為Employee(eno(職工編號(hào)),ename(職工姓名),esex(性別),address(家庭
3、住址),sdept(所在部門),eyear(工齡),title(職務(wù))表2 結(jié)構(gòu)為Dept(dno(部門編號(hào)),dept(部門名稱),header(部門領(lǐng)導(dǎo))表3結(jié)構(gòu)為Salary(eno(職工編號(hào)),ename(職工姓名),dept(所在部門),sal(基本工資),btsal(基本津貼),sdbt(水電補(bǔ)貼),shbt(生活補(bǔ)貼),yjjt(業(yè)績(jī)津貼),bybt(邊遠(yuǎn)補(bǔ)貼),kfz(扣房租),kgjj(扣公積金),sybx(失業(yè)保險(xiǎn)),ylbx(醫(yī)療保險(xiǎn))表4結(jié)構(gòu)為Header(hno(領(lǐng)導(dǎo)編號(hào)),hname(領(lǐng)導(dǎo)姓名),dept(所在部門),title(職務(wù))2 修改表結(jié)構(gòu)向Employe
4、e表中加入sage(年齡)字段,tel(聯(lián)系電話),將字段名sdept改為dept。將表Salary中的eno數(shù)據(jù)類型由原來(lái)的數(shù)值型改為字符型將表Salary中字段sdbt刪除。3刪除表Header。4分別向表Employee, 表Dept和表 Salary中加入數(shù)據(jù),至少10條記錄。5創(chuàng)建視圖建立只包含職工編號(hào),職工姓名,工齡和職務(wù)的視圖E_view1建立工齡在10年以上且職務(wù)為總經(jīng)理的員工的視圖E_view2。建立職務(wù)為高級(jí)工程師且應(yīng)發(fā)工資大于5000的職工的視圖E_view3。建立銷售部門職務(wù)為總經(jīng)理或副總經(jīng)理的應(yīng)發(fā)工資的視圖E_view46查看視圖定義7修改視圖將視圖E_view1中的
5、職務(wù)名為總經(jīng)理改為部門經(jīng)理。將視圖E_view2中應(yīng)發(fā)工資減去180元。將視圖E_view3中應(yīng)發(fā)工資大于10000元且職務(wù)為副總經(jīng)理的職務(wù)改為總經(jīng)理。8刪除視圖將已建立的視圖E_view1和E_view2刪除掉。9向表中插入數(shù)據(jù),如表1, 2, 3所示10數(shù)據(jù)更新(1)向職工表Employee插入職工編號(hào),職工姓名,性別,家庭住址,所在部門,工齡,職務(wù)分別為01180202,張揚(yáng),男,七里河北街254號(hào),人事科,5,職員。(2)向工資表Salary中插入職工編號(hào)為01180202,所在部門為人事科,基本工資為412,基本津貼為218,水電補(bǔ)貼為10,生活補(bǔ)貼為400,邊遠(yuǎn)補(bǔ)貼為12.5。(3
6、)將所有職工的基本工資增加80。(4)將職工編號(hào)為01180406的職務(wù)改為職員。(5)將職工趙前進(jìn)的基本工資減少80。(6)將職工表進(jìn)行復(fù)制。(7)從表Header中刪除趙前進(jìn)的所有數(shù)據(jù)。(8)刪除采購(gòu)科所有職工的信息。11簡(jiǎn)單查詢查找所有職工編號(hào),姓名查找所有職工的詳細(xì)信息該單位所有的部門數(shù)12單表?xiàng)l件查詢查找所有的女職工信息查找銷售科的所有男職工信息查找職工編號(hào)為01180506的職工的基本工資和實(shí)發(fā)工資查找基本津貼為空值的職工信息查找李姓職工的基本信息查找不姓王的所有職工信息13利用表別名實(shí)現(xiàn)以上操作實(shí)驗(yàn)環(huán)境:SQL Server 2000二、實(shí)驗(yàn)指導(dǎo)說(shuō)明:本示例用例的表結(jié)構(gòu)如下所示:
7、Student (sno, sname, sex,sage,dept, oldgrade, advisor)Teacher (tno, tname, dept, salary, title)Course (cno, cname, descry, dept, credit)SC (sno, cno, grade)以上數(shù)據(jù)庫(kù)表的含義為:Student學(xué)生:sno(學(xué)號(hào)),sname(學(xué)生姓名),sex(性別),sage(年齡),dept(系),oldgrade(高考成績(jī)),advisor(導(dǎo)師)Teacher教師:tno(教師編號(hào)),tname(教師姓名),dept(所在系),salary(工資)
8、,title(職稱)Course課程:cno(課程號(hào)),cname(課程名),descry(課程說(shuō)明),dept(開課系),credits(學(xué)分)SC成績(jī):sno(學(xué)號(hào)),cno(課程號(hào)),grade(成績(jī))1.利用企業(yè)管理器實(shí)現(xiàn)表和視圖的基本操作(1)創(chuàng)建表鼠標(biāo)右鍵單擊所要建表的數(shù)據(jù)庫(kù),“新建”“表”彈出如圖1所示界面,在別名里輸入字段名,然后選擇數(shù)據(jù)類型,確定數(shù)據(jù)長(zhǎng)度,是否允許為空。也可以填寫有關(guān)列的部分屬性。圖1(2)修改表在相應(yīng)的數(shù)據(jù)庫(kù)中選定要修改的名,右鍵單擊,或選擇菜單“操作”,選擇“設(shè)計(jì)表”,彈出如圖2所示界面,可以對(duì)表的列進(jìn)行修改,增加或刪除列等操作。圖2 圖3(3)刪除表選擇
9、要?jiǎng)h除的表,右鍵單擊(或選擇菜單“操作”),在彈出菜單中選擇刪除,彈出如圖3所示界面。選擇按鈕“全部除去”。(4)創(chuàng)建視圖在相應(yīng)的數(shù)據(jù)庫(kù)下,選擇視圖,在“操作”菜單下選擇“新建視圖”,彈出如圖4所示界面,在上方工作區(qū),右鍵單擊,在彈出菜單中選擇“添加表”,如圖5。圖4 圖5在彈出的“添加表”對(duì)話框中,選擇所要建立視圖的表或視圖,如圖6所示。選擇添加按鈕。若要添加多個(gè)表重復(fù)剛才過(guò)程,直至添加完成。“關(guān)閉”添加表對(duì)話框,返回添加視圖界面,可以看出表已經(jīng)添加成功,在相應(yīng)表中選擇要建立視圖的字段,如圖7。系統(tǒng)會(huì)自動(dòng)生成SQL代碼,下面窗口出現(xiàn)視圖運(yùn)行結(jié)果。圖6 圖7(5)查看或修改視圖右鍵單擊所要查看
10、或修改的視圖,選擇“設(shè)計(jì)視圖”,彈出如圖3-7所示界面,可以對(duì)視圖進(jìn)行查看或修改。(6)刪除視圖右鍵單擊所要?jiǎng)h除的視圖,在彈出菜單中選擇“刪除”按鈕,彈出如圖3-3所示對(duì)話框。選擇“全部除去”按鈕。(7)數(shù)據(jù)插入打開企業(yè)管理器,右鍵單擊要插入數(shù)據(jù)的表或選中要插入數(shù)據(jù)的表,選擇菜單“操作”“打開表”“返回所有行”,如圖8所示,則會(huì)彈出該表的數(shù)據(jù)對(duì)話框,即可以插入數(shù)據(jù),如圖9所示。圖8 圖9或者:?jiǎn)螕魣D3-9上的按鈕,則顯示彈出式菜單,如圖10所示,選擇“從中插入”,則彈出對(duì)話框,選擇插入的數(shù)據(jù)源表,如圖11所示。圖10 圖11選擇表Student,則彈出如圖3-12所示界面,下面列表區(qū)顯示表St
11、udent的內(nèi)容,中間代碼區(qū)顯示代碼,將表Student中的內(nèi)容插入到表st中。單擊“運(yùn)行”按鈕,則彈出如圖3-13所示,提示此次插入數(shù)據(jù)的行數(shù),表明插入成功。圖12 圖13(8)數(shù)據(jù)更新在如圖10所示菜單中,選擇“更新”,彈出如圖14所示,在上面網(wǎng)格區(qū)中的“列”中選擇所要修改的列,如sage,在“表”中選擇Student表,在“新值”中寫入新設(shè)定值,如18。同理可以設(shè)置多個(gè)列。如果是有條件修改,則在“準(zhǔn)則”中寫入條件。如圖是將所在系為空的學(xué)生的年齡修改為18,系修改為“材料學(xué)院”。代碼區(qū)會(huì)自動(dòng)顯示剛才操作的SQL語(yǔ)句。運(yùn)行后,提示如圖15所示,表示此次修改成功。圖14 圖15(9)數(shù)據(jù)刪除在
12、如圖10的菜單中選擇“刪除”,則彈出如圖16所示的窗口,操作類似更新。如果是無(wú)條件刪除,則上面網(wǎng)格區(qū)不做任何操作,如果是條件刪除,則在網(wǎng)格區(qū)中進(jìn)行條件設(shè)定,如在“列”中選擇sno,在“表”中選擇Student,在“準(zhǔn)則”中寫入該列滿足的條件,如0000。上述設(shè)置表示在表Student中刪除學(xué)號(hào)為0000的學(xué)生記錄。代碼區(qū)自動(dòng)顯示此次操作的代碼形式。設(shè)置完成后,單擊“運(yùn)行”按鈕,則彈出如圖17所示對(duì)話框,說(shuō)明此次刪除數(shù)據(jù)成功。 圖16 圖17(10)單表查詢右鍵單擊要查詢的表或選擇要進(jìn)行查詢的表,如圖18所示,選擇菜單“操作”“打開表”“查詢”,彈出查詢窗口如圖19所示。選擇所要顯示的列名,代碼
13、區(qū)會(huì)自動(dòng)生成SQL語(yǔ)句,然后點(diǎn)擊按鈕 ,運(yùn)行查詢。查詢結(jié)果顯示在顯示區(qū)中。 圖18 圖19也可利用新建視圖進(jìn)行查詢,如下例所示:例1查詢所有學(xué)生信息,如圖20所示。注:圖中代碼區(qū)的代碼為自動(dòng)生成,讀者也可以自行在代碼區(qū)進(jìn)行修改。 圖20 圖21例2查詢所有學(xué)生的出生年份。提示:表中有學(xué)生年齡字段,可以用當(dāng)前年份減去年齡字段值得到出生年份。如本例用2007-sage來(lái)進(jìn)行計(jì)算,如圖21所示。例3查詢所有女生信息。提示:在表中選擇相應(yīng)要顯示的字段。然后在“準(zhǔn)則”欄中寫入條件,如在列sex 對(duì)應(yīng)的“準(zhǔn)則”中寫入=“女”,如圖22所示。圖22例4查詢所有年齡大于或等于20歲女生信息。如圖23所示。提示
14、:多條件查詢,只需在相應(yīng)的“準(zhǔn)則”欄中寫入多個(gè)條件即可。如本例中在列sex對(duì)應(yīng)的“準(zhǔn)則”欄中寫入=“女”,同時(shí)在列sage對(duì)應(yīng)的“準(zhǔn)則”欄中寫入>=20即可。圖232.利用T-SQL語(yǔ)言實(shí)現(xiàn)基本表和視圖操作(1)創(chuàng)建表語(yǔ)法結(jié)構(gòu):CREATE TABLE database_name. owner .| owner. table_name ( < column_definition > | column_name AS computed_column_expression | < table_constraint > := CONSTRAINT constraint_
15、name | PRIMARY KEY | UNIQUE ,.n ) 主要參數(shù)說(shuō)明:database_name:是要在其中創(chuàng)建表的數(shù)據(jù)庫(kù)名稱。database_name 必須是現(xiàn)有數(shù)據(jù)庫(kù)的名稱。如果不指定數(shù)據(jù)庫(kù),database_name 默認(rèn)為當(dāng)前數(shù)據(jù)庫(kù)。當(dāng)前連接的登錄必須在 database_name 所指定的數(shù)據(jù)庫(kù)中有關(guān)聯(lián)的現(xiàn)有用戶 ID,而該用戶 ID 必須具有創(chuàng)建表的權(quán)限。owner:是新表所有者的用戶 ID 名,owner 必須是 database_name 所指定的數(shù)據(jù)庫(kù)中的現(xiàn)有用戶 ID,owner 默認(rèn)為與 database_name 所指定的數(shù)據(jù)庫(kù)中的當(dāng)前連接相關(guān)聯(lián)的用戶 I
16、D。如果 CREATE TABLE 語(yǔ)句由 sysadmin 固定服務(wù)器角色成員或 database_name 所指定的數(shù)據(jù)庫(kù)中的 db_dbowner 或 db_ddladmin 固定數(shù)據(jù)庫(kù)角色成員執(zhí)行,則 owner 可以指定與當(dāng)前連接的登錄相關(guān)聯(lián)的用戶 ID 以外的其它用戶 ID。如果與執(zhí)行 CREATE TABLE 語(yǔ)句的登錄相關(guān)聯(lián)的用戶 ID 僅具有創(chuàng)建表的權(quán)限,則 owner 必須指定與當(dāng)前登錄相關(guān)聯(lián)的用戶 ID。sysadmin 固定服務(wù)器角色成員或別名為 dbo 用戶的登錄與用戶 ID dbo 相關(guān)聯(lián);因此,由這些用戶創(chuàng)建的表的默認(rèn)所有者為 dbo。不是由上述兩種角色的登錄創(chuàng)建
17、的表所有者默認(rèn)為與該登錄相關(guān)聯(lián)的用戶 ID。table_name:是新表的名稱。表名必須符合標(biāo)識(shí)符規(guī)則。數(shù)據(jù)庫(kù)中的 owner.table_name 組合必須唯一。table_name 最多可包含 128 個(gè)字符,但本地臨時(shí)表的表名(名稱前有一個(gè)編號(hào)符 #)最多只能包含 116 個(gè)字符。column_name:是表中的列名。列名必須符合標(biāo)識(shí)符規(guī)則,并且在表內(nèi)唯一。以 timestamp 數(shù)據(jù)類型創(chuàng)建的列可以省略 column_name。如果不指定 column_name,timestamp 列的名稱默認(rèn)為 timestamp。例5創(chuàng)建表Course和表Teacher。其中Course表中課程編
18、號(hào)為主鍵,課程名和開課院系不能為空,Teacher表中教師編號(hào)為主鍵,姓名、所在系不能為空。CREATE TABLE Course (cno char(10) not null primary key, cname char(10) not null, descry char(10), dept char(10) not null,credit decimal(3,1);CREATE TABLE Teacher (tno char(10) not null primary key, tname char(10) not null, dept char(10) not null, salary
19、decimal(6.2)title char(10);例6創(chuàng)建表Student,設(shè)學(xué)號(hào)為主鍵,姓名不能為空,性別為“男”或“女”。CREATE TABLE Student(sno char(10) not null primary key, sname char(10) not null, sex char(2) CHECK in (“男”,“女”), sage int, dept char(10), oldgrade decimal(3.1) advisor char(8);例7建立部門DEPT表,要求部門名稱Dept列取值唯一,部門編號(hào)Dno列為主碼。CREATE TABLE DEPT(D
20、no char(8),Dept char(9) unique,Location char(10),Header char(8),Primary key(Dno));(2)修改表修改表語(yǔ)法結(jié)構(gòu):ALTER TABLE table_name ALTER COLUMN column_name new_data_type ( precision , scale ) COLLATE < collation_name > NULL | NOT NULL | ADD | DROP ROWGUIDCOL | ADD < column_definition > | column_name
21、 AS computed_column_expression ,.n | WITH CHECK | WITH NOCHECK ADD < table_constraint > ,.n | DROP CONSTRAINT constraint_name | COLUMN column ,.n | CHECK | NOCHECK CONSTRAINT ALL | constraint_name ,.n | ENABLE | DISABLE TRIGGER ALL | trigger_name ,.n 參數(shù)說(shuō)明詳見SQL Server聯(lián)機(jī)叢書。例8添加新列。CREATE TABLE do
22、c_exa ( column_a INT) GOALTER TABLE doc_exa ADD column_b VARCHAR(20) NULLGO例9刪除列。CREATE TABLE doc_exb ( column_a INT, column_b VARCHAR(20) NULL) GOALTER TABLE doc_exb DROP COLUMN column_bGO例10修改字段定義。ALTER TABLE student;ALTER COLUMN dept varchar(25) NULL;例11修改表,向表中添加約束。ALTER TABLE DEPTADD CONSTRAINT
23、PK_DnoPRIMARY KEY(Dno);例12 向表中添加具有 UNIQUE 約束的新列。 CREATE TABLE doc_exc ( column_a INT) GOALTER TABLE doc_exc ADD column_b VARCHAR(20) NULL CONSTRAINT exb_unique UNIQUEGO(3)刪除表語(yǔ)法結(jié)構(gòu):DROP TABLE table_name ,.n 參數(shù)說(shuō)明:table_name:指定要?jiǎng)h除的表名稱。例13刪除單表。DROP TABLE doc_exc;例14刪除多表。DROP TABLE doc_exa, doc_exb;(4)創(chuàng)建視
24、圖語(yǔ)法格式:CREATE VIEW < database_name > . < owner > . view_name ( column ,.n ) WITH < view_attribute > ,.n AS select_statement WITH CHECK OPTION < view_attribute > := ENCRYPTION | SCHEMABINDING | VIEW_METADATA 主要參數(shù)說(shuō)明:view_name:視圖的名稱。視圖名稱必須符合標(biāo)識(shí)符規(guī)則??梢赃x擇是否指定視圖所有者名稱。column:是視圖中的列名。只有
25、在下列情況下,才必須命名 CREATE VIEW 中的列;當(dāng)列是從算術(shù)表達(dá)式、函數(shù)或常量派生的,兩個(gè)或更多的列可能會(huì)具有相同的名稱(通常是因?yàn)槁?lián)接),視圖中的某列被賦予了不同于派生來(lái)源列的名稱。還可以在 SELECT 語(yǔ)句中指派列名。如果未指定 column,則視圖列將獲得與 SELECT 語(yǔ)句中的列相同的名稱。 說(shuō)明:在視圖的各列中,列名的權(quán)限在 CREATE VIEW 或 ALTER VIEW 語(yǔ)句間均適用,與基礎(chǔ)數(shù)據(jù)源無(wú)關(guān)。例如,如果在 CREATE VIEW 語(yǔ)句中授予了 title_id 列上的權(quán)限,則 ALTER VIEW 語(yǔ)句可以將 title_id 列改名(例如改為 qty),
26、但權(quán)限仍與使用 title_id 的視圖上的權(quán)限相同。n:表示可以指定多列的占位符。AS:視圖要執(zhí)行的操作。select_statement:是定義視圖的 SELECT 語(yǔ)句。該語(yǔ)句可以使用多個(gè)表或其它視圖。若要從創(chuàng)建視圖的 SELECT 子句所引用的對(duì)象中選擇,必須具有適當(dāng)?shù)臋?quán)限。視圖不必是具體某個(gè)表的行和列的簡(jiǎn)單子集??梢杂镁哂腥我鈴?fù)雜性的 SELECT 子句,使用多個(gè)表或其它視圖來(lái)創(chuàng)建視圖。在索引視圖定義中,SELECT 語(yǔ)句必須是單個(gè)表的語(yǔ)句或帶有可選聚合的多表 JOIN。對(duì)于視圖定義中的 SELECT 子句有幾個(gè)限制。CREATE VIEW 語(yǔ)句不能: l 包含 COMPUTE 或
27、COMPUTE BY 子句。l 包含 ORDER BY 子句,除非在 SELECT 語(yǔ)句的選擇列表中也有一個(gè) TOP 子句。l 包含 INTO 關(guān)鍵字。l 引用臨時(shí)表或表變量。WITH CHECK OPTION:強(qiáng)制視圖上執(zhí)行的所有數(shù)據(jù)修改語(yǔ)句都必須符合由 select_statement 設(shè)置的準(zhǔn)則。通過(guò)視圖修改行時(shí),WITH CHECK OPTION 可確保提交修改后,仍可通過(guò)視圖看到修改的數(shù)據(jù)。WITH ENCRYPTION:表示 SQL Server 加密包含 CREATE VIEW 語(yǔ)句文本的系統(tǒng)表列。使用 WITH ENCRYPTION 可防止將視圖作為 SQL Server 復(fù)制
28、的一部分發(fā)布。例15創(chuàng)建視圖,查看各院系男女生情況,如圖3-7所示。CREATE VIEW view_sASSELECT Student.dept AS 所在院系, Student.sex AS 性別 FROM Student;例16創(chuàng)建帶有運(yùn)算的視圖。CREATE VIEW dbo.v_sASSELECT year(getdate()-sage as 出生年FROM Studentwhere Student.dept=計(jì)算機(jī);(5)查看視圖和修改視圖l 查看視圖:EXEC sp_helptext 視圖名l 修改視圖語(yǔ)法結(jié)構(gòu)ALTER VIEW < database_name >
29、. < owner > . view_name ( column ,.n ) WITH < view_attribute > ,.n AS select_statement WITH CHECK OPTION < view_attribute > := ENCRYPTION | SCHEMABINDING | VIEW_METADATA 參數(shù)說(shuō)明參見視圖創(chuàng)建。例17修改視圖。CREATE VIEW dbo.v_e_sasselect sno,sname as 姓名,sexFROM StudentALTER VIEW dbo.v_e_sasselect sno
30、,sname as 姓名,oldgradeFROM Student例18用查詢分析器查看視圖。EXEC sp_helptext dbo.v_e_s;(6)刪除視圖語(yǔ)法結(jié)構(gòu)DROP VIEW view ,.n 參數(shù)說(shuō)明:view:是要?jiǎng)h除的視圖名稱。視圖名稱必須符合標(biāo)識(shí)符規(guī)則。有關(guān)更多信息,請(qǐng)參見使用標(biāo)識(shí)符。可以選擇是否指定視圖所有者名稱。:是表示可以指定多個(gè)視圖的占位符。例19刪除視圖v_e_v。DROP VIEW v_e_v;(7)數(shù)據(jù)插入INSERT 命令的語(yǔ)法格式:INSERT INTO 表名或視圖名 (column_list) VALUES(data_values)說(shuō)明:此語(yǔ)句將使 d
31、ata_values 作為一行或者多行插入已命名的表或視圖中。column_list 是由逗號(hào)分隔的列名列表,用來(lái)指定為其提供數(shù)據(jù)的列。如果沒(méi)有指定 column_list,表或者視圖中的所有列都將接收數(shù)據(jù)。如果column_list 沒(méi)有為表或視圖中的所有列命名,將在列表中沒(méi)有命名的任何列中插入一個(gè) NULL 值(或者在默認(rèn)情況下為這些列定義的默認(rèn)值)。在列的列表中沒(méi)有指定的所有列都必須允許 null 值或者指定的默認(rèn)值。創(chuàng)建 INSERT FROM 查詢通過(guò) INSERT FROM 查詢,可以將行從一個(gè)表復(fù)制到另一個(gè)表中或在同一個(gè)表內(nèi)復(fù)制。例如,在 employee 表中,可以通過(guò) INS
32、ERT FROM 查詢,將有關(guān)某科室的信息都復(fù)制到另一個(gè)表中,并使該表可由該科室使用。例20向?qū)W生表Student中插入新同學(xué):03250606,李濟(jì),男,19,計(jì)算機(jī),698,可聞。INSERTINTO Student Values(03250606, 李濟(jì),男,19,計(jì)算機(jī),698,可聞);例21向教師表中添加新教師0203005,李工信息。INSERTINTO TeacherValues(0203005,李工);例22將高考成績(jī)大于780分的同學(xué)姓名和高考成績(jī)復(fù)制到一張新表中。CREATE TABLE student_1(sname char(10) not null,oldgrade
33、int);INSERTINTO student_1SELECT sname,oldgradeFROM StudentWHERE oldgrade>780;(8)數(shù)據(jù)更新UPDATE 語(yǔ)句的語(yǔ)法格式:UPDATE <表名>SET <列名>=<表達(dá)式>,<列名>=<表達(dá)式>WHERE <條件>;例23將所有學(xué)生的所有成績(jī)?cè)黾?%。UPDATE SCSET grade=grade*1.05;例24將學(xué)生表中計(jì)算機(jī)系改為計(jì)算機(jī)與通信學(xué)院。UPDATE StudentSET dept=計(jì)算機(jī)與通信學(xué)院WHERE dept=計(jì)算
34、機(jī)系;例25將計(jì)算機(jī)與通信學(xué)院的教師工資增加2%。UPDATE TeacherSET salary=salary*1.02WHERE dept=計(jì)算機(jī)與通信學(xué)院;例26將所有女生的考試成績(jī)?cè)黾?。UPDATE SCSET grade=grade+5WHERE 女=(SELECT sex FROM Student WHERE Student.sno=SC.sno);或UPDATE SCSET grade=grade+5WHERE sno IN(SELECT sno FROM Student WHERE student.sex='女');(9)數(shù)據(jù)刪除DELETE語(yǔ)句的語(yǔ)法結(jié)構(gòu):D
35、ELETE FROM <表名>WHERE <條件>;或DELETE <表名>WHERE <條件>;例27刪除課程號(hào)為205323的選課記錄。DELETEFROM SCWHERE cno=205323;例28刪除選課表中的所有信息。DELETE FROM SC;例29刪除姓名為“前進(jìn)”的學(xué)生的選課信息。DELETE FROM SCWHERE sno IN(SELECT sno FROM Student WHERE sname=“前進(jìn)”);或DELETE SCFROM SC INNER JOIN Student ON SC.sno=Student.s
36、noWHERE Student.sname=“前進(jìn)”;(10)單表查詢打開查詢分析器,將SQL代碼寫出代碼區(qū),然后點(diǎn)擊執(zhí)行按鈕,則查詢結(jié)果自動(dòng)顯示在結(jié)果區(qū)中。如圖24所示。注:首先必須在工具欄中選擇所用數(shù)據(jù)庫(kù),否則必須在代碼中加入打開數(shù)據(jù)庫(kù)語(yǔ)句。如將:Select * From student;寫為:Use studentGo Select *From studentGo ;說(shuō)明:以下示例只寫出語(yǔ)句格式,不再顯示該窗口。圖24SELECT語(yǔ)法結(jié)構(gòu):SELECT ALL|DISTINCT<目標(biāo)列表達(dá)式>,<目標(biāo)列表達(dá)式>.FROM <表名或視圖名>,<表
37、名或視圖名> . WHERE <條件表達(dá)式>GROUP BY <分組表達(dá)式>HAVING <條件表達(dá)式> ORDER BY <排序表達(dá)式> ASC|DESC;整個(gè)SELECT語(yǔ)句的含義是,根據(jù)WHERE子句的條件表達(dá)式,從FROM子句指定的基本表或視圖中找出滿足條件的元組,再按SELECT子句中的目標(biāo)列表達(dá)式,選出元組中的屬性值形成結(jié)果表。參數(shù)說(shuō)明:WHERE 子句WHERE 子句的語(yǔ)法結(jié)構(gòu):WHERE 條件表達(dá)式通過(guò)SELECT語(yǔ)句中使用WHERE子句可以設(shè)置記錄的檢索條件,從而保證查詢結(jié)果中只包含需要的記錄。GROUP BY分組統(tǒng)計(jì)GROUP BY 語(yǔ)法結(jié)構(gòu): GROUP BY ALL分組表達(dá)式,n分組表達(dá)式是執(zhí)行分組時(shí)的一個(gè)表達(dá)式,通常是一個(gè)字段名,在字段列表中指定的字段別名不能作為
溫馨提示
- 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年粵教版必修3地理下冊(cè)月考試卷含答案
- 2025年滬科版五年級(jí)英語(yǔ)上冊(cè)月考試卷
- 2025年外研版選修3物理上冊(cè)月考試卷
- 2024版團(tuán)隊(duì)協(xié)作購(gòu)車協(xié)議細(xì)則版B版
- 2025年人教B版八年級(jí)化學(xué)下冊(cè)月考試卷
- 2025年浙教版必修3地理下冊(cè)階段測(cè)試試卷含答案
- 2025年人教新起點(diǎn)必修3物理上冊(cè)階段測(cè)試試卷
- 2025年度高新技術(shù)產(chǎn)業(yè)人才戰(zhàn)略合作框架協(xié)議3篇
- 2025年粵教版三年級(jí)語(yǔ)文下冊(cè)月考試卷
- 二零二五年度股份收購(gòu)與稅收籌劃合同3篇
- 2024外研版初中英語(yǔ)單詞表匯總(七-九年級(jí))中考復(fù)習(xí)必背
- 《海上風(fēng)電場(chǎng)工程巖土試驗(yàn)規(guī)程》(NB/T 10107-2018)
- 高中新校區(qū)辦學(xué)規(guī)劃方案
- 腎積水護(hù)理查房
- 無(wú)人機(jī)駕駛培訓(xùn)班合作協(xié)議
- 五年級(jí)上冊(cè)小數(shù)乘法豎式計(jì)算練習(xí)400題及答案
- 電廠鍋爐爐膛煙道內(nèi)部作業(yè)三措兩案
- 收費(fèi)站(所)事故隱患排查清單
- 四川省宜賓市敘州區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題(含答案)
- 論同性婚姻是否應(yīng)該合法化問(wèn)題
- 修路方案預(yù)案
評(píng)論
0/150
提交評(píng)論