實驗一:實驗案例一(附加“練慣用的可以附加的資料庫--class”) 1、在products表中查詢出廠日期晚於2014年4月的水果信息。 select * from products where 出廠日期>'2014-04-30 ' 2、在products表中分組查詢所有水果,蔬菜,堅果的總成本。 ...
實驗一:實驗案例一(附加“練慣用的可以附加的資料庫--class”)
1、在products表中查詢出廠日期晚於2014年4月的水果信息。
select * from products where 出廠日期>'2014-04-30 '
2、在products表中分組查詢所有水果,蔬菜,堅果的總成本。
select 種類,SUM(成本) 總成本 from products group by 種類
3、在products表中查詢所有水果的信息,並按照成本從高到低的順序顯示結果。
select * from products order by 成本 desc
4、在products表中查詢成本在1—5元的蔬菜信息。
select * from products where 成本 between 1 and 5 and 種類='蔬菜'
5、在products表中所有水果的名稱,種類和出廠日期信息插入新表products_new中。
select 名稱,種類,出廠日期 into aaa from products where 種類='水果'
實驗二:多表查詢(附加“練慣用的可以附加的資料庫--benet”)
要求:
1、在表A和表B 中使用內連接查詢學生姓名,學校和職業
select a.namenamea,a.school schoola,b.name nameb,b.job jobb from A,b wherea.name=b.name
2、在表A和表B 中使用左外連接查詢學生姓名,學校和職業。
select a.namenamea,a.school schoola,b.name nameb,b.job jobb from A left join bon a.name=b.name
3、在表A和表B 中使用右外連接查詢學生姓名,學校和職業。
select a.name namea,a.school schoola,b.name nameb,b.jobjobb from A right join bon a.name=b.name
4、在表A和表B 中使用完整連接查詢學生姓名,學校和職業。
select a.namenamea,a.school schoola,b.name nameb,b.job jobb from A full join bon a.name=b.name
實驗三:實驗案例二(附加“練慣用的可以附加的資料庫--class”)
1、在products表和sales表中查詢產品的名稱,種類,成本,銷售地點和銷售價格。
select products.名稱名稱a,
products.種類種類a,
products.成本成本a,
sales.名稱名稱b,
sales.銷售價格價格b,
sales.銷售地點地點b
from products,sales where products.名稱=sales.名稱
2、在products表和sales表中查詢銷往海南的產品名稱,種類,成本和銷售價格。
select products.名稱名稱a,
products.種類種類a,
products.成本成本a,
sales.名稱名稱b,
sales.銷售價格價格b
from products,sales where products.名稱=sales.名稱
and
銷售地點='海南'
3、在products表和sales表中查詢銷往北京的蔬菜名稱,種類,成本和銷售價格。
select products.名稱名稱a,
products.種類種類a,
products.成本成本a,
sales.名稱名稱b,
sales.銷售價格價格b
from products,sales where products.名稱=sales.名稱
and
銷售地點='北京'
and 種類='蔬菜'
實驗四:事務案例:完成轉賬的過程,如果轉賬1000會回滾,提示失敗,如果轉賬800,提示成功。
要求:
(1)創建表名為bank,如圖所示:
(2)Currentmoney列的Check約束:
(3)插入兩條數據:
INSERT INTO bank(customerName,currentMoney)VALUES('張三',1000)
INSERT INTO bank(customerName,currentMoney)VALUES('李四',1)
(4)轉賬的過程。(先執行轉賬1000,查看結果;之後轉賬800,查看結果)
print '查看轉賬事務前的餘額'
select * from bank
go
begin transaction
declare @errorsum int
set @errorsum=0
update bank setcurrentmoney=currentmoney-800
where customername='張三'
set@errorsum=@errorsum+@@ERROR
update bank setcurrentmoney=currentmoney+800
where customername='李四'
set@errorsum=@errorsum+@@ERROR
print '查看轉賬事務前的餘額'
SELECT * from bank
if @errorsum<>0
begin
print '交易失敗,回滾事務'
rollback transaction
end
else
begin
print'交易成功,提交事務,寫入硬碟,永久地保存'
commit transaction
end
go
print'查看轉賬事務後的餘額'
SELECT * FROM bank
go