1. 利用T-SQL語句,創建數據庫(工資管理數據庫),要求如下: 數據庫初始大小:3MB;文件大小按兆字節3MB自動增長,增長限制為:15MB; 數據庫日志文件初始大小:1MB; 文件大小按百分比5%自動增長,增長限制為:10MB; 設定數據庫文件保存路徑為D:\gzgl\,其余為默認。 create database 工資管理數據庫 on (name=工資管理數據庫, filename='D:\gzgl\工資管理數據庫.mdf', size=3mb, maxsize=15mb, filegrowth=3mb ) log on (name=工資管理數據庫_log, filename='D:\gzgl\工資管理數據庫_log.ldf', size=1mb, maxsize=10mb, filegrowth=5% ) 2. 利用T-SQL語句,在新建數據庫中,創建以下三個表,表結構如下: 表“部門信息表” 列名 數據類型 長度 是否空值 約束 編號 Char 否 主鍵 名稱 varChar 20 否 電話 Char 12 否 use 工資管理數據庫 go
create table 部門信息表 (編號 Char(5) primary key not null, 名稱 varChar(20) not null, 電話 Char(12) not null ) 表“員工信息表” 列名 數據類型 長度 是否空值 約束 編號 Char 11 否 主鍵 姓名 nChar 8 否 性別 nChar 1 是 [男,女] 出生日期Datetime 8 是 部門編號char 5 否 外鍵 電話 Char 12 否 唯一索引 注:部門編號參照’部門信息表.編號’為外鍵,性別默認值為“男” use 工資管理數據庫 go
create table 員工信息表 (編號 Char(11) primary key not null, 姓名 nChar(8) not null, 性別 nChar(1) check(性別='男'or 性別='女') default('男') not null, 出生日期 Datetime not null, 部門編號 char(5) foreign key references 部門信息表(編號) not null, 電話 Char(12) unique not null ) 表“工資表” 列名 數據類型 長度 是否空值 約束 員工編號 Char 11 否 主鍵 基本工資 Decimal(6,2) 是 獎金 Decimal (6,2) 是 扣除 Decimal (6,2) 是 [0,1000] 說明:設置‘員工編號’參照“員工信息表.編號”為外鍵約束; use 工資管理數據庫 go
create table 工資表 (員工編號 char(11) not null primary key foreign key references 員工信息表(編號), 基本工資 decimal(6,2) not null, 獎金 decimal(6,2) not null, 扣除 decimal(6,2) check(扣除>0 and 扣除<1000) not null ) 3.使用insert 語句向表中插入1條記錄 insert into 部門信息表 values ('06','劉華奇','123456') go
4.使用update語句更新表中的數據 update 工資表 set 基本工資=基本工資*1.2
go ) 5,查找每位教師的信息 select *
from 教師信息表 go
6,查找每位學生的學號,姓名,性別,出生日期 select 學號,姓名,性別,出生日期 from 學生信息表 go
7,查找每位學生的學號,姓名,性別,年齡 select 學號,姓名,性別,'年齡'=year(getdate())-year(出生日期) from 學生信息表 go
8,查找年齡>30的所有女生的信息, select *
from 學生信息表 where 性別='女' and year(getdate())-year(出生日期)>30
go
9. 計算教學成績表中每位同學的期末總評=30+分數*0.7
select 學號, '期末總評'=30+分數*0.7
from 教學成績表 go
10. 列出教學成績表中所有學生課程的分數在70~90的學號,課程編號和分數 select 學號,課程編號,分數 from 教學成績表 where 課程編號='900013' and 分數>=70 and 分數<=90
go
11. 查詢學生信息表中籍貫中包含‘山’字符的同學信息 select *
from 學生信息表 where 籍貫 like '%山%'
go
① 查詢 yiqi_product 表中 cid 為 16 且 名稱中含有 鋼結構的信息
SELECT * FROM `yiqi_product` WHERE cid = '116' and name LIKE '%鋼結構%'
12、利用T-SQL語句,將員工編號為的員工姓名改為“張三豐”。 update 員工信息表 set 姓名='張三豐'
where 編號='01'
go
13、利用T-SQL語句,將工資表中基本工資〈,獎金<2000的扣除項改為. update 工資表 set 扣除 =1000
where 基本工資<3000 and 獎金<2000
go
14、利用T-SQL語句,刪除員工信息表中部門編號為的男性員工的信息。 delete 員工信息表 where 部門編號='001'
go
15、查詢學生信息表的前條記錄 select top 10 percent * from 學生信息表 go
16、將課程的成績按從大到小排序 (asc:升序, desc:降序 ) select * from 教學成績表 where 課程編號='900001'
order by 分數 desc
go
17. 查詢各科的平均分>70的課程名稱 select 名稱, avg(分數) from 教學成績表 join 課程信息表 on 教學成績表.課程編號=課程信息表.編號 group by 名稱 having avg(分數)>70
18. 查詢每位同學的學號,姓名,課程編號和分數 select 教學成績表.學號,姓名,課程編號,分數 from 學生信息表 join 教學成績表 on 教學成績表.學號=學生信息表.學號 19. 查詢每位同學的學號,姓名,課程編號,課程名稱和分數 select 教學成績表.學號,姓名,課程編號,分數,名稱 from 學生信息表 join 教學成績表 on 教學成績表.學號=學生信息表.學號 join 課程信息表 on 課程信息表.編號=教學成績表.課程編號 20. 查詢參加計算機網絡技術考試的學生學號和分數 select 學號,分數 from 教學成績表 cross join 課程信息表 where 名稱='計算機網絡技術'
21. 統計每位教師所教課程的平均分(教師姓名,課程名稱,平均分) select 姓名,名稱,'平均分'=AVG(分數) from 教學成績表 join 課程信息表 on 教學成績表.課程編號=課程信息表.編號 join 教師信息表 on 教師信息表.編號=教學成績表.教師編號 group by 姓名,名稱 22. 建立索引 IX_name,按照學生信息表的姓名查詢時,提升查詢速度 create index IX_name on 學生信息表(姓名) 23.創建存儲過程,名稱為pr_1 create procedure pr_1 as
select *
from 學生信息表 24. 統計每科的考試分數的平均分,最高分和參加考試人數 create view view_4 as
select 名稱,平均分=avg(分數),最高分=max(分數),參加考試人數=count(*) from 教學成績表 join 課程信息表 on 課程信息表.編號=教學成績表.課程編號 group by 名稱