SQL---实验六

1. 编写代码计算100以内的奇数的和,并显示@n=1+3+5+...+99。
DECLARE @i int ,@sum int
set @i=1
set @sum=0
while @i<=100
	begin
	if @i%2=1
	set @sum=@sum+@i
	set @i=@i+1
	end
print 'sum='+cast(@sum as varchar)

2. 编写代码计算并显示1~100之间的所有完全平方数。例如,81=92, 则称81为完全平方数
declare @i int
set @i=1
while @i*@i<=100
begin
	print convert(char(4),@i*@i)+'是完全平方数'
	set @i=@i+1
end

3. 计算1~100以内的所有素数。
declare @n int,@i int,@m int
set @n=3
set @i=2
print convert (char(2),2)+'是素数'
while @n<=100
begin
	set @m=@n%@i
	if @m!=0
		begin
		set @i=@i+1
		if @i>=@n
		print cast(@n as varchar)+' 是素数'
		end
	else
		begin
		set @n=@n+1
		set @i=2
		continue
		end
end
		
4. 运行以下代码,写出运行结果。
    DECLARE @a int,@b int
    SET @a=23
    SET @b=45
SELECT @a&@b, @a|@b, @a^@b


5. 运行以下代码段,写出运行的结果。
    DECLARE @counter int
    SET @counter=1
    WHILE @counter<10
    BEGIN
      SELECT  '@counter 的值现在为:' +ConverT (Char (2) , @counter)
      SET @counter=@counter+1
    END

6. 选择BookDb数据库,新建查询打开查询编辑器,输入以下代码。
    DECLARE @book_name varchar (50)
    SELECT @book_name= 书名
        FROM图书信息
        WHERE书名LIKE '%数据库基础% '
    SELECT @book_name
观察显示的结果,与图书信息表中数据进行比较,@book_ name赋值的是SELECT结果集中的哪个数据?
  赋值的是 书名

7. 使用SET命令将查询结果集记录数目赋值给int型局部变量@rows。给下面代码中的划线处填上适当的内容,以完成上述操作。
    DECLARE @rows int
    SET____@rows______ = (SELECT Count(*) FROM 读者信息)
____select____________ @rows	    --显示@rows的值


8. 定义int型局部变量@max、@min,在图书借阅表中查找借阅书籍数最多和最少的本数,分别赋给@max、@min并显示。
    DECLARE @max int, @min INT
    SELECT @max= (SELECT TOP 1 Count(*) FROM 借阅信息 GROUP  BY 借阅证号ORDER BY  Count(*)  DESC) ,@min= (SELECT TOP 1 Count(*)  FROM 借阅信息GROUP  BY 借阅证号ORDER  BY  Count(*)  ASC)
    SELECT @max, @min


9. 在BookDb数据库的读者信息表中,以“卡状态”为分组条件,分别统计卡状态为“0”和“1”的人数。
select  卡状态,count(*) as 人数 from 读者信息 group by 卡状态

10.在局部变量@book_id中存储了图书编号值。编写代码查询借阅图书编号为“10150001 ”的图书的记录是否过期。如果过期则显示“借阅的图书10150001已过期!”,否则显示“借阅的图书10150001未过期”。
    DECLARE @borrow_date DATETIME , @return_date datetime
    SELECT @borrow_date= 借阅日期, @return_date=归还日期FROM 借阅信息
         WHERE图书编号='110150001'
    IF (@borrow date>@return date)
        PRINT   '借阅的图书10150001已过期!'
    ELSE
        PRINT   '借阅的图书10150001未过期'

11.定义一个int型局部变量@num,以存储各单位的读者人数。在以下代码的画线部分填入适当内容,以实现上述功能。
    DECLARE _@num______________ int
    SELECT单位,____count(*)___________  AS 读者人数
        FROM 读者信息 GROUP BY单位

 

posted @ 2019-07-18 10:51  9529  阅读(402)  评论(0编辑  收藏  举报