當前位置:首頁 » 編程語言 » sql第四章測試
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql第四章測試

發布時間: 2022-11-26 14:45:36

1. 有關資料庫的作業·~~sql語句題

1.select X.商品代號,分類名,數量,品牌 from商品表1 X,商品表2 Y where X.商品代號=Y.商品代號
找出商品庫裡面所有的商品信息

2.select 專業,count(*) as 專業人數 from學生 group by專業 order by專業人數 desc
找出每個專業的專業人數,並且降序排列

3.select課程.課程號,課程.課程名,count(*) as 選課人數 from課程,選課 where課程.課程號一選課.課程號 group by課程.課程號,課程.課程名
找出每門課程的選修人數

4.
SELECT 商品代號 from 商品表1 group by 商品代號 HAVING SUM(數量) > 10

5.
SELECT * FROM 商品表1 WHERE 單價 > (SELECT AVG(單價) FROM 商品表1)

2. 用SQL做了一個學生成績管理的資料庫,怎麼查詢成績不及格的學生的學號和姓名啊

本論文敘述了我校學成績管理的現狀以及Visual basic6.0語言的概況。重點介紹了學生成績管理系統的實現過程:包括系統分析、 系統調查、 數據流程分析、功能設計、 資料庫設計、 系統物理配置方案、 系統實現、 系統測試和調試。本系統主要功能有用戶管理、學生注冊、班級信息錄入、學生信息錄入、班級課程錄入、學校專業信息錄入、課程信息錄入、學生成績錄入、教師信息錄入、數據。。。。。。。。。。。包括功能需求描述、資料庫設計等內容。第四章介紹了本系統的具體實現。第五章關於本系統開發過程中的結論及體會。

學生成績管理系統,功能,特點,論文內容。

This thesis describes my school the present condition of the score management and the general situation of the Visual basic6.0 languages .The point introced the student the result management system carries out the process 。。。。。。。。。 such as function request description and the database design...etc. .A concrete realization that introced this system .Chapter 5 concerning conclusion within this system development process and realize.

the Student result management system, function, characteristics, thesis contents

目 錄

摘要
.前言
第一章 引言

1.1 開發背景

1.2開發目標

1.3 項目提出的意義

1. 4 系統開發所用的技術准備
第二章 系統分析

2.1系統需求分析

2.1.1系統調查

2.1.2組織機構設置

2.1.3用戶需求

2.1.4系統業務流程圖

2.1.5系統設計思想

2.1.6系統設計分析

2.1.7系統功能分析

2.2新系統邏輯方案

2.2.1數據流圖(簡稱為DFD)

2.2.2數據字典

2.2.3新系統邏輯模型的提出

2.2.4系統邊界

第三章 系統設計

3.1學生成績查詢系統功能需求簡介
3.2功能需求描述
3.3系統目標要求

3.4系統平台選擇
3.5資料庫設計
3.5.1資料庫需求分析

3.5.2資料庫概念結構設計
3.5.3、邏輯結構設計(E-R圖向關系模型的轉換)

第四章 系統實施

4.1各子系統模塊程序設計舉例
4.2 軟體測試的目的和原則
4.3 子系統測試
4.4 軟體運行與轉換

第五章 結 論
致 謝
參考文獻

第一章 引 言
1.1 項目開發背景
幾年前,各個學校的學生成績管理基本上都是靠手工進行,隨著各個學校的規模增大,有關學生成績管理工作所涉及的數據量越來越大,有的學校不得不靠增加人力、物力來進行學生成績管理。但手工管理具有效率底、 。。。。。。。所以我想借本次畢業設計之際,開發一個不僅適用本校各系而且適用於其它各校的通用高校學生成績管理系統。

我選擇母校來設計這個系統主要有兩個原因:

一是:。。。。。。。報。

1.2 項目開發的目標
建立學生成績管理系統,採用計算機對學生成績進行管理,進一步提高辦學效益和現代化水平。幫助廣大教師提高工作效率,實現學生成績信息管理工作流程的系統化、規范化和自動化

1.3 項目提出的意義

現在我國的大中專院校的學生成績管理水平普遍不高,有的還停留在紙介質基礎上,這種管理手段已不能適應時代的發展,因為它浪費了了許多的人力和物力。在當今信息時代這種傳統的管理方法必然被計算機為基礎的信息管理系統所代替。如果本系統能被學校所採用,將會改變以前靠手工管理學生成績的狀況,可以樹立良好的辦學形象,提高工作效率。

1.4 系統開發所用的技術准備
1.4. 1資料庫技術的現狀與發展

資料庫是60年代末出現的一門計算機軟體技術,到現在雖然只有三十多年的歷史,但在理論和時間。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2、信息查詢流圖

使用人員

成績數據表

班級數據表

課程數據表

學生數據表

查詢條件

查詢結果

學生信息錄入

成績信息錄入

班級信息錄入

課程信息錄入

圖2-4 學生信息查詢流圖

3.1學生成績查詢系統功能需求簡介
學生成績查詢系統對學校加強學生成績管理有著極其重要的作用。由於各個大學都在持續擴招,學生的數量日益龐大,傳統的手工成績管理不僅工作量大,而且容易出現問題。
3.2功能需求描述
1、用戶管理功能

用戶分為管理員、教師用戶、學生用戶三類。不論是管理員或教師用戶,還是學生用戶都需要通過用戶名和口令進行登錄。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

按學生角度管理教師可以看到學生信息和成績信息。學生信息包括學號、姓名、班級、生日、性別、地址、電話和簡歷。當教師用滑鼠雙擊某一學生信息時,可以自動顯示出該課程的這個學生所有課程的學習成績,並同時自動計算出這個學生的總分和平均分。在成績信息中,教師可以對學習成績進行增加、修改和刪除。並能夠列印報表。

3、學生對成績的查看功能

學生用戶登錄後,學生可以看到自己的學生信息和成績信息。學生信息包括學號、姓名、班級、生日、性別、地址、電話和簡歷。成績信息包括這個學生的所有課程的成績信息。。。。。。。。。。。。。。。。。。。。。。。。。。

Private Sub CmdOk_Click()
Dim Conn As New ADODB.Connection
Dim mlink As String
mlink = "provider=microsoft.jet.oledb.3.51;data source=score.mdb;"
Conn.Open mlink
『當用戶名密碼為空時給出提示
If Text1.Text = "" Then
MsgBox "請。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
在frmlogin窗體中如果用戶登錄成功,將會出現如圖4-3所示的MDI主窗體。

4-3系統主窗體

若是學生用戶,則有些菜單項不可用,只能運行本系統的部分功能(即重新登錄和信息查詢功能可用)。如圖4-4

Option Explicit

『『『當改變記錄集時,需要刷新整個網格控制項

Sub RefreshGrid()

grdScan.DataMember = ""

grdScan.Refresh

If DataEnv.rssqlStudent.State <> adStateClosed Then DataEnv.rssqlStudent.Close

DataEnv.rssqlStudent.Open

grdScan.DataMember = "sqlStudent"

grdScan.Ref...

本論文敘述了我校學成績管理的現狀以及Visual basic6.0語言的概況。重點介紹了學生成績管理系統的實現過程:包括系統分析、 系統調查、 數據流程分析、功能設計、 資料庫設計、 系統物理配置方案、 系統實現、 系統測試和調試。本系統主要功能有用戶管理、學生注冊、班級信息錄入、學生信息錄入、班級課程錄入、學校專業信息錄入、課程信息錄入、學生成績錄入、教師信息錄入、數據。。。。。。。。。。。包括功能需求描述、資料庫設計等內容。第四章介紹了本系統的具體實現。第五章關於本系統開發過程中的結論及體會。

學生成績管理系統,功能,特點,論文內容。

This thesis describes my school the present condition of the score management and the general situation of the Visual basic6.0 languages .The point introced the student the result management system carries out the process 。。。。。。。。。 such as function request description and the database design...etc. .A concrete realization that introced this system .Chapter 5 concerning conclusion within this system development process and realize.

the Student result management system, function, characteristics, thesis contents

目 錄

摘要
.前言
第一章 引言

1.1 開發背景

1.2開發目標

1.3 項目提出的意義

1. 4 系統開發所用的技術准備
第二章 系統分析

2.1系統需求分析

2.1.1系統調查

2.1.2組織機構設置

2.1.3用戶需求

2.1.4系統業務流程圖

2.1.5系統設計思想

2.1.6系統設計分析

2.1.7系統功能分析

2.2新系統邏輯方案

2.2.1數據流圖(簡稱為DFD)

2.2.2數據字典

2.2.3新系統邏輯模型的提出

2.2.4系統邊界

第三章 系統設計

3.1學生成績查詢系統功能需求簡介
3.2功能需求描述
3.3系統目標要求

3.4系統平台選擇
3.5資料庫設計
3.5.1資料庫需求分析

3.5.2資料庫概念結構設計
3.5.3、邏輯結構設計(E-R圖向關系模型的轉換)

第四章 系統實施

4.1各子系統模塊程序設計舉例
4.2 軟體測試的目的和原則
4.3 子系統測試
4.4 軟體運行與轉換

第五章 結 論
致 謝
參考文獻

第一章 引 言
1.1 項目開發背景
幾年前,各個學校的學生成績管理基本上都是靠手工進行,隨著各個學校的規模增大,有關學生成績管理工作所涉及的數據量越來越大,有的學校不得不靠增加人力、物力來進行學生成績管理。但手工管理具有效率底、 。。。。。。。所以我想借本次畢業設計之際,開發一個不僅適用本校各系而且適用於其它各校的通用高校學生成績管理系統。

我選擇母校來設計這個系統主要有兩個原因:

一是:。。。。。。。報。

1.2 項目開發的目標
建立學生成績管理系統,採用計算機對學生成績進行管理,進一步提高辦學效益和現代化水平。幫助廣大教師提高工作效率,實現學生成績信息管理工作流程的系統化、規范化和自動化。

1.3 項目提出的意義

現在我國的大中專院校的學生成績管理水平普遍不高,有的還停留在紙介質基礎上,這種管理手段已不能適應時代的發展,因為它浪費了了許多的人力和物力。在當今信息時代這種傳統的管理方法必然被計算機為基礎的信息管理系統所代替。如果本系統能被學校所採用,將會改變以前靠手工管理學生成績的狀況,可以樹立良好的辦學形象,提高工作效率。

1.4 系統開發所用的技術准備
1.4. 1資料庫技術的現狀與發展

資料庫是60年代末出現的一門計算機軟體技術,到現在雖然只有三十多年的歷史,但在理論和時間。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2、信息查詢流圖

使用人員

成績數據表

班級數據表

課程數據表

學生數據表

查詢條件

查詢結果

學生信息錄入

成績信息錄入

班級信息錄入

課程信息錄入

圖2-4 學生信息查詢流圖

3.1學生成績查詢系統功能需求簡介
學生成績查詢系統對學校加強學生成績管理有著極其重要的作用。由於各個大學都在持續擴招,學生的數量日益龐大,傳統的手工成績管理不僅工作量大,而且容易出現問題。
3.2功能需求描述
1、用戶管理功能

用戶分為管理員、教師用戶、學生用戶三類。不論是管理員或教師用戶,還是學生用戶都需要通過用戶名和口令進行登錄。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

按學生角度管理教師可以看到學生信息和成績信息。學生信息包括學號、姓名、班級、生日、性別、地址、電話和簡歷。當教師用滑鼠雙擊某一學生信息時,可以自動顯示出該課程的這個學生所有課程的學習成績,並同時自動計算出這個學生的總分和平均分。在成績信息中,教師可以對學習成績進行增加、修改和刪除。並能夠列印報表。

3、學生對成績的查看功能

學生用戶登錄後,學生可以看到自己的學生信息和成績信息。學生信息包括學號、姓名、班級、生日、性別、地址、電話和簡歷。成績信息包括這個學生的所有課程的成績信息。。。。。。。。。。。。。。。。。。。。。。。。。。

Private Sub CmdOk_Click()
Dim Conn As New ADODB.Connection
Dim mlink As String
mlink = "provider=microsoft.jet.oledb.3.51;data source=score.mdb;"
Conn.Open mlink
『當用戶名密碼為空時給出提示
If Text1.Text = "" Then
MsgBox "請。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
在frmlogin窗體中如果用戶登錄成功,將會出現如圖4-3所示的MDI主窗體。

4-3系統主窗體

若是學生用戶,則有些菜單項不可用,只能運行本系統的部分功能(即重新登錄和信息查詢功能可用)。如圖4-4

Option Explicit

『『『當改變記錄集時,需要刷新整個網格控制項

Sub RefreshGrid()

grdScan.DataMember = ""

grdScan.Refresh

If DataEnv.rssqlStudent.State <> adStateClosed Then DataEnv.rssqlStudent.Close

DataEnv.rssqlStudent.Open

grdScan.DataMember = "sqlStudent"

grdScan.Ref...
另外,虛機團上產品團購,超級便宜

3. 根據主教材第四章所給的商品庫和教學庫,按照下列所給的每條SQL查詢語句寫出相應的功能。

收起 根據主教材第四章所給的商

4. 根據主教材第四章,寫出相應的sql,從課程表中查詢出課程學分大於等於5的所有記

select*fromcoursewheregrade>=5;
--course課程表,grade課程學分

5. 基於SQL的畢業論文選題管理系統的設計與實現的 論文答辯問題

管理系統的
有點多了。
要求

6. SQL測試:查詢語句

因為SQL中的記錄是沒有記錄號的概念,也就是沒有先後次序的概念,所以要取其中20~40條記錄是沒有好的辦法的。

如果確實有這種需求,那麼在做系統設計時就要注意,然後把它轉化為別的需求,再不就是自行增加一個類似記錄號的欄位,來滿足需求。

對於已有的數據,卻沒有類似記錄號的欄位,實現起來可就真是麻煩了!
並且SQL無法實現這種帶變數的查詢語句:Select top @num * from [tablename],會報錯的!

有一個實現方法是:將數據放到一個臨時表中,臨時表比實際表多一個整型定做,再用循環給所有記錄編上序號放在這個整型欄位中,最後查詢這個欄位在一定范圍的值。
如下是寫入序號的關鍵語句(不建議用游標,太耗資源),假設表的主鍵欄位名叫[item],臨時表的序號存放在欄位[ID]中,要求查詢的最小與最大序號為@min和@max(在存儲過程中由參數傳入)

declare @i int, @key int, @max int, @min int
select *, 0 as [id] into [#tablename] from [tablename]
set @i=1
while 1=1 begin
set @key=(select top 1 [item] from [#tablename] where [id]=0 order by item)
if @key is null break
else begin
update [#tablename] set [id]=@i where [item]=@key
set @i=@i+1
end
end

--最後的查詢語句:
select * from [#tablename] where [id] between @min and @max order by [item]

7. 求做一道SQL語句題

常用sql語句查詢
SQL分類:
DDL—數據定義語言(CREATE,ALTER,DROP,DECLARE)
DML—數據操縱語言(SELECT,DELETE,UPDATE,INSERT)
DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)

首先,簡要介紹基礎語句:

1、說明:創建資料庫

CREATE DATABASE database-name

2、說明:刪除資料庫

drop database dbname

3、說明:備份sql server

--- 創建 備份數據的 device

USE master
EXEC sp_admpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'

--- 開始 備份

BACKUP DATABASE pubs TO testBack

4、說明:創建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根據已有的表創建新表:

A:create table tab_new like tab_old (使用舊表創建新表)
B:create table tab_new as select col1,col2… from tab_old definition only

5、說明:

刪除新表:drop table tabname

6、說明:

增加一個列:Alter table tabname add column col type

註:列增加後將不能刪除。DB2中列加上後數據類型也不能改變,唯一能改變的是增加varchar類型的長度。

7、說明:

添加主鍵:Alter table tabname add primary key(col)

說明:

刪除主鍵:Alter table tabname drop primary key(col)

8、說明:

創建索引:create [unique] index idxname on tabname(col….)

刪除索引:drop index idxname

註:索引是不可更改的,想更改必須刪除重新建。

9、說明:

創建視圖:create view viewname as select statement

刪除視圖:drop view viewname
10、說明:幾個簡單的基本的sql語句

選擇:select * from table1 where 范圍

插入:insert into table1(field1,field2) values(value1,value2)

刪除:delete from table1 where 范圍

更新:update table1 set field1=value1 where 范圍

查找:select * from table1 where field1 like 』%value1%』 ---like的語法很精妙,查資料!

排序:select * from table1 order by field1,field2 [desc]

總數:select count * as totalcount from table1

求和:select sum(field1) as sumvalue from table1

平均:select avg(field1) as avgvalue from table1

最大:select max(field1) as maxvalue from table1

最小:select min(field1) as minvalue from table1

11、說明:幾個高級查詢運算詞

A: UNION 運算符

UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。

B: EXCEPT 運算符

EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。

C: INTERSECT 運算符

INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重復行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。

註:使用運算詞的幾個查詢結果行必須是一致的。

12、說明:使用外連接

A、left outer join:

左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。

SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

B:right outer join:

右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。

C:full outer join:

全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。

其次,大家來看一些不錯的sql語句

1、說明:復製表(只復制結構,源表名:a 新表名:b) (Access可用)

法一:select * into b from a where 1<>1

法二:select top 0 * into b from a

2、說明:拷貝表(拷貝數據,源表名:a 目標表名:b) (Access可用)

insert into b(a, b, c) select d,e,f from b;

3、說明:跨資料庫之間表的拷貝(具體數據使用絕對路徑) (Access可用)

insert into b(a, b, c) select d,e,f from b in 『具體資料庫』 where 條件

例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..

4、說明:子查詢(表名1:a 表名2:b)

select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)

5、說明:顯示文章、提交人和最後回復時間

select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

6、說明:外連接查詢(表名1:a 表名2:b)

select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

7、說明:在線視圖查詢(表名1:a )

select * from (SELECT a,b,c FROM a) T where t.a > 1;

8、說明:between的用法,between限制查詢數據范圍時包括了邊界值,not between不包括

select * from table1 where time between time1 and time2

select a,b,c, from table1 where a not between 數值1 and 數值2

9、說明:in 的使用方法

select * from table1 where a [not] in (『值1』,』值2』,』值4』,』值6』)

10、說明:兩張關聯表,刪除主表中已經在副表中沒有的信息

delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

11、說明:四表聯查問題:

select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

12、說明:日程安排提前五分鍾提醒

SQL: select * from 日程安排 where datediff('minute',f開始時間,getdate())>5

13、說明:一條sql 語句搞定資料庫分頁

select top 10 b.* from (select top 20 主鍵欄位,排序欄位 from 表名 order by 排序欄位 desc) a,表名 b where b.主鍵欄位 = a.主鍵欄位 order by a.排序欄位

14、說明:前10條記錄

select top 10 * form table1 where 范圍

15、說明:選擇在每一組b值相同的數據中對應的a最大的記錄的所有信息(類似這樣的用法可以用於論壇每月排行榜,每月熱銷產品分析,按科目成績排名,等等.)

select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

16、說明:包括所有在 TableA 中但不在 TableB和TableC 中的行並消除所有重復行而派生出一個結果表

(select a from tableA ) except (select a from tableB) except (select a from tableC)

17、說明:隨機取出10條數據

select top 10 * from tablename order by newid()

18、說明:隨機選擇記錄

select newid()

19、說明:刪除重復記錄

Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

20、說明:列出資料庫里所有的表名

select name from sysobjects where type='U'

21、說明:列出表裡的所有的

select name from syscolumns where id=object_id('TableName')

22、說明:列示type、vender、pcs欄位,以type欄位排列,case可以方便地實現多重選擇,類似select 中的case。

select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type

顯示結果:

type vender pcs
電腦 A 1
電腦 A 1
光碟 B 2
光碟 A 2
手機 B 3
手機 C 3

23、說明:初始化表table1

TRUNCATE TABLE table1

24、說明:選擇從10到15的記錄

select top 5 * from (select top 15 * from table order by id asc) table_別名 order by id desc

隨機選擇資料庫記錄的方法(使用Randomize函數,通過SQL語句實現)

對存儲在資料庫中的數據來說,隨機數特性能給出上面的效果,但它們可能太慢了些。你不能要求ASP「找個隨機數」然後列印出來。實際上常見的解決方案是建立如下所示的循環:

Randomize
RNumber = Int(Rnd*499) +1

While Not objRec.EOF
If objRec("ID") = RNumber THEN
... 這里是執行腳本 ...
end if
objRec.MoveNext
Wend

這很容易理解。首先,你取出1到500范圍之內的一個隨機數(假設500就是資料庫內記錄的總數)。然後,你遍歷每一記錄來測試ID 的值、檢查其是否匹配RNumber。滿足條件的話就執行由THEN 關鍵字開始的那一塊代碼。假如你的RNumber 等於495,那麼要循環一遍資料庫花的時間可就長了。雖然500這個數字看起來大了些,但相比更為穩固的企業解決方案這還是個小型資料庫了,後者通常在一個資料庫內就包含了成千上萬條記錄。這時候不就死定了?

採用SQL,你就可以很快地找出准確的記錄並且打開一個只包含該記錄的recordset,如下所示:

Randomize
RNumber = Int(Rnd*499) + 1

SQL = "SELECT * FROM Customers WHERE ID = " & RNumber

set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")

不必寫出RNumber 和ID,你只需要檢查匹配情況即可。只要你對以上代碼的工作滿意,你自可按需操作「隨機」記錄。Recordset沒有包含其他內容,因此你很快就能找到你需要的記錄這樣就大大降低了處理時間。

再談隨機數

現在你下定決心要榨乾Random 函數的最後一滴油,那麼你可能會一次取出多條隨機記錄或者想採用一定隨機范圍內的記錄。把上面的標准Random 示例擴展一下就可以用SQL應對上面兩種情況了。

為了取出幾條隨機選擇的記錄並存放在同一recordset內,你可以存儲三個隨機數,然後查詢資料庫獲得匹配這些數字的記錄:

SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3

假如你想選出10條記錄(也許是每次頁面裝載時的10條鏈接的列表),你可以用BETWEEN 或者數學等式選出第一條記錄和適當數量的遞增記錄。這一操作可以通過好幾種方式來完成,但是 SELECT 語句只顯示一種可能(這里的ID 是自動生成的號碼):
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"

注意:以上代碼的執行目的不是檢查資料庫內是否有9條並發記錄。

隨機讀取若干條記錄,測試過

Access語法:SELECT top 10 * From 表名 ORDER BY Rnd(id)
Sql server:select top n * from 表名 order by newid()
mysql select * From 表名 Order By rand() Limit n

Access左連接語法(最近開發要用左連接,Access幫助什麼都沒有,網上沒有Access的SQL說明,只有自己測試, 現在記下以備後查)

語法 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...

使用SQL語句 用...代替過長的字元串顯示

語法:

SQL資料庫:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename
Access資料庫:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;

Conn.Execute說明

Execute方法

該方法用於執行SQL語句。根據SQL語句執行後是否返回記錄集,該方法的使用格式分為以下兩種:

1.執行SQL查詢語句時,將返回查詢得到的記錄集。用法為:

Set 對象變數名=連接對象.Execute("SQL 查詢語言")

Execute方法調用後,會自動創建記錄集對象,並將查詢結果存儲在該記錄對象中,通過Set方法,將記錄集賦給指定的對象保存,以後對象變數就代表了該記錄集對象。

2.執行SQL的操作性語言時,沒有記錄集的返回。此時用法為:

連接對象.Execute "SQL 操作性語句" [, RecordAffected][, Option]

·RecordAffected 為可選項,此出可放置一個變數,SQL語句執行後,所生效的記錄數會自動保存到該變數中。通過訪問該變數,就可知道SQL語句隊多少條記錄進行了操作。

·Option 可選項,該參數的取值通常為adCMDText,它用於告訴ADO,應該將Execute方法之後的第一個字元解釋為命令文本。通過指定該參數,可使執行更高效。

·BeginTrans、RollbackTrans、CommitTrans方法

這三個方法是連接對象提供的用於事務處理的方法。BeginTrans用於開始一個事物;RollbackTrans用於回滾事務;CommitTrans用於提交所有的事務處理結果,即確認事務的處理。

事務處理可以將一組操作視為一個整體,只有全部語句都成功執行後,事務處理才算成功;若其中有一個語句執行失敗,則整個處理就算失敗,並恢復到處里前的狀態。

BeginTrans和CommitTrans用於標記事務的開始和結束,在這兩個之間的語句,就是作為事務處理的語句。判斷事務處理是否成功,可通過連接對象的Error集合來實現,若Error集合的成員個數不為0,則說明有錯誤發生,事務處理失敗。Error集合中的每一個Error對象,代表一個錯誤信息。

8. sql語句相關測試

sql語句相關測試

篇一:SQL語句測試

1、(10分)要求:

選擇受理時間在2008-5-1 到 2008-6-1之間的所有申請人姓氏為「劉」的數據,並把「新受理編號」列表示成當前機器時間的年月和原受理編號年月後的數值組合

格式如下:

受理編號,新受理編號,受理時間, 申請人

200801112 201008112 2008-01-13劉XX

需要的表

I_Optinst 業務實例表

REGDATE(受理日期)

Regnum(受理編號)

Proposer(申請人)

解答:select Regnum as 受理編號, as 新受理編號,REGDATE as 受理時間,Proposer as申請人 from Optinst 2、(15分)要求:

前提:只統計業務小類「存量房買賣」

①按照月份分12月列出2008年每個月份的月份對應月份的交易總面積

②按照月份分12月列出2008年每個月份的月份對應月份的交易均價(申報價格/建築面積)

格式

年度月份 交易總面積 年度月份交易均價(元/平方米)

2008-01 23232 2008-01 2323

2008-02 23232008-02 232

2008-03 232323 2008-03 7656

2008-04 232323 2008-03 565

2008-05 232323 2008-03 5656

2008-06 232323 2008-03 565

2008-07 232323 2008-03 67

2008-08 232323 2008-03 676

2008-09 232323 2008-03 6767

2008-10 232323 2008-03 8686

2008-11 232323 2008-03 867

2008-12 232323 2008-03 454

需要的表:

Fc_room 房間表

BAREA(建築面積)

I_Optinst業務實例表

regdate(受理時間)

fc_owner 產權表

COSTVAL(申報價格)

EVLVAL(評估價格)

fc_owoom 房間明細表

1.select regdate as年度月份,BAREA as 交易總面積 from Fc_room,Optinst where

3、(20分)要求:

①:按照時間統計收費明細 統計格式如下

受理編號繳費人收費日期 收費名稱收費金額核費人收費人

②:按照時間匯總(2008年度)統計收費項目分類 統計格式如下

收費名稱 總金額

需要的表:

I_OptInst(業務實例表)

Regnum 受理編號

Proposer 申請人

I_Charge(收費實例表)

HEFEIMAN 核費人

PAYEE 收款人

CDATE 收費日期

I_ChrDtl(收費實例明細表

CNAME 收費名稱

MONEY 收費金額

4、(15分)要求:用途是住宅並且建築面積<=140>140 定義為 「非普通住宅」

用途是商業並且建築面積>140 定義為 「商業A級」

其他情況定義為「非住宅」

根據用途和面積列表出所有數據

格式

受理編號, 用途

200406000386 普通住宅

200406004631 非普通住宅

200406004633 普通住宅

200406004638 普通住宅

200406004641 非住宅

200501000004 普通住宅

200406004568 非住宅

200406005677 商業A級

表:

fc_room

barea 建築面積

BUse 用途

i_optinst

regnum 受理編號

5、(30分)工作量統計

① 選擇出以下格式的數據;並創建視圖名稱為view_AAAA

業務小類業務實例 交易價格建築面積 登記時間

1 存量房買賣 14100 19400.0029.98 2005-11-10 11:32:50 2 新建商品房 15041 229530.00 124.07 2005-11-21 08:59:36 3 新建商品房 15043 177363.00 101.35 2005-11-21 09:15:59 4 新建商品房 13046 71130.0023.71 2005-11-02 10:15:37 5 新建商品房 11280 148563.00 87.39 2005-10-11 09:50:48 6 新建商品房 11353 267369.00 116.04 2005-10-11 15:34:53 7 房改售房 2689 35.22 2004-06-17 08:43:00 8 產權人名稱變更 11701 724.18 2005-10-17 10:05:20 9 新建商品房 7206 158257.00 88.69 2005-09-16 14:50:57 10 存量房買賣 (轉 載於:wWw.cnboThwiN.cOM 博 威範文 網: sql語句測試 )10100 103.07 2005-08-31 20:27:06 11 存量房買賣 12980 51500.0046.66 2005-11-01 14:41:32 12 新建商品房 13000 136782.00 80.46 2005-11-01 15:37:05 13 新建商品房 16946 300844.00 146.33 2005-12-15 14:15:07 14 存量房買賣 10091 509.18 2005-08-31 19:19:25 ② 使用視圖 view_AAAA 當做表 選擇出如下樣式數據

業務小類 件數合計金額 合計面積

1 用途變更 1151.3

2 轉移登記 184.03

3 新建商品房 31 263243643197.34

4 房改售房 8252.43

5 產權人名稱變更 3 778.6

6 單位產新建 311697.49

7 贈與 1 28.48

8 存量房買賣 24 4379004134.67

9 判決仲裁 2 439.41

10 繼承遺贈 1 49.17

11 換證 2 228.88

12 新建房屋 17 928.91

③ 用水晶報表關聯視圖 view_AAAA 設計出類似於②的數據格式 需要的表

FC_Owner

EvlVal交易價格

I_OptInst,

SOName 業務小類

fc_owoom,

BArea 建築面積

FC_Room

regdate 受理日期

篇二:sql查詢語句學習測試答案

第一部分SQL查詢語句的學習

單表查詢 1、--查詢訂購日期在1996年7月1日至1996年7月15日之間的訂單的訂購日期、訂單ID、客戶ID和雇員ID等欄位的值

use eee

SELECT 訂購日期,訂單ID,客戶ID,

雇員ID

FROM 訂單

WHERE 訂購日期BETWEEN '1996-7-1 00:00:00' AND '1996-7-15 23:59:59'

2、--查詢「Northwind」示例資料庫中供應商的ID、公司名稱、地區、城市和電話欄位的值。條件是「地區等於華北」並且「聯系人頭銜等於銷售代表」。

use eee

SELECT 供應商ID,公司名稱,地區,城市,電話

FROM 供應商

WHERE 地區='華北' AND 聯系人職務='銷售代表'

3、--查詢「Northwind」示例資料庫中供應商的ID、公司名稱、地區、城市和電話欄位的值。其中的一些供應商位於華東或華南地區,另外一些供應商所在的城市是天津 use eee

SELECT 供應商ID,公司名稱,地區,城市,電話

FROM 供應商

WHERE 地區IN('華東', '華南') OR 城市='天津'

4、--查詢「Northwind」示例資料庫中位於「華東」或「華南」地區的供應商的ID、公司名稱、地區、城市和電話欄位的值

use eee

SELECT 供應商ID,公司名稱,地區,城市,電話

FROM 供應商

WHERE 地區IN('華東', '華南')

多表查詢 5、--查詢訂購日期在1996年7月1日至1996年7月15日之間的訂單的訂購日期、訂單ID、相應訂單的客戶公司名稱、負責訂單的雇員的姓氏和名字等欄位的值,並將查詢結果按雇員的「姓氏」和「名字」欄位的升序排列,「姓氏」和「名字」值相同的記錄按「訂單 ID」的降序排列

use eee

SELECT 訂購日期,訂單ID,公司名稱,姓氏,名字

FROM 訂單,雇員,客戶

WHERE 訂購日期BETWEEN '1996-7-1 00:00:00' AND '1996-7-15 23:59:59'

AND 訂單.雇員ID = 雇員.雇員ID

AND 訂單.客戶ID = 客戶.客戶ID

ORDER BY 姓氏,名字ASC,訂單ID DESC

6、--查詢「10248」和「10254」號訂單的訂單ID、運貨商的公司名稱、訂單上所訂購的產品的名稱

use eee

SELECT 訂單.訂單ID,公司名稱,產品名稱

FROM 訂單,運貨商,產品,訂單明細

WHERE 訂單.訂單ID IN('10248','10254')

AND 訂單.訂單ID = 訂單明細.訂單ID

AND 訂單明細.產品ID = 產品.產品ID

AND

訂單.運貨商= 運貨商.運貨商ID

7、--查詢「10248」和「10254」號訂單的訂單ID、訂單上所訂購的產品的名稱、數量、單價和折扣

use eee

SELECT 訂單.訂單ID,產品名稱,數量,訂單明細.單價,折扣

FROM 訂單,產品,訂單明細

WHERE 訂單.訂單ID IN('10248','10254')

AND 訂單.訂單ID = 訂單明細.訂單ID

AND 訂單明細.產品ID = 產品.產品ID

篇三:sql語句練習題及答案

一 在資料庫 school 中建立student , sc, course 表。

學生表、課程表、選課表屬於資料庫 School ,其各自的數據結構如下:

學生 Student (Sno,Sname,Ssex,Sage,Sdept)

課程表 course(Cno,Cname,Cpno,Ccredit)

學生選課 SC(Sno,Cno,Grade)

二 設定主碼

1 Student表的主碼:sno2 Course表的主碼:cno 3 Sc表的主碼:sno,cno

1寫出使用 Create Table 語句創建表 student , sc, course 的SQL語句

2

3 刪除student表中的元組

4在資料庫school中刪除關系student

5在student表添加屬性sbirthdate 類型 datetime

Delete

1 刪除所有 JSJ 系的男生 from Student where Sdept=』JSJ』 and Ssex=』男』; 2 刪除「資料庫原理」的課的選課紀錄

from SC where Cno in (select Cno fromCourse where Cname=』資料庫原理』);

Update

1 修改 0001 學生的系科為: JSJ

2 把陳小明的年齡加1歲,性別改為女。 2 修改李文慶的1001課程的成績為 93 分 3 把「資料庫原理」課的成績減去1分

Select 查詢語句

一 單表

1查詢年齡在19至21歲之間的女生的學號,姓名,年齡,按年齡從大到小排列。 2查詢姓名中第2個字為「明」字的學生學號、性別。 3查詢 1001課程沒有成績的學生學號、課程號

4查詢JSJ 、SX、WL 系的年齡大於25歲的學生學號,姓名,結果按系排列 5按10分制查詢學生的sno,cno,10分製成績

(1-10分 為1 ,11-20分為2 ,30-39分為3,。。。90-100為10) 6查詢 student 表中的學生共分布在那幾個系中。(distinct) 7查詢0001號學生1001,1002課程的成績。

二 統計

1查詢姓名中有「明」字的學生人數。 2計算『JSJ』系的平均年齡及最大年齡。 3查詢學生中姓名為張明、趙英的人數

4計算每一門課的總分、平均分,最高分、最低分,按平均分由高到低排列 5 計算 1001,1002 課程的'平均分。

6 查詢平均分大於80分的學生學號及平均分 7 統計選修課程超過 2 門的學生學號

8 統計有10位成績大於85分以上的課程號。 9 統計平均分不及格的學生學號

10 統計有大於兩門課不及格的學生學號

三 連接

1查詢 JSJ 系的學生選修的課程號

2查詢選修1002 課程的學生的學生姓名 (不用嵌套及嵌套2種方法) 3查詢資料庫原理不及格的學生學號及成績

4查詢選修「資料庫原理」課且成績 80 以上的學生姓名(不用嵌套及嵌套2種方法) 5查詢平均分不及格的學生的學號,姓名,平均分。 6查詢女學生平均分高於75分的學生姓名。

7查詢男學生學號、姓名、課程號、成績。(一門課程也沒有選修的男學生也要列出,不能

四 嵌套、相關及其他

1 查詢平均分不及格的學生人數

2 查詢沒有選修1002 課程的學生的學生姓名

3 查詢平均分最高的學生學號及平均分 (2種方法 TOP , any , all) *4 查詢沒有選修1001,1002課程的學生姓名。

5 查詢1002課程第一名的學生學號(2種方法) 6 查詢平均分前三名的學生學號

7 查詢 JSJ 系的學生與年齡不大於19歲的學生的差集

8 查詢1001號課程大於90分的學生學號、姓名及平均分大於85分的學生學號、姓名 9 查詢每門課程成績都高於該門課程平均分的學生學號 10 查詢大於本系科平均年齡的學生姓名

答案

參考答案

1 create table student (sno6), sname var8), ssex2), sagesmallint, sdept var15), primary key(sno));

create table sc

(sno6), cno 4),

grade decimal(12,2), primary key(sno,cno));

into student

values( 』4001』,』趙茵』,』男』,20,』SX』)

from student

student

alter table student add sbirthdate datetime

1 select sno, sname, sage from student

where ssex=』女』 and sage between 19 and 21order by sage desc; 2 select sno, ssexfrom student

where sname like 』_明% 』 ; 3 select sno, cnofrom sc

where grade is null and cno=』1001』 ; 4 select sno, sname from student

where sdept in (』JSJ』,』SX』,』WL』) and sage>25 group by sdept;

select sno, cno, grade/10.0+1 as levelfrom sc ;

select distinct sdept from student ; select grade from sc

where sno=』0001』 and (cno=』1001』 or cno=』1002』) ;

select count(*) from student where sname like 』%明% 』 ; select avg(sage),max(sage) from student where sdept=』JSJ』 ; select cno,sum(grade),avg(grade),max(grade),min(grade) from sc group by cno

order by avg(grade) desc ;

select cno, avg(grade) from sc where cno in(『1001』,』1002』) group by cno ;

select sc.sno ,avg(grade) from scgroup by sc.sno

having avg(grade)>80 ;

select sno from sc group by sno having count(*)>2 ;

select cno from sc where grade>85 group by cno having count(*)=10 ; select sno from sc group by sno having avg(grade)<60 ;

select sno from sc where grade<60 group="" by="" sno="" having="">2 ;

select cno from student,sc where student.sno=sc.sno and sdept=』JSJ』 ; a:select sname from student,sc where student.sno=sc.sno and cno=』1002』

b:select sname from student where sno in (select sno from sc where cno=』1002』)

select sno,grade from sc,course

where sc.cno=course.cno and cname=』資料庫原理』 and grade<60 a:select sname from student ,sc,course

where student.sno=sc.sno and sc.cno=course.cno and grade>80 and cname=』 資料庫原理』 b:select sname from student where sno in (select sno from sc where grade>80 and cno in (select cno from course where cname=』 資料庫原理』)) select sno,sname,avg(grade) from sc,studentwhere student.sno=sc.snogroup by student.sno having avg(grade)<60

a:select sname from student where ssex=』女』 and sno in(select sno from sc group by sno having avg(grade)>75)

b:select sname from sc,student where student.sno=sc.sno and ssex=』女』group by student.sno having avg(grade)>75

select student.sno,sname,cno,grade from student left join sc on student.sno=sc.sno and ssex=』男』

select count(*) from student where sno in( select sno from sc group by sno havingavg(grade)<60)

select sname from student where sno not in(select sno from sc where cno=』1002』)

student

0001 aaX 0002 bb

0003 ccX Sc

0001 1001 0001 1002 0002 1001 0003 1002

Select sname from student where not exists(select* from sc where cno=』1002』 and sc.sno=student.sno)

a:select top 1 sno,avg(grade) from sc group by sno order by avg(grade) desc b:select sno, avg(grade) from sc group by sno

having avg(grade)=(select top 1 avg(grade) from scgroup by sno order by avg(grade) desc) c:select sno, avg(grade) from sc group by sno

having avg(grade)>=all ( select avg(grade) from sc group by sno)

select sname from student where not exists(

select * from course where cno in(『1001』,』1002』) and

not exists(select * from sc where sno =student.sno and cno=course.cno) ) a:select top 1 sno from sc cno=』1002』 order by grade desc b:select sno from sc where cno=』1002』 and grade >=all (

;