資料庫練習題1--建立與管理資料庫及sql基礎

2020-10-08 11:00:25

1.用圖形化方法和CREATE DATABASE語句建立符合如下條件的資料庫。
資料庫的名字為students,包含的資料檔案的邏輯檔名為 students_dat,物理檔名為 students.mdf,存放在D:\Test資料夾中(若D:中無此子資料夾,可先建立此資料夾,然後再建立資料庫),初始大小為6MB,自動增長,每次增加1MB。紀錄檔檔案的邏輯檔名為students_log,物理檔名為students.ldf,也存放在D:\Test資料夾中,初始大小為2MB,自動增長,每次增加10%。

CREATE DATABASE語句:
CREATE DATABASE students
ON primary
(NAME= 'students_dat',
 FILENAME='D:\test\students_dat.mdf',
 SIZE=6MB,
 FILEGROWTH=1MB)
LOG ON
(NAME= 'students_log',
 FILENAME='D:\test\students_log.ldf',
 SIZE=2MB,
 FILEGROWTH=10%)

2.用 CREATE DATABASE語句建立符合如下條件的資料庫。 資料庫包含兩個資料檔案和兩個紀錄檔檔案。資料庫的名稱為:財務資訊資料庫,該資料庫包含兩個資料檔案和兩個紀錄檔檔案。資料檔案1的邏輯檔名為財務資料1,物理檔名為財務資料1.mdf,存放在「D:\財務資料」目錄下(若D:中無此資料夾,可先建立此資料夾,然後再建立資料庫,初始大小為4MB,自動增長,每次增加IMB;資料檔案2的邏輯檔名為財務資料2,物理檔名為財務資料2.ndf,與主要資料檔案存放在相同的資料夾中,初始大小為3MB,自動增長,每次增加10%。紀錄檔檔案1的邏輯檔名為財務紀錄檔1,物理檔名為財務紀錄檔1.ldf,存放在「D:\財務紀錄檔」資料夾中,初始大小為2MB,自動增長,每次增加10%;紀錄檔檔案2的邏輯檔名為財務紀錄檔2,物理檔名為財務紀錄檔2ldf,存放在「D:\財務紀錄檔」資料夾中,初始大小為2MB,不自動增長。
CREATE DATABASE語句:

CREATE DATABASE 財務資訊資料庫
ON primary
(NAME=財務資料1,
 FILENAME='D:\財務資料\財務資料1.mdf',
 SIZE=4MB,
 FILEGROWTH=1MB),
(NAME=財務資料2,
 FILENAME='D:\財務資料\財務資料2.ndf',
 SIZE=3MB,
 FILEGROWTH=10%)

LOG ON
(NAME=財務紀錄檔1,
 FILENAME='D:\財務紀錄檔\財務紀錄檔1.ldf',
 SIZE=2MB,
 FILEGROWTH=10%),
(NAME=財務紀錄檔2,
 FILENAME='D:\財務紀錄檔\財務紀錄檔2.ldf',
 SIZE=2MB,
 FILEGROWTH=0)

3.刪除新建立的「財務資訊資料庫」,觀察該資料庫包含的檔案是否一起被刪除了。
CREATE DATABASE語句:
DROP DATABASE 財務資訊資料庫
該資料庫包含的檔案確實被一起刪除了
4.分別用圖形化方法和 Transact-SQL語句對上機練習中第1題所建立的「students」資料庫空間進行如下擴充套件:增加一個新的資料檔案,檔案的邏輯名為「students_dat2」,存放在新檔案組Group1中,物理檔名為 students2.ndf,存放在「D:\Test」資料夾中,檔案的初始大小為2MB,不自動增長。
Transact-SQL語句:

ALTER DATABASE students
ADD FILEGROUP Group1

ALTER DATABASE students
ADD FILE
(
 NAME=students_dat2,
 FILENAME='D:\test\students_dat2.ndf',
 SIZE=2MB,
 FILEGROWTH=0
)
TO FILEGROUP Group1

5.將上機練習中第4題新新增的「students_dat2」檔案的初始大小改為6MB。
Transact-SQL語句:

ALTER DATABASE students
MODIFY FILE 
(NAME=students_dat2,
 SIZE=6MB)

6.分別用圖形化方法和Transact-sql語句對「students」資料庫進行如下操作:
1)縮小「students」資料庫空間,使該資料庫中的空白空間為50%。
Transact-sql語句

DBCC SHRINKDATABASE(students,50)

2)將資料檔案「 students dat」的初始大小縮小為4MB。
Transact-sql語句

DBCC SHRINKFILE(students_dat,4)

8.假設SQL Server服務已啟動,並以Administrator身份登入計算機(檔名稱自定);請分別使用Management介面方式和T-SQL語句實現以下操作:

  1. 要求在本地磁碟D建立一個學生-課程資料庫(名稱為student),只有一個資料檔案和紀錄檔檔案,檔名稱分別為stu和stu_log,物理名稱為stu_data.mdf 和stu_log.ldf,初始大小都為3MB,增長方式分別為10%和1MB,資料檔案最大為500MB,紀錄檔檔案大小不受限制。
CREATE DATABASE student
ON primary
(
 NAME=stu,
 FILENAME='D:\stu_data.mdf',
 SIZE=3MB,
 MAXSIZE=500MB,
 FILEGROWTH=10%
)
LOG ON
(
 NAME=stu_log,
 FILENAME='D:\stu_log.ldf',
 SIZE=3MB,
 FILEGROWTH=1MB
)
 
  1. 建立一個Company資料庫,該資料庫的主資料檔案邏輯名稱為Company_data,物理檔案為Company.mdf,初始大小為10MB,最大尺寸為無限大,增長速度為10%;資料庫的紀錄檔檔案邏輯名稱為Company_log,物理檔名為Company.ldf,初始大小為1MB,最大尺寸為50MB,增長速度為1MB。
CREATE DATABASE Company
ON primary
(NAME=Company_data,
 FILENAME='D:\Company.mdf',
 SIZE=10MB,
 FILEGROWTH=10%)
LOG ON
(NAME=Company_log,
 FILENAME='D:\Company.ldf',
 SIZE=1MB,
 MAXSIZE=50MB,
 FILEGROWTH=1MB)
  1. 建立資料庫DB,具有2個資料檔案,檔案邏輯名分別為DB_data1和DB_data2,檔案初始大小均為5MB,最大為100MB,按10%增長;只有一個紀錄檔檔案,初始大小為3MB,按10%增長;所有檔案都儲存在D槽資料夾ceshi中。
CREATE DATABASE DB
ON primary
(
 NAME=DB_data1,
 FILENAME='D:\ceshi\DB_data1.mdf',
 SIZE=5MB,
 MAXSIZE=100MB,
 FILEGROWTH=10%
),
(
 NAME=DB_data2,
 FILENAME='D:\ceshi\DB_data2.mdf',
 SIZE=5MB,
 MAXSIZE=100MB,
 FILEGROWTH=10%
)

LOG ON
(
 NAME=DB_log,
 FILENAME='D:\ceshi\DB_log.ldf',
 SIZE=3MB,
 FILEGROWTH=10%
)
 
  1. 在資料庫student中增加資料檔案db2,初始大小為10MB,最大大小為50 MB,按10%增長;
ALTER DATABASE student
ADD FILE
(
 NAME=db2,
 FILENAME='D:\test\db2.ndf',
 SIZE=10MB,
 MAXSIZE=50MB,
 FILEGROWTH=10%
)
 
  1. 在資料庫student中新增紀錄檔檔案,儲存在D槽中,初始大小為1MB,最大無限制,增長方式按照1MB增長;
ALTER DATABASE student
ADD LOG FILE
(
 NAME=db_log,
 FILENAME='D:\db_log.ldf',
 SIZE=1MB,
 FILEGROWTH=1MB)
 
6)	修改資料庫student主資料檔案的大小,將主資料檔案的初始大小修改為10Mb,增長方式為20%;
ALTER DATABASE student
MODIFY FILE
(NAME=stu,
 SIZE=10MB)
ALTER DATABASE student
MODIFY FILE
(NAME=stu,
 FILEGROWTH=20%)
  1. 修改資料庫student輔助資料檔案初始大小為3MB,最大為100MB,按照10%增長,名稱為db;
ALTER DATABASE student
MODIFY FILE
(NAME=db,
 SIZE=3MB,
 MAXSIZE=100MB,
 FILEGROWTH=10%)
  1. 刪除資料庫student輔助資料檔案和第二個紀錄檔檔案;
ALTER DATABASE student
REMOVE FILE db

ALTER DATABASE student
REMOVE FILE db_log
 
  1. 刪除資料庫company和DB。
DROP DATABASE company,DB

9.定義一個int的整形變數,並分別給其賦值67、123067。

declare @m int=67
print @m
declare @m int=123067
print @m

10.定義一個長度為11的可變長形字元變數,並分別給其賦值「Hello World!」和「How are you?」。

declare @z varchar(11)
set @z='Hello World!'
declare @z varchar(11)
set @z='How are you?'

11.分別將字串「WELCOME」和「student」轉換成小寫、大寫字母。

select LOWER ('WELCOME')
	 select UPPER ('student')

12.使用RTRIM和LTRIM函數分別去掉字串「 信電分院 」右邊和左邊的空格,再與「學生選課」連線起來。

select rtrim (' 信電分院 ')
select ltrim (' 信電分院 ')
select STUFF (' 信電分院 ',6,2,'學生選課')
 

13.使用SUBSTRING將字串「ABCDEFG」中的「CDE」顯示出來。

 select SUBSTRING ('ABCDEFG',3,3) 

14.使用GETDATE( )函數返回系統當前日期

select GETDATE ()

15.使用DAY( )函數提取當前日期的日期部分的整數。

select DAY (GETDATE())

16.使用T-SQL流程控制語句求兩個數的最大公約數和最小公倍數。

DECLARE @a int,@b int,@c int,@d int,@x int
set @c=50
set @d=2
set @a=@c
set @b=@d
if @a<@b
begin
set @x=@b
set @b=@a
set @a=@x
end
while @b!=0
begin
set @x=@a%@b
set @a=@b
set @b=@x
end
select @a
select @c*@d/@a

17.使用T-SQL流程控制語句求斐波那契數列中小於100的所有數。

DECLARE @Q int
DECLARE @W int
DECLARE @E int
DECLARE @R varchar(2000)
set @Q =1
set @W =1
set @R=cast(@Q as varchar(10))+','+cast(@W as varchar(10))
while (@W<100)
begin 
set @E=@W
set @W=@W+@Q
set @Q=@E
if(@W<100)
set @R=@R+','+cast(@W as varchar (10))
end
print @R