第一篇:SQL-數據查詢語言
寧波工程學院
數據庫理論與技術課程實驗報告
學院: 電子與信息工程學院 專業(yè):計算機科學與技術 年級: 計科10-2 實驗時間: 2012年4月15日
組長: 何亞玲 學號: 10401010201 指導教師簽字: 成績:
實驗
三、SQL-數據查詢語言
一、實驗目的和要求
1、實驗目的:深入理解連接查詢和嵌套查詢的語句格式、執(zhí)行過程,掌握它們的使用方法;理解數據更新語言INSERT、UPDATE、DELETE語句的格式和作用,掌握它們的使用方法和應用范圍;理解視圖的概念,掌握其定義方法和應用方法。
2、實驗要求:在每次實驗前,學生必須根據實驗指導書設計出實驗方案(程序和實驗步驟);在實驗過程中要求獨立進行程序調試和排錯,學會使用在線幫助來解決實驗中遇到的問題,同時運用理論的知識來分析問題和解決問題,記錄下實驗過程和結果。上機結束后寫出實驗報告,并對實驗過程進行分析和總結。
二、實驗內容與步驟
1、在SQL SERVER 2005上附加數據庫jxgl和ReadBook。
2、在jxgl中完成下列查詢
(1)查詢選修課程學生的學號、姓名、所選課程號、課程名稱以及所取得的成績(2)查詢每一門課程及其先修課程,查詢結果中顯示課程號、課程名和先修課程名(3)查詢和“劉濤”在一個班級的學生的信息 思考:該查詢可用幾種方法實現?
(4)查詢選修了‘計算機基礎’課的學生的學號、姓名(分別用連接查詢和嵌套查詢的方法實現)
(5)查詢沒有選修課程的學生的信息
(6)查詢其他班中比“03計算應用1”所有學生入學成績高的學生的姓名和入學成績(用兩種方法實現)
(7)查詢每個學生超過該門課程平均成績的課程號
1(8)查詢至少選修了“0311102”學生所選全部課程的學生的學號(9)查詢既選修了“計算機基礎”又選修了“C語言基礎”的學生的學號(10)同時顯示students中學生以及teachers中教師的姓名、性別
3、在jxgl中完成下列數據更新
(1)向course表添加一個新的元組。
(2)將“0301102”學生所選的“0000002”課程的成績改為100分,績點改為2(3)刪除(1)中在course表中添加的記錄
(4)統計每門課程的平均成績并將統計結果存入到jxgl數據庫中
思考:如何將students表中班級名 “03計算應用1”改為“03計算機應用1”(可調用函數完成)
4、查詢教師的編號、姓名、上課的課程號、課程名稱及班級。將該查詢定義為一個視圖。
5、在第4題定義的視圖中完成下列查詢
(1)查詢“姚明”所上課程和班級。(2)統計每一位教師上課的數量
6、利用數據庫ReadBook完成下列查詢及視圖設計。(在SQL SERVER2005上附加數據庫ReadBook)
(1)設計一個查詢,要求用連接和嵌套兩種方式完成。(2)設計一個查詢,要求用外連接的方式完成。
(3)設計一個查詢,要求用帶exists或not exists相關子查詢完成(4)設計一個集合查詢
(5)設計一個帶復合條件連接的查詢
(6)設計一個視圖,并在該視圖中完成添加、修改、刪除數據的操作。
(7)設計一個視圖,并在該視圖完成兩個統計:a.每位讀者以及他的借書數量,按借書數量作降序排列 b.每本書以及被借出的次數,按借出次數作降序排列。
注意在實驗報告中說明查詢的目的和對應的語句。
三、實驗過程及數據記錄
1、在SQL SERVER 2005上附加數據庫jxgl和ReadBook。
2、在jxgl中完成下列查詢
(1)查詢選修課程學生的學號、姓名、所選課程號、課程名稱以及所取得的成績
select Students.sno,sname,SC.cno,cname,grade from Students,SC,Course where Students.sno=SC.sno and SC.cno=Course.cno
(2)查詢每一門課程及其先修課程,查詢結果中顯示課程號、課程名和先修課程名 select cno,cname from
Course
(3)查詢和“劉濤”在一個班級的學生的信息 select * from
students where class=(select class from
students where sname='劉濤')
思考:該查詢可用幾種方法實現?
(4)查詢選修了‘計算機基礎’課的學生的學號、姓名(分別用連接查詢和嵌套查詢的方法實現)連接查詢:
select Students.sno,sname from students,SC,Course where cname='計算機基礎'and Students.sno=SC.sno and SC.cno=Course.cno 嵌套查詢:
select s1.sno,sname from
students s1,SC s2,Course s3 where cname='計算機基礎'and s1.sno=s2.sno and s2.cno=s3.cno 執(zhí)行結果同上
(5)查詢沒有選修課程的學生的信息
select * from
Students where sno not in(select sno from sc)
(5)查詢其他班中比“03計算應用1”所有學生入學成績高的學生的姓名和入學成績(用兩種方法實現)
1:select sname,mgrade from students where
mgrade>(select max(mgrade)
from students where class='03計算應用')
2:select sname,mgrade from students where
mgrade>all(select mgrade from students where class='03計算應用1')
(6)查詢每個學生超過該門課程平均成績的課程號
select
cno from sc sc1 ,students where
grade>(select avg(grade)from sc sc2
where sc2.cno=sc1.cno)
(9)查詢既選修了“計算機基礎”又選修了“C語言基礎”的學生的學號 where sc2.cno=sc1.cno)
select
s1.sno from
course c1,course c2,sc sc1,sc sc2,students s1,students s2 where
c1.cname='計算機基礎'
and
c2.cname='C語言基礎' and c1.cno=sc1.cno
and
sc1.sno=s1.sno and c2.cno=sc2.cno and
sc2.sno=s2.sno and
s1.sno=s2.sno(10)同時顯示students中學生以及teachers中教師的姓名、性別 因為教師并沒有標明性別,所以不顯示
select sname,ssex from students select tname from teachers
3、在jxgl中完成下列數據更新
(1)向course表添加一個新的元組。增加的元組為學習的學期cterm: use jxgl_1 alter table course add cterm char(1)
(2)將“0301102”學生所選的“0000002”課程的成績改為100分,績點改為2 update sc set grade='100',point='2' where sno='0301102'
and cno='0000002'(3)刪除(1)中在course表中添加的記錄 use jxgl_1 alter table course drop column
cterm(4)統計每門課程的平均成績并將統計結果存入到jxgl數據庫中
select cno,avg(grade)as avg_grade from SC group by cno
思考:如何將students表中班級名 “03計算應用1”改為“03計算機應用1”(可調用函數完成)update
students set class='03計算機應用' where class='03計算應用'
4、查詢教師的編號、姓名、上課的課程號、課程名稱及班級。將該查詢定義為一個視圖。
create
view teacher_information(tno,tname,cno,cname,class)as select teachers.tno,tname,TC.cno,cname,class from Course,TC,Teachers where Course.cno=TC.cno and TC.tno=Teachers.tno
5、在第4題定義的視圖中完成下列查詢
(1)查詢“姚明”所上課程和班級。select cname,class from teacher_information where
tname='姚明'
(2)統計每一位教師上課的數量 select tname,count(cno)the_all from teachers_view group by tno,tname
6、利用數據庫ReadBook完成下列查詢及視圖設計。(在SQL SERVER2005上附加數據庫ReadBook)
(1)設計一個查詢,要求用連接和嵌套兩種方式完成。
連接:
select
rname,bookname from
books,L_R,readers where books.bookid=L_R.bookid and
L_R.rno=readers.rno 嵌套:
select rname,bookname from books b1,L_R lr1 ,readers r1 where b1.bookid=lr1.bookid and
lr1.rno=r1.rno(2)設計一個查詢,要求用外連接的方式完成。select classid,rno from books right outer join L_R on
books.bookid=L_R.bookid
(3)設計一個查詢,要求用帶exists或not exists相關子查詢完成 select distinct bookname from books where exists(select bookid from
L_R where
books.bookid=L_R.bookid and rno='04201')(4)設計一個集合查詢
select * from readers where rsex='男' union
select * from readers where spet='網絡'(5)設計一個帶復合條件連接的查詢
select rname,bookname from books,L_R,readers where books.bookid=L_R.bookid and L_R.rno=readers.rno(6)設計一個視圖,并在該視圖中完成添加、修改、刪除數據的操作。create
view books_information(bookid,classid,bookname)as select bookid,classid,bookname from books
select * from books_information
insert into books_information(bookid,classid,bookname)values('sn911','yy','計算機維修')
update books_information set classid='yy' where bookid='sn9001'
delete from
books_information where classid='sn9007'
(7)設計一個視圖,并在該視圖完成兩個統計:a.每位讀者以及他的借書數量,按借書數量作降序排列 b.每本書以及被借出的次數,按借出次數作降序排列。create view lr(rno,rname,bookid)6 as select readers.rno,rname,bookid from readers,L_R where readers.rno=L_R.rno
select rno,rname,count(bookid)as 借書數量 from lr group by rno,rname order by 借書數量desc
select bookid,count(bookid)as 借書次數 from lr group by bookid order by 借書次數desc drop view lr
注:圖很多,不一一附上
四、實驗結果分析
這次實驗的內容是熟悉連接查詢和嵌套查詢的語句格式、執(zhí)行過程,并掌握它們的使用方法;理解數據更新語言INSERT、UPDATE、DELETE語句的格式和作用,掌握它們的使用方法和應用范圍;理解視圖的概念,掌握其定義方法和應用方法。
按照課本的指導,導入數據庫,才可以進行相關查詢。編寫程序時會出現很多錯誤,很多分析時還正確,卻不能執(zhí)行,自己不斷獨立糾錯改正,才可以實現查詢結果。
第二篇:SQL語言數據查詢操作
實驗三 SQL語言——數據查詢操作
一、實驗時間
二、實驗地點:317室
三、實驗條件與環(huán)境
1. 通用PC機
2. PC機必須安裝Windows 2000系列、Windows XP系列或Windows NT操作系統平臺
3. PC機還須安裝Microsoft SQL Server 2000 任意一版本(個人版、標準版、企業(yè)版)
4. 最好有一臺公用的SQL Server 2000 服務器
四、實驗目的1. 通過上機實驗進一步加深對SQL查詢語句的基本語法格式的掌握
2. 通過上機實驗掌握單表查詢的實現過程
3. 通過上機實驗掌握多表關聯查詢的實現過程
4. 通過上機實驗掌握嵌套查詢的實現過程
5. 通過上機實驗掌握集函數與謂詞在Select語句中的使用
6. 通過上機實驗加深了解Select語句與關系代數運算(如選擇、投影、連接、除法等)兩者之間的聯系與區(qū)別
五、實驗要求:
1. 本實驗所有實驗內容要求在規(guī)定時間(2課時)內完成2. 實驗內容中涉及到的各查詢操作均通過SQL語言來實現
3.實驗完成后需要書寫實驗報告
六、實驗內容:
1.查詢?yōu)楣こ蘆1供應零件的供應商號碼SNO
2.查詢?yōu)楣こ蘆1供應零件P1的供應商號碼SNO
3.查詢?yōu)楣こ蘆1供應紅色零件的供應商號碼SNO
4.查詢沒有使用天津供應商生產的零件并且當前工程所使用零件的顏色全部為紅色的工程號JNO
5.查詢至少選用了供應商S1所供應的全部零件的工程號JNO
6.找出所有供應商的名稱和所在城市
7.找出所有零件的名稱、顏色和重量
8.找出使用供應商S1所供應零件的工程號碼
9.找出工程項目J2使用的各種零件的名稱及其重量
10.找出上海廠商供應的所有零件號碼
11.找出使用上海產的零件的工程名稱
12.找出沒有使用天津產的零件的工程號碼
13.找出重量最輕的紅色零件的零件編號PNO
14.找出供應商與工程所在城市相同的供應商提供的零件號碼
15.找出所有這樣的一些<CITY,CITY,PNAME>三元組,使得第一個城市的供應商為第二個城市的工程供應零件的名稱為PNAME
16.重復第15題,但不檢索兩個CITY值相同的三元組
17.找出供應商S1為工程名中含有“廠”字的工程供應的零件數量總和
18.找出為工程供應零件的總數量不低于500的供應商號碼及供應總數量,結果按供應商號碼分類并且按供應總數量降序排列
七、實驗總結:
數據查詢是一種極為重要的面向數據庫的數據操縱方式。實驗完成后,請同學們總結一下SELECT語
句實現各種類型查詢任務的一般過程和操作實現方法,并對利用SELECT語句實現各類查詢任務的解題規(guī)律與方法作一總結。
第三篇:SQL查詢語言
《SQL查詢語言》教學設計
一、教學目標分析
認知目標
學習SQL查詢語言的使用方法。
掌握SQL語言當中的SELECT語句
能力目標
培養(yǎng)學生應用查詢語句查詢數據的應用能力
情感目標
體驗SQL語言查詢方法
主動將數據庫管理信息的思想、方法創(chuàng)造性地應用到生活、學習之中。
二、教學內容分析
課前需要為學生準備名為SCHOOL數據庫文件,里面放著名為CLASS的表,供學生練習使用。提供這個數據庫文件可以避免學生在建立表以及表中錄入記錄上花費太多的時間,而把重點放在對本節(jié)內容的學習上,可以讓教師更好地進行目標調控,做到有的放矢。這個數據庫文件放置于網絡共享文件夾中,并將其快捷方式置于學生機的桌面上。教學重點:
1、使用“在設計視圖中創(chuàng)建查詢”。
2、SQL查詢語言的格式。
教學難點:
運行、調試SQL命令。
解決措施:
通過老師講解、演示及設置的任務,讓學生在學習的過程中,自己動手,以不斷解決問題為手段,有機結合各種知識,以任務驅動的方式發(fā)展能力,一步步完成學習任務。
三、學生學習狀態(tài)分析
本課的教學對象是大二的學生,由于學生的理論知識薄弱,加上數據庫比較抽象,比較難理解的特點,從而造成學生對數據庫的認識還很模糊。學生在本節(jié)課之前,已經掌握數據庫和表的創(chuàng)建、打開及表中輸入、修改記錄的方法,初步掌握SQL的一些基本操作,在此基礎上,如何學會在數據庫眾多表中查詢記錄變得至關重要了,所以為了學生更好地掌握這一點知識點,應廣泛調動他們的學習興趣,增強學習的主動性。
四、教學策略
職業(yè)技術學院課程本身的特點、知識及技能的傳授應以典型“任務”為主,創(chuàng)造學生自主探究學習的平臺,學生在教師的指導下帶著任務通過實際操作、探究學習等方式,逐步完成任務。
五、教學過程
合理安排教學過程是教學成功的關鍵。因此,我把教學過程分為“情境感知,揭示課題——任務驅動,講授新知——課堂小結,鞏固新知”三部分。
(一)情境感知,揭示課題
為了讓同學們對自己班級同學的情況有所了解,我們如何簡便地查詢呢?我們可以通過輸入一些命令解決問題。這些命令就是我們這節(jié)課所要學習的SQL查詢語言。設計思路:
SQL所包含的數據具有一定的規(guī)模,并且能快速地從眾多表中查詢到某個同學的情況,讓學生體會到數據庫在現實生活中的應用。
(二)任務驅動,講授新知
1. 如何在SQL中使用查詢命令?
任務一:
在SCHOOL數據庫的CLASS表中查詢所有的記錄
Select * from class
1)步驟:略
2)分析剛才寫的查詢命令:
SELECT:表示這是一個查詢語句
*:表示顯示出符合條件記錄的所有字段內容,如果在這輸入的是一些逗號分隔的字段名,則查詢結果只顯示響應字段的內容。
FROM:表示從哪個表里查詢。
3)寫SQL命令時應注意的事項:
命令必須是英文的半角字母
字符型數據要用英文的單引號包含起來。
設計思路:
這既是課堂重點也是難點,通過兩個層次推進的設疑,教師適當地理解、演示,使學生對SQL查詢語言已消除了陌生感,并有了一定的理解。
2. 嘗試練習
任務二:
查詢表中頭三條記錄
通過本例講解讓學生掌握TOP關鍵字的用法
任務三:
查詢姓名和年齡兩列數據
通過本例講解讓學生掌握部分字段內容的查詢
任務四:
查詢年齡大于等于17而小于等于19的數據
通過本例講解,讓學生掌握比較運算符和邏輯運算符的應用,以及另一種方法BETWEEN…AND…關鍵字的用法
任務五:
查詢健康狀況為良好的所有數據
通過本例講解,讓學生掌握WHERE關鍵字的用法
任務六:
查詢姓李的學生所有數據
通過本例講解,讓學生掌握LIKE關鍵字的用法
任務七:
查詢健康狀況為良好或一般的數據
通過本例講解,讓學生掌握IN關鍵字的用法
任務八:
查詢中文成績及格的數據
通過本例講解,讓學生掌握比較運算符的應用
任務九:
查詢英語和中文的總成績
通過本例講解,讓學生掌握為派生列起別名的方法
任務十:
學生練習:
查詢一班各位同學的英語、中文成績總分。
任務十一:
將中文成績俺降序排列(升序asc)
通過本例講解,讓學生掌握ORDER BY關鍵字的應用
任務十二:
查詢一班同學中文成績排名狀況(按降序)
通過本例講解,讓學生掌握WHERE條件和ORDER BY關鍵字綜合應用
任務十三
查詢各班中文總成績
通過本例講解,讓學生掌握聚合函數和GROUP BY關鍵字的應用
任務十四
查詢一班中文總成績
通過本例講解,讓學生掌握聚合函數和GROUP BY關鍵字以及HAVING關鍵字的應用 任務十五:
利用class表中的姓名、中文、英文成績創(chuàng)建一個名為jjnn的新表。
通過本例講解,讓學生掌握從源表中篩選一部分數據產生新表的方法。
設計思路:
這個環(huán)節(jié)我拋出了一個個任務,促使學生去自我探索和自主學習,達到掌握操作和使用的目的,激發(fā)學生的學習熱情和創(chuàng)造積極性。
(三)課堂小結,鞏固新知
這節(jié)課我們學習了SQL語言查詢的使用方法,綜合以上任務,不難得出SELECT語句的使用格式和方法(板書SELECT語句的格式):
? 〈SELECT語句〉::=
SELECT [ALL|DISTINCT]〈目標列表達式〉[別名] [ ,〈目標列表達式〉[別
名]]?
FROM 〈表名或視圖名〉[別名][ ,〈表名或視圖名〉[別名]]?
[WHERE〈條件表達式〉]
[GROUP BY 〈列名1〉[HAVING〈條件表達式〉]]
[ORDER BY 〈列名2〉[ASC|DESC]];
? 〈目標列表達式〉::=
*
|〈表名〉.*
|[〈表名〉.]〈列名表達式〉{,[〈表名〉.]〈列名表達式〉}
|〈集函數名〉([DISTINCT|ALL] *|列名)
? 〈集函數名〉::=
COUNT
|SUM
|AVG
|MAX
|MIN
? 〈條件表達式〉::=
1.? θ ?
2.? [NOT] BETWEEN ? AND ?
3.? [NOT] IN(?)
4.? [NOT] LIKE '?'
5.? IS [NOT] NULL
6.[NOT] EXISTS 〈SELECT語句〉
7.〈條件表達式〉〈AND|OR〉〈條件表達式〉
對學生在操作中出現的問題再一次強調書寫命令的注意事項。
六、教學反思
本節(jié)課,我的設計任務與學生的成績有關,容易激起學生很大的關注。隨著任務的深入,學習目標得到很好的落實,力爭以學習目標為起點,又以學習目標為歸宿。學習過程中要時刻關注學生的進展及出現的問題,對于學生的點滴進步給予及時的肯定;對于出現的問題,也是一種動態(tài)生成的教學資源,應善于捕捉,適時提出,引導學生分析并解決,實現“問題從學生中來,最終回到學生中去”,從而完善學生的意義建構。
第四篇:Sql語句查詢
sql語句多表連接查詢
在程序開發(fā)過程中,不僅可以對單一數據表進行查詢,還可以進行多表查詢,用戶通過多表查詢從多個表中提取出需要的數據。
多表查詢可以分為內連接查詢、外連接查詢以及聯合查詢。
1.內連接查詢
連接查詢是指通過各個表之間共同列的關聯性查詢數據。連接查詢分為內連接查詢和外連接查詢。內連接是將兩個相互交叉的數據集合中重疊部分的數據行連接起來,返回表示兩個數據集合之間匹配連接關系的數據行。
可以在FORM子句中使用INNER JOIN?ON?建立內連接,也可以在WHERE子句中指定連接條件建立內連接,例如:
select a.UserName,b.BookName,b.Datetm from UserInfo as a inner join SellSheet as b on a.UserID= b.UserID
也可以用下面的語句實現。
select a.UserName,b.BookName,b.Datetm from UserInfo as a,SellSheet as b where a.UserID=b.UserID
2.外連接查詢
外連接是對內連接的擴充,除了將兩個數據集合中重疊部分以內的數據行連接起來之外,還可以根據要求返回左側或右側數據集合中非匹配的數據,即左外連接(LEFT OUTER JOIN)和右外連接(RIGHT OUTER JOIN)。
l左外連接LEFT OUTER JOIN
左外連接LEFT OUTER JOIN邏輯運算符除了返回兩個數據表中滿足連接條件的行,它還返回任何在后一個數據表中沒有匹配行的前一個數據表中的行。非匹配行的部分字段列作為空值返回。
l右外連接RIGHT OUTER JOIN
右外連接RIGHT OUTER JOIN是左外連接的反向連接。它除了返回兩個數據表中滿足連接條件的行,還返回任何在前一個數據表中沒有匹配行的后一個數據表中的行。非匹配行的部分字段列作為空值返回。
3.使用UNION進行聯合查詢
使用UNION運算符可以進行聯合查詢。UNION運算符連接多個SELECT語句,將兩個或更多查詢的結果組合為單個結果集,該結果集包含聯合查詢中所有查詢的全部行。使用UNION運算符遵循的規(guī)則如下:
(1)在使用UNION運算符組合的語句中,所有選擇列表的表達式數目必須相同(列名、算術表達式、聚集函數等)。
(2)在使用UNION組合的結果集中的相應列必須具有相同數據類型,或者兩種數據類型之間必須存在可能的隱性數據轉換,或者提供了顯式轉換。例如,在datetime數據類型的列和binary數據類型的列之間不能使用UNION運算符,除非提供了顯式轉換,而在money數據類型的列和int數據類型的列之間可以使用UNION運算符,因為它們可以進行隱性轉換。
(3)結果集中列的名字或者別名是由第一個SELECT語句的選擇列表決定的。
注意:對數據表進行聯合查詢時,結果集中行的最大數量是各表行數之“和”,而對數據表進行連接查詢時,結果集中行的最大數量是各表行數之“積”。
第五篇:SQL查詢語句
SQL查詢語句
第一次:查詢(顯示)、條件、排序、空記錄
第二次:通配符、生成表、文件(記事本)、數組、臨時表,數學函數、分組、嵌套查詢
第三次:插入記錄、刪除記錄、更新記錄 第四次:超連接、新建(打開)數據庫、表的建立、表的刪除、第五次 表結構的修改,添加記錄 顯示同張芳同一天出生的學生的信息 格式:
1、查詢(顯示)記錄
顯示所有男學生的學號,姓名,性別 區(qū)分:字段、條件、表名
Select 字段名列表(*)from 表名; where 條件表達式;
into table(dbf)文件名;
into cursor 臨時表名;
into array 數組名;
to file 文件名;
order by 字段名列表(asc desc);
group by 字段名 having 條件;
顯示所有大于平均分的學生的學號、姓名 顯示同E4掙同樣工資的職工信息
Select * from 職工 where 工資=(select 工資 from 職工 where 職工號=”E4”)職工(倉庫號C(10),職工號 C(10),工資 N(10,2))
顯示所有工資大于1500的員工的倉庫號、職工號及所在的城市
2、插入記錄
Insert into 表名(字段名列表)values(記錄值)
3、刪除記錄
Delete from 表名 where 條件
4、更新記錄
Update 表名 set 字段名=記錄值; Where 條件
5、表的刪除
drop table 表名
6、表的建立
create table 表名(字段名 數據類型(寬度))
7、表結構的修改select * from 職工where 職工號!=“E4” AND 工資=(select 工資 from 職工 where 職工號=“E4”)
alter table 表名
1)增加字段
alter table student add 身份證號 c(10)
2)刪除字段
alter table student drop colum 身份證號
3)修改字段名
alter table student rename colum 出生日期 to 出生年月
4)增加字段有效性規(guī)則
alter table student alter 成績 set check 成績>=0 and 成績<=100;
error “成績輸入錯誤,成績應該在0-100之間”
5)刪除字段有效性規(guī)則
alter table student alter 成績 drop check 注意:
以上題目中用到的 SQL語句粘貼到計事本文件XY.TXT中(每行一條語句)。對兩個表操作的方法:
1)同時打開兩個表
select 倉庫.倉庫號,城市,職工號,工資 from 倉庫,職工;
where 職工.倉庫號=倉庫.倉庫號 and 工資=1250
2)超連接(內連接、左連接、右連接、全連
接)
內連接:只顯示符合條件的記錄
左連接:顯示符合條件的記錄及第一個表中不符合條件的記錄
右連接:顯示符合條件的記錄及第二個表中不符合條件的記錄
全連接:顯示符合條件的記錄及第一、二個表中不符合條件的記錄
成績表(score)
學號姓名課程名成績 2001張三計算機10 2003張四英語20 2001張三語言30 2005張三數據40 2003張四計算機50
Select sum(成績)from score group by 學號
Select sum(成績)from score group by 課程名
select 字段名列表(*)from 表名;where 條件;
order by 字段名列表 asc|desc;
into table(dbf)表名;
into array 數組名;
to file 文件名;
into cursor 臨時表名
題目練習
實現以下功能:在考生文件夾下,打開“陶的數據庫”的數據庫,并利用SQL語句在該數據庫中新建一個表:gongzi(職工號 c(4),實發(fā)工資 n(7,0)),將zhigong表中基本工資大于1330(含1330)的記錄存儲在gongzi表中,其中實發(fā)工資為:基本工資+加班費(白天20,晚上30),最后將所有的SQL語句保存到考生目錄下的sqlanswer.txt文件中(自行建立,一行一條語句)
open database 陶的數據庫
create table gongzi(職工號 c(4),基本工資 n(7,2))
select 職工號,基本工資+白班*20+晚班*30 from zhigong;where 基本工資>1350 into array xy
insert into gongzi from array xy