第一篇:SQL常用查詢總結(jié)
1)查詢?nèi)w學(xué)生的學(xué)號(hào)、姓名、所在系 select Sno,Sname,Sdept from Student
2)
查詢?nèi)w學(xué)生的詳細(xì)信息
select * from Student
3)
查詢?nèi)w學(xué)生的姓名及其出生日期 select Sname,Sbirthday from Student
4)
查詢軟件工程系全體學(xué)生的名單
select * from Student
where Sdept='軟件工程系'
5)
查詢所有年齡在20歲以下的學(xué)生姓名以及年齡(注:GETDATE()函數(shù)可獲得當(dāng)前的日期,YEAR()函數(shù)可返回日期中的年份)
Select Sname ,(year(getdate())-YEAR(Sbirthday))as age from Student
where(year(getdate())-YEAR(Sbirthday))<20
6)
查詢考試成績不及格的學(xué)生的學(xué)號(hào) select Sno from Score where Grade<60
7)
查詢出生日期在1990年1月1日~1995年12月31日之間的學(xué)生的姓名、所在系和出生日期
select Sname,Sdept,Sbirthday from Student
where Sbirthday between '1990-1-1 0:00:00' and '1995-12-31 0:00:00'
8)
查詢不在信息系、數(shù)學(xué)系也不在軟件工程系學(xué)生的姓名和性別
select Sname,sex from Student
where Sdept not in('信息系','數(shù)學(xué)系','軟件工程系')
9)
查詢所有姓李且全名為三個(gè)漢字的學(xué)生的姓名、學(xué)號(hào)和性別
10)查詢姓名中第2個(gè)字為“陽”字的學(xué)
生的姓名和學(xué)號(hào)
select Sname,Sno
from Student
where Sname like '%陽%'
11)查詢軟件工程系年齡在20歲以下的學(xué)生姓名
Select Sname ,(year(getdate())-YEAR(Sbirthday))as age from Student
where(year(getdate())-YEAR(Sbirthday))<20 and Sdept='軟件工程系'
12)查詢選修了3號(hào)課程的學(xué)生的學(xué)號(hào)
及其成績,查詢結(jié)果按分?jǐn)?shù)的降序排列
select Sno,Grade from Score where Cno=3 order by Grade desc
13)查詢?nèi)w學(xué)生情況,結(jié)果按所在系的升序排列,同一系的按年齡降序排列
select * from Student
order by Sdept asc,Sbirthday desc
14)統(tǒng)計(jì)學(xué)生總?cè)藬?shù)
select Sno from Student compute count(Sno)
15)查詢選修了課程的學(xué)生人數(shù)
select distinct Student.Sno,Score.Sno from Student,Score
where Student.Sno=Score.Sno compute count(Student.Sno)
16)計(jì)算1號(hào)課程的學(xué)生平均成績
select Grade from Score where Cno=1 compute avg(Grade)
17)查詢選修了1號(hào)課程的學(xué)生最高分
數(shù)
select * from Score where Cno=1 compute max(Grade)
18)求各課程號(hào)及相應(yīng)的選課人數(shù)
select Sno,Cno from Score order by Cno
compute count(Sno)by Cno
19)查詢選修了3門以上課程的學(xué)生學(xué)
號(hào)
20)查詢選修2號(hào)課程且成績?cè)?0分以
上的所有學(xué)生的學(xué)號(hào)、姓名
select Student.Sno,Student.Sname from Student,Score
where Student.Sno=Score.Sno and Score.Cno=2 and Score.Grade>90
21)查詢每個(gè)學(xué)生的學(xué)號(hào)、姓名、選修的課程名和成績
select Student.Sno,Student.Sname, Course.Cname,Score.Grade from Course,Score,Student where
Student.Sno=Score.Sno
and
Score.Cno=Course.Cno
22)查詢所有選修了1號(hào)課程的學(xué)生姓
名
select distinct Student.Sno,Score.Sno,Student.Sname from Student,Score
where Student.Sno=Score.Sno and Score.Cno=1
23)查詢選修了課程名為“數(shù)據(jù)庫”的學(xué)
生的學(xué)號(hào)和姓名
select distinct Student.Sno,Student.Sname from Student,Course,Score
where Student.Sno=Score.Sno and Course.Cname='數(shù)據(jù)庫'
第二篇:SQL查詢語言
《SQL查詢語言》教學(xué)設(shè)計(jì)
一、教學(xué)目標(biāo)分析
認(rèn)知目標(biāo)
學(xué)習(xí)SQL查詢語言的使用方法。
掌握SQL語言當(dāng)中的SELECT語句
能力目標(biāo)
培養(yǎng)學(xué)生應(yīng)用查詢語句查詢數(shù)據(jù)的應(yīng)用能力
情感目標(biāo)
體驗(yàn)SQL語言查詢方法
主動(dòng)將數(shù)據(jù)庫管理信息的思想、方法創(chuàng)造性地應(yīng)用到生活、學(xué)習(xí)之中。
二、教學(xué)內(nèi)容分析
課前需要為學(xué)生準(zhǔn)備名為SCHOOL數(shù)據(jù)庫文件,里面放著名為CLASS的表,供學(xué)生練習(xí)使用。提供這個(gè)數(shù)據(jù)庫文件可以避免學(xué)生在建立表以及表中錄入記錄上花費(fèi)太多的時(shí)間,而把重點(diǎn)放在對(duì)本節(jié)內(nèi)容的學(xué)習(xí)上,可以讓教師更好地進(jìn)行目標(biāo)調(diào)控,做到有的放矢。這個(gè)數(shù)據(jù)庫文件放置于網(wǎng)絡(luò)共享文件夾中,并將其快捷方式置于學(xué)生機(jī)的桌面上。教學(xué)重點(diǎn):
1、使用“在設(shè)計(jì)視圖中創(chuàng)建查詢”。
2、SQL查詢語言的格式。
教學(xué)難點(diǎn):
運(yùn)行、調(diào)試SQL命令。
解決措施:
通過老師講解、演示及設(shè)置的任務(wù),讓學(xué)生在學(xué)習(xí)的過程中,自己動(dòng)手,以不斷解決問題為手段,有機(jī)結(jié)合各種知識(shí),以任務(wù)驅(qū)動(dòng)的方式發(fā)展能力,一步步完成學(xué)習(xí)任務(wù)。
三、學(xué)生學(xué)習(xí)狀態(tài)分析
本課的教學(xué)對(duì)象是大二的學(xué)生,由于學(xué)生的理論知識(shí)薄弱,加上數(shù)據(jù)庫比較抽象,比較難理解的特點(diǎn),從而造成學(xué)生對(duì)數(shù)據(jù)庫的認(rèn)識(shí)還很模糊。學(xué)生在本節(jié)課之前,已經(jīng)掌握數(shù)據(jù)庫和表的創(chuàng)建、打開及表中輸入、修改記錄的方法,初步掌握SQL的一些基本操作,在此基礎(chǔ)上,如何學(xué)會(huì)在數(shù)據(jù)庫眾多表中查詢記錄變得至關(guān)重要了,所以為了學(xué)生更好地掌握這一點(diǎn)知識(shí)點(diǎn),應(yīng)廣泛調(diào)動(dòng)他們的學(xué)習(xí)興趣,增強(qiáng)學(xué)習(xí)的主動(dòng)性。
四、教學(xué)策略
職業(yè)技術(shù)學(xué)院課程本身的特點(diǎn)、知識(shí)及技能的傳授應(yīng)以典型“任務(wù)”為主,創(chuàng)造學(xué)生自主探究學(xué)習(xí)的平臺(tái),學(xué)生在教師的指導(dǎo)下帶著任務(wù)通過實(shí)際操作、探究學(xué)習(xí)等方式,逐步完成任務(wù)。
五、教學(xué)過程
合理安排教學(xué)過程是教學(xué)成功的關(guān)鍵。因此,我把教學(xué)過程分為“情境感知,揭示課題——任務(wù)驅(qū)動(dòng),講授新知——課堂小結(jié),鞏固新知”三部分。
(一)情境感知,揭示課題
為了讓同學(xué)們對(duì)自己班級(jí)同學(xué)的情況有所了解,我們?nèi)绾魏啽愕夭樵兡??我們可以通過輸入一些命令解決問題。這些命令就是我們這節(jié)課所要學(xué)習(xí)的SQL查詢語言。設(shè)計(jì)思路:
SQL所包含的數(shù)據(jù)具有一定的規(guī)模,并且能快速地從眾多表中查詢到某個(gè)同學(xué)的情況,讓學(xué)生體會(huì)到數(shù)據(jù)庫在現(xiàn)實(shí)生活中的應(yīng)用。
(二)任務(wù)驅(qū)動(dòng),講授新知
1. 如何在SQL中使用查詢命令?
任務(wù)一:
在SCHOOL數(shù)據(jù)庫的CLASS表中查詢所有的記錄
Select * from class
1)步驟:略
2)分析剛才寫的查詢命令:
SELECT:表示這是一個(gè)查詢語句
*:表示顯示出符合條件記錄的所有字段內(nèi)容,如果在這輸入的是一些逗號(hào)分隔的字段名,則查詢結(jié)果只顯示響應(yīng)字段的內(nèi)容。
FROM:表示從哪個(gè)表里查詢。
3)寫SQL命令時(shí)應(yīng)注意的事項(xiàng):
命令必須是英文的半角字母
字符型數(shù)據(jù)要用英文的單引號(hào)包含起來。
設(shè)計(jì)思路:
這既是課堂重點(diǎn)也是難點(diǎn),通過兩個(gè)層次推進(jìn)的設(shè)疑,教師適當(dāng)?shù)乩斫?、演示,使學(xué)生對(duì)SQL查詢語言已消除了陌生感,并有了一定的理解。
2. 嘗試練習(xí)
任務(wù)二:
查詢表中頭三條記錄
通過本例講解讓學(xué)生掌握TOP關(guān)鍵字的用法
任務(wù)三:
查詢姓名和年齡兩列數(shù)據(jù)
通過本例講解讓學(xué)生掌握部分字段內(nèi)容的查詢
任務(wù)四:
查詢年齡大于等于17而小于等于19的數(shù)據(jù)
通過本例講解,讓學(xué)生掌握比較運(yùn)算符和邏輯運(yùn)算符的應(yīng)用,以及另一種方法BETWEEN…AND…關(guān)鍵字的用法
任務(wù)五:
查詢健康狀況為良好的所有數(shù)據(jù)
通過本例講解,讓學(xué)生掌握WHERE關(guān)鍵字的用法
任務(wù)六:
查詢姓李的學(xué)生所有數(shù)據(jù)
通過本例講解,讓學(xué)生掌握LIKE關(guān)鍵字的用法
任務(wù)七:
查詢健康狀況為良好或一般的數(shù)據(jù)
通過本例講解,讓學(xué)生掌握IN關(guān)鍵字的用法
任務(wù)八:
查詢中文成績及格的數(shù)據(jù)
通過本例講解,讓學(xué)生掌握比較運(yùn)算符的應(yīng)用
任務(wù)九:
查詢英語和中文的總成績
通過本例講解,讓學(xué)生掌握為派生列起別名的方法
任務(wù)十:
學(xué)生練習(xí):
查詢一班各位同學(xué)的英語、中文成績總分。
任務(wù)十一:
將中文成績俺降序排列(升序asc)
通過本例講解,讓學(xué)生掌握ORDER BY關(guān)鍵字的應(yīng)用
任務(wù)十二:
查詢一班同學(xué)中文成績排名狀況(按降序)
通過本例講解,讓學(xué)生掌握WHERE條件和ORDER BY關(guān)鍵字綜合應(yīng)用
任務(wù)十三
查詢各班中文總成績
通過本例講解,讓學(xué)生掌握聚合函數(shù)和GROUP BY關(guān)鍵字的應(yīng)用
任務(wù)十四
查詢一班中文總成績
通過本例講解,讓學(xué)生掌握聚合函數(shù)和GROUP BY關(guān)鍵字以及HAVING關(guān)鍵字的應(yīng)用 任務(wù)十五:
利用class表中的姓名、中文、英文成績創(chuàng)建一個(gè)名為jjnn的新表。
通過本例講解,讓學(xué)生掌握從源表中篩選一部分?jǐn)?shù)據(jù)產(chǎn)生新表的方法。
設(shè)計(jì)思路:
這個(gè)環(huán)節(jié)我拋出了一個(gè)個(gè)任務(wù),促使學(xué)生去自我探索和自主學(xué)習(xí),達(dá)到掌握操作和使用的目的,激發(fā)學(xué)生的學(xué)習(xí)熱情和創(chuàng)造積極性。
(三)課堂小結(jié),鞏固新知
這節(jié)課我們學(xué)習(xí)了SQL語言查詢的使用方法,綜合以上任務(wù),不難得出SELECT語句的使用格式和方法(板書SELECT語句的格式):
? 〈SELECT語句〉::=
SELECT [ALL|DISTINCT]〈目標(biāo)列表達(dá)式〉[別名] [ ,〈目標(biāo)列表達(dá)式〉[別
名]]?
FROM 〈表名或視圖名〉[別名][ ,〈表名或視圖名〉[別名]]?
[WHERE〈條件表達(dá)式〉]
[GROUP BY 〈列名1〉[HAVING〈條件表達(dá)式〉]]
[ORDER BY 〈列名2〉[ASC|DESC]];
? 〈目標(biāo)列表達(dá)式〉::=
*
|〈表名〉.*
|[〈表名〉.]〈列名表達(dá)式〉{,[〈表名〉.]〈列名表達(dá)式〉}
|〈集函數(shù)名〉([DISTINCT|ALL] *|列名)
? 〈集函數(shù)名〉::=
COUNT
|SUM
|AVG
|MAX
|MIN
? 〈條件表達(dá)式〉::=
1.? θ ?
2.? [NOT] BETWEEN ? AND ?
3.? [NOT] IN(?)
4.? [NOT] LIKE '?'
5.? IS [NOT] NULL
6.[NOT] EXISTS 〈SELECT語句〉
7.〈條件表達(dá)式〉〈AND|OR〉〈條件表達(dá)式〉
對(duì)學(xué)生在操作中出現(xiàn)的問題再一次強(qiáng)調(diào)書寫命令的注意事項(xiàng)。
六、教學(xué)反思
本節(jié)課,我的設(shè)計(jì)任務(wù)與學(xué)生的成績有關(guān),容易激起學(xué)生很大的關(guān)注。隨著任務(wù)的深入,學(xué)習(xí)目標(biāo)得到很好的落實(shí),力爭以學(xué)習(xí)目標(biāo)為起點(diǎn),又以學(xué)習(xí)目標(biāo)為歸宿。學(xué)習(xí)過程中要時(shí)刻關(guān)注學(xué)生的進(jìn)展及出現(xiàn)的問題,對(duì)于學(xué)生的點(diǎn)滴進(jìn)步給予及時(shí)的肯定;對(duì)于出現(xiàn)的問題,也是一種動(dòng)態(tài)生成的教學(xué)資源,應(yīng)善于捕捉,適時(shí)提出,引導(dǎo)學(xué)生分析并解決,實(shí)現(xiàn)“問題從學(xué)生中來,最終回到學(xué)生中去”,從而完善學(xué)生的意義建構(gòu)。
第三篇:Sql語句查詢
sql語句多表連接查詢
在程序開發(fā)過程中,不僅可以對(duì)單一數(shù)據(jù)表進(jìn)行查詢,還可以進(jìn)行多表查詢,用戶通過多表查詢從多個(gè)表中提取出需要的數(shù)據(jù)。
多表查詢可以分為內(nèi)連接查詢、外連接查詢以及聯(lián)合查詢。
1.內(nèi)連接查詢
連接查詢是指通過各個(gè)表之間共同列的關(guān)聯(lián)性查詢數(shù)據(jù)。連接查詢分為內(nèi)連接查詢和外連接查詢。內(nèi)連接是將兩個(gè)相互交叉的數(shù)據(jù)集合中重疊部分的數(shù)據(jù)行連接起來,返回表示兩個(gè)數(shù)據(jù)集合之間匹配連接關(guān)系的數(shù)據(jù)行。
可以在FORM子句中使用INNER JOIN?ON?建立內(nèi)連接,也可以在WHERE子句中指定連接條件建立內(nèi)連接,例如:
select a.UserName,b.BookName,b.Datetm from UserInfo as a inner join SellSheet as b on a.UserID= b.UserID
也可以用下面的語句實(shí)現(xiàn)。
select a.UserName,b.BookName,b.Datetm from UserInfo as a,SellSheet as b where a.UserID=b.UserID
2.外連接查詢
外連接是對(duì)內(nèi)連接的擴(kuò)充,除了將兩個(gè)數(shù)據(jù)集合中重疊部分以內(nèi)的數(shù)據(jù)行連接起來之外,還可以根據(jù)要求返回左側(cè)或右側(cè)數(shù)據(jù)集合中非匹配的數(shù)據(jù),即左外連接(LEFT OUTER JOIN)和右外連接(RIGHT OUTER JOIN)。
l左外連接LEFT OUTER JOIN
左外連接LEFT OUTER JOIN邏輯運(yùn)算符除了返回兩個(gè)數(shù)據(jù)表中滿足連接條件的行,它還返回任何在后一個(gè)數(shù)據(jù)表中沒有匹配行的前一個(gè)數(shù)據(jù)表中的行。非匹配行的部分字段列作為空值返回。
l右外連接RIGHT OUTER JOIN
右外連接RIGHT OUTER JOIN是左外連接的反向連接。它除了返回兩個(gè)數(shù)據(jù)表中滿足連接條件的行,還返回任何在前一個(gè)數(shù)據(jù)表中沒有匹配行的后一個(gè)數(shù)據(jù)表中的行。非匹配行的部分字段列作為空值返回。
3.使用UNION進(jìn)行聯(lián)合查詢
使用UNION運(yùn)算符可以進(jìn)行聯(lián)合查詢。UNION運(yùn)算符連接多個(gè)SELECT語句,將兩個(gè)或更多查詢的結(jié)果組合為單個(gè)結(jié)果集,該結(jié)果集包含聯(lián)合查詢中所有查詢的全部行。使用UNION運(yùn)算符遵循的規(guī)則如下:
(1)在使用UNION運(yùn)算符組合的語句中,所有選擇列表的表達(dá)式數(shù)目必須相同(列名、算術(shù)表達(dá)式、聚集函數(shù)等)。
(2)在使用UNION組合的結(jié)果集中的相應(yīng)列必須具有相同數(shù)據(jù)類型,或者兩種數(shù)據(jù)類型之間必須存在可能的隱性數(shù)據(jù)轉(zhuǎn)換,或者提供了顯式轉(zhuǎn)換。例如,在datetime數(shù)據(jù)類型的列和binary數(shù)據(jù)類型的列之間不能使用UNION運(yùn)算符,除非提供了顯式轉(zhuǎn)換,而在money數(shù)據(jù)類型的列和int數(shù)據(jù)類型的列之間可以使用UNION運(yùn)算符,因?yàn)樗鼈兛梢赃M(jìn)行隱性轉(zhuǎn)換。
(3)結(jié)果集中列的名字或者別名是由第一個(gè)SELECT語句的選擇列表決定的。
注意:對(duì)數(shù)據(jù)表進(jìn)行聯(lián)合查詢時(shí),結(jié)果集中行的最大數(shù)量是各表行數(shù)之“和”,而對(duì)數(shù)據(jù)表進(jìn)行連接查詢時(shí),結(jié)果集中行的最大數(shù)量是各表行數(shù)之“積”。
第四篇:SQL查詢語句
SQL查詢語句
第一次:查詢(顯示)、條件、排序、空記錄
第二次:通配符、生成表、文件(記事本)、數(shù)組、臨時(shí)表,數(shù)學(xué)函數(shù)、分組、嵌套查詢
第三次:插入記錄、刪除記錄、更新記錄 第四次:超連接、新建(打開)數(shù)據(jù)庫、表的建立、表的刪除、第五次 表結(jié)構(gòu)的修改,添加記錄 顯示同張芳同一天出生的學(xué)生的信息 格式:
1、查詢(顯示)記錄
顯示所有男學(xué)生的學(xué)號(hào),姓名,性別 區(qū)分:字段、條件、表名
Select 字段名列表(*)from 表名; where 條件表達(dá)式;
into table(dbf)文件名;
into cursor 臨時(shí)表名;
into array 數(shù)組名;
to file 文件名;
order by 字段名列表(asc desc);
group by 字段名 having 條件;
顯示所有大于平均分的學(xué)生的學(xué)號(hào)、姓名 顯示同E4掙同樣工資的職工信息
Select * from 職工 where 工資=(select 工資 from 職工 where 職工號(hào)=”E4”)職工(倉庫號(hào)C(10),職工號(hào) C(10),工資 N(10,2))
顯示所有工資大于1500的員工的倉庫號(hào)、職工號(hào)及所在的城市
2、插入記錄
Insert into 表名(字段名列表)values(記錄值)
3、刪除記錄
Delete from 表名 where 條件
4、更新記錄
Update 表名 set 字段名=記錄值; Where 條件
5、表的刪除
drop table 表名
6、表的建立
create table 表名(字段名 數(shù)據(jù)類型(寬度))
7、表結(jié)構(gòu)的修改select * from 職工where 職工號(hào)!=“E4” AND 工資=(select 工資 from 職工 where 職工號(hào)=“E4”)
alter table 表名
1)增加字段
alter table student add 身份證號(hào) c(10)
2)刪除字段
alter table student drop colum 身份證號(hào)
3)修改字段名
alter table student rename colum 出生日期 to 出生年月
4)增加字段有效性規(guī)則
alter table student alter 成績 set check 成績>=0 and 成績<=100;
error “成績輸入錯(cuò)誤,成績應(yīng)該在0-100之間”
5)刪除字段有效性規(guī)則
alter table student alter 成績 drop check 注意:
以上題目中用到的 SQL語句粘貼到計(jì)事本文件XY.TXT中(每行一條語句)。對(duì)兩個(gè)表操作的方法:
1)同時(shí)打開兩個(gè)表
select 倉庫.倉庫號(hào),城市,職工號(hào),工資 from 倉庫,職工;
where 職工.倉庫號(hào)=倉庫.倉庫號(hào) and 工資=1250
2)超連接(內(nèi)連接、左連接、右連接、全連
接)
內(nèi)連接:只顯示符合條件的記錄
左連接:顯示符合條件的記錄及第一個(gè)表中不符合條件的記錄
右連接:顯示符合條件的記錄及第二個(gè)表中不符合條件的記錄
全連接:顯示符合條件的記錄及第一、二個(gè)表中不符合條件的記錄
成績表(score)
學(xué)號(hào)姓名課程名成績 2001張三計(jì)算機(jī)10 2003張四英語20 2001張三語言30 2005張三數(shù)據(jù)40 2003張四計(jì)算機(jī)50
Select sum(成績)from score group by 學(xué)號(hào)
Select sum(成績)from score group by 課程名
select 字段名列表(*)from 表名;where 條件;
order by 字段名列表 asc|desc;
into table(dbf)表名;
into array 數(shù)組名;
to file 文件名;
into cursor 臨時(shí)表名
題目練習(xí)
實(shí)現(xiàn)以下功能:在考生文件夾下,打開“陶的數(shù)據(jù)庫”的數(shù)據(jù)庫,并利用SQL語句在該數(shù)據(jù)庫中新建一個(gè)表:gongzi(職工號(hào) c(4),實(shí)發(fā)工資 n(7,0)),將zhigong表中基本工資大于1330(含1330)的記錄存儲(chǔ)在gongzi表中,其中實(shí)發(fā)工資為:基本工資+加班費(fèi)(白天20,晚上30),最后將所有的SQL語句保存到考生目錄下的sqlanswer.txt文件中(自行建立,一行一條語句)
open database 陶的數(shù)據(jù)庫
create table gongzi(職工號(hào) c(4),基本工資 n(7,2))
select 職工號(hào),基本工資+白班*20+晚班*30 from zhigong;where 基本工資>1350 into array xy
insert into gongzi from array xy
第五篇:SQL結(jié)構(gòu)化查詢語句
SQL結(jié)構(gòu)化查詢語句
一、數(shù)據(jù)定義功能
創(chuàng)建表:Createtable 表名(字段名……)修改表:Altertable表名
刪除表:Droptable表名
二、數(shù)據(jù)操縱功能
數(shù)據(jù)插入:Insertinto 表名values(…,…,)數(shù)據(jù)更新:Update表名Set表達(dá)式 Where 條件 數(shù)據(jù)刪除:DeleteFrom 表名Where 條件
三、查詢功能
SELECT*FROM表名
WHERE條件
ORDERBY 字段排序
GROUPBY 字段分組
函數(shù):SUM()AVG()COUNT()MAX()MIN()去向:
INTOTABLE表
INTOCURSOR臨時(shí)表
INTOARRAY數(shù)組