国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
SQL練習題

一、基礎知識題

(一)填空題

1、在一個表中主鍵的個數為___ 1_ ______個。

2、企業(yè)管理器是Microsoft SQL Server程序組中的程序之一,是管理________和________的主要工具。

3、觸發(fā)器執(zhí)行時生成的兩個臨時表為____ deleted _________和____insereted________。

4、以SP__作為首部的存儲過程稱為____系統(tǒng)存儲過程______________。

5、命令 truncate table的功能是___ 清空表中的內容 ____________。

6、通過外鍵約束可以為相關聯(lián)的兩個表建立聯(lián)系,實現數據的__________完整

性。

7、SQL Server 2000的文件包括:____ 數據文件_ ________和____日志文件__________。

8、模糊查詢符號 % 代表 ___ _ 零個或者多個任意字符的字符串__ _____ ,符號_ 代表意思是 ______ 任意單個字符 _________。

9、對數據進行統(tǒng)計時,求最大值的函數是___ MAX () ______。

10、視圖是從其它_____ ___________________或視圖導出的虛擬表。

11、在使用Create Index 語句創(chuàng)建簇索引時,需要使用的關鍵字__ clustered_ ______。

12、關系模型中一般講數據完整性分為三類:__ 實體完整性__ _____、_   參照完整性 ____、__ 用戶自定義完整性 ________。

13、創(chuàng)建視圖用___ with encryption_ ____________參數使視圖的定義語句加密。

14、SELECT語句中去除重復記錄的命令是_ _distinct_ ______________。

(二)選擇題

1、在SQL Server 2000中,索引的順序和數據表的物理順序相同的索引是(       )。

(A)聚集索引   (B)非聚集索引   (C)主鍵索引    (D)唯一索引

2、SELECT語句中與HAVING子句通常同時使用的是(  C   )子句。

A.ORDER BY        B.WHERE             C.GROUP BY    D.無需配合

3、在SQL Server 2000中,當數據表被修改時,系統(tǒng)自動執(zhí)行的數據庫對象是(    B     )。

(A)存儲過程    (B)觸發(fā)器    (C)視圖    (D)其他數據庫對象

4、新安裝SQL Server后,默認有六個內置的數據庫,其中的兩個范例數據庫是Pubs和(   A    )。

(A)master   (B)NorthWind    (C)msdb    (D)bookdb

5、對視圖的描述錯誤的是:(     )

(A) 是一張?zhí)摂M的表

(B) 在存儲視圖時存儲的是視圖的定義

(C) 在存儲視圖時存儲的是視圖中的數據

(D) 可以像查詢表一樣來查詢視圖

二、應用題

(一)用T-SQL語句完成下列題目(3小題,每小題5分、共15分)

1 用T-SQL語句創(chuàng)建一個如下要求的數據庫。

創(chuàng)建一個名字為Readbook庫包含一個數據文件和一個日志文件,邏輯文件名為Readbook_data,磁盤文件名為Readbook_data.mdf,文件初始容量為2MB,最大容量為10MB,文件遞增容量為1MB,而事務日志文件的邏輯文件名Readbook_log,磁盤文件名為Readbook_log.ldf,文件初始容量為1MB,最大容量為5MB,文件遞增量為1MB(數據庫創(chuàng)建在D:\SERVER文件夾下)

use   master

go

if   DB_ID   ( N'Readbook' )   is   not   null   drop   database   Readbook

go

create   database   Readbook

on

(

name = Readbook_data ,

filename = 'D:\SERVER\Readbook_data.mdf' ,

size = 3 ,

maxsize = 10 ,

filegrowth = 1

)

log   on

(

name = Readbook_log ,

filename = 'D:\SERVER\Readbook_data.ldf' ,

size = 3 ,

maxsize = 5 ,

filegrowth = 1

)

2、在Readbook數據庫中添加一個新的事務日志文件,邏輯文件名為Readbook2_log, 磁盤文件名為Mybase2_log.ldf,文件初始容量為2MB,最大容量為10MB,文件遞增容量為1MB。

alter   database   Readbook

add   file

(

name = Readbook2_log ,

filename = 'D:\SERVER\Mybase2_log.ldf' ,

size = 3 ,

maxsize = 10 ,

filegrowth = 1

)

3、刪除新添加的事務日志文件Readbook2_log。

USE   master ;

GO

ALTER   DATABASE   Readbook

REMOVE   FILE   Readbook2_log ;

GO

(二)用T-SQL語句完成下列題目

1 、 用T-SQL語句創(chuàng)建一個如下圖所示的數據表,表名為students,建在名為ks的數據庫中:

列名

數據類型及長度

是否為空

備注

學號

CHAR(8)

NO

主鍵

姓名

CHAR(10)

NO

性別

CHAR(2)

NO

只能輸入“男”或“女”

身份證號

CHAR(18)

NO

唯一性約束

系別

CHAR(20)

NO

默認值為”計算機系”

總學分

TINYINT

YES

create   database   ks

go

use   ks

create   table   students

(

學號   char ( 8 )     primary   key ,

姓名   char ( 10 )   not   null,

性別   char ( 2 )   not   null   Check ( 性別 = ' ' or   性別 = ' ' ),

身份證號   char ( 18 )   not   null   unique ,

系別   char ( 20 )   not   null   default   ' 計算機系 ' ,

總學分   tinyint

)

2、向上面的表Students中插入一個‘出生年月’字段,數據類型為datetime。

use   ks

alter   table   students

add   出生年月   datetime

3、將Students表中所有姓王的學生的系別改為‘信息技術系’。

use   ks

update   students   set   系別 = ' 信息技術系 '   where   姓名 = ' %'

4、刪除Students表中所有1985年出生的男學生信息。

use   ks

delete   from   students   where   性別 = ' '   and   出生年月 = year ( '1985' )

(三)根據下列數據庫中表的結構,回答問題(5小題,每小題5分,共25分)

學生: XS(學號char(8) primary key,

姓名char(8),

班級char(10),

性別char(2),

出生日期datetime,

出生城市char(10),

入學成績tinyint)

課程: KC(課程號char(6) primary key,

課程名char(20))

學生選課信息: CJ(學期char(2),

學號char(8) references學生(學號),

課程號char(6) references課程(課程號),

成績tinyint check(成績>=0 and 成績<>

1、 查詢入學成績排名前十的同學的學號、姓名和成績。

select   top  ( 10 )   學號 , 姓名 , 成績

from   cj   join   xs   on   cj . 學號   =   xs . 學號

order   by   成績   desc

2、 計算男女生人數。

use   cjgl

go

select    count (*)   , sex   as   人數   from   student    group   by   sex

3、 統(tǒng)計每個人的平均成績在85分以上同學的平均成績。

select  學號 , AVG ( grade ) as   平均成績   from   cj   group   by  學號  having   AVG ( grade )> 85

4、 查詢未選修”JAVA”課程的學生的基本情況。

  use   ks

select   *   from   xs  

where    exists

( select   *   from   cj   where    cj . 學號   =   學生 . 學號   and   課程號  

in

( select   課程號   from   課程   where   課程名   != 'java' ))

select   *   from   xs

where   學號   not   in

( select   學號   from   cj   where   課程號   in

( select   課程號   from   kc   where   課程名 = 'JAVA' ))

5、 查詢全部學生的學號,姓名,課程號,課程名,成績。

select   xs . 學號 , studentname   , kc . courseID ,  kc . coursename , grade   from   xs   join   cj

on   xs .   學號 = cj .   學號 join   kc    on   kc   .  課程號 = cj .  課程號

三、程序設計題目(每題10分,共10分。)

1.

在數據庫JXGL中的teachers中創(chuàng)建一個觸發(fā)器,如果添加的教師的工資小于1000,則拒絕插入該記錄。(假設每次只插入一條記錄即可)(所用到的表結構如下:teachers(tno,tname,dept,pay)其中TNO代表教師編號,TNAME代表教師姓名,DEPT代表教師系別,PAY代表教師的工資)

use   jxgl

go

create   trigger   tri_insert

on   teachers

after    insert

as

declare   @pay   tinyint

select   @pay = pay   from   inserted

if   @pay 1000

begin

print   ' 工資太低 '

rollback   transaction

end

2. 設已經存在如下數據庫CJGL,表結構與二(三)題目相同,編寫代碼創(chuàng)建觸發(fā)器Tg,當向CJ表插入一條記錄時,檢查該記錄的學號在XS表中是否存在,檢查課程號在KC表中是否存在,若有一項為否,則不允許插入。

use   cjgl

go

Create   trigger   trig_appeA

On   cj

after   insert

as

if   exists(   select   *   from   inserted   a   where   a . 學號   not   in( select   b . 學號   from   xs   b )   or

a . 課程號   not   in( select   c . 課程號   from   kc   c ))

begin

use   cjgl
go

create   trigger   trig_appeA

on   cj
after   insert
as

declare   @stuID   char ( 8 )

declare   @courseID   char ( 6 )

select   @stuID = 學號 , @courseID = 課程號   from   inserted

if

@stuID <>any( select   學號   from   xs )

or

@courseID <>any( select   課程號   from   kc )

begin

print '學生或課程不存在,不允許插入!'

rollback   transaction

end
   
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
計算機等級考試二級VFP上機試題及解題思路(1)-計算機等級考試-考試吧
查詢精解
數據庫試題
視圖、存儲過程以及權限控制練習
《關系數據庫與SQL-Server-2000》實訓指導書1
第五章 數據查詢與視圖
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服