1. 程式人生 > 其它 >資料庫實驗四

資料庫實驗四

T-SQL程式設計

內容:

1.定義變數並且通過select語句給變數賦值. 查詢學號為“201215121”的學生的姓名和年齡,將其分別賦予變數name和age

2.if-lese選擇結構的使用. 查詢學生資訊,如果學生人數多於10人,則只顯示前5名,否則顯示所有學生資訊

3.while迴圈結構的使用. 建立一個測試表,並使用迴圈結構快速插入20000條記錄

4.編寫帶有萬用字元引數的儲存過程,查詢學生表和成績表,返回指定姓名的學生姓名、課程名和考試成績。要求:執行該儲存過程時,如果未提供引數,則使用預設的預設值(以“張”打頭的姓)

  1. 建立觸發器,當插入交易記錄時,實現自動更新賬戶餘額的功能

6.編寫事務進行銀行轉賬

程式碼

/*1. 定義變數並且通過select語句給變數賦值*/
declare @name varchar(10)
declare @age int
select @name=sname, @age=sage
from student2020205224
where sno='201215123'
select @name as 姓名, @age as 年齡
/*1-練習*/
declare @no int
DECLARE @grade int
SELECT @no=sno, @grade=grade
FROM sc2020205224
where cnp='1' and sno='201215121'
SELECT @no as 學號, @grade as 成績
/*if-lese選擇結構的使用*/
DECLARE @num int
SELECT @num=count(*)
from student2020205224
print '學生人數:'+convert(varchar(5),@num)
IF (@num>10)
  BEGIN
    print '前五名學生資訊'
    SELECT TOP 5
        *
    FROM student2020205224
    ORDER BY sno DESC
END
ELSE
  BEGIN
    print '所有學生資訊'
    SELECT *
    FROM student2020205224
END
/*練習*/
declare @num1 int
SELECT @num1=AVG(grade)
FROM sc2020205224
WHERE cnp='1'
IF(@num1>70)
BEGIN
    print '前五名學生資訊'
    SELECT TOP 5
        *
    FROM sc2020205224
    WHERE cnp='1'
    ORDER BY sno DESC
END
ELSE
BEGIN
    print '所有學生資訊'
    SELECT *
    FROM sc2020205224
END
/*3*/
create table TableIndex
(
    ID int identity(1,1),
    DataValue decimal(18,2)
)
/*向TestIndex資料庫表中插入20000條資料*/
create table TableIndex
(
    ID int identity(1,1),
    DataValue decimal(18,2)
)/*先建立*/
declare @r numeric(15,8)
declare @n int
set @n = 0
while(1=1)
  begin
    set @r = rand()
    insert into  TableIndex
        (DataValue)
    values(@r)
    set @n = @n + 1
    if(@n>20000)
		break
end
/*練習*/
declare @n1 decimal(5, 0)/*約束中grade的資料型別*/
SELECT @n1 =min(grade)
from sc2020205224
WHERE cnp='1'
WHILE(1=1)
    BEGIN
    SELECT @n1 =min(grade)
    from sc2020205224
    WHERE cnp='1'
    if(@n1<60)
    UPDATE sc2020205224
    set grade =grade+2
    where cnp='1'and grade<60
	else
	break
END