大型数据库技术-实验一T-SQL语句的使用

大型数据库技术-实验一T-SQL

实验内容及步骤
1.使用局部变量、全局变量
(1)定义一个tinyint的整型变量,为其赋值45,并显示变量的值。

declare @A tinyint
set @A=45
print @A
go

(2)定义一个长度为20的可变长度型字符变量,为其赋值“Welcome to SWPU”, 并显示变量的值。

declare @B varchar(20)
set @B='Welcome to SWPU'
print @B
go

(3)查询当前数据库服务器名@@SERVERNAME。

select @@SERVERNAME
go

(4)查询当前数据库管理系统版本@@VERSION。

SELECT @@VERSION
go

2.函数的使用
(1) 数学函数的使用
分别用ABS,SQRT,POWER函数求出-3的绝对值,16的平方根,5的三次方。

select ABS(-3) '-3的绝对值',SQRT(16) '16的平方根',POWER(5,3) '5的3次方'
GO

(2) 字符串函数的使用
1)用UPPER和LOWER函数分别将字符串“china”、“MACHINE”转换成大写、小写字母;

select UPPER('china') '大写',LOWER('MACHINE') '小写'
GO

2)用LTRIM函数去掉字符串“ machine ”左边的空格,再与“china”及“press“连接起来;

select LTRIM('  machine  ')+'china'+'press' '去左空格'
go

3)用RTRIM函数去掉字符串“ machine ”右边的空格,再与“china”及“press“连接起来;

select RTRIM('  machine  ')+'china'+'press' '去又空格'
GO

4)去掉字符串“ machine ”左右两边的空格,再与“china”及“press“连接起来;

select LTRIM(RTRIM('  machine  '))+'china'+'press' '去两边空格'
GO

5)用LEN函数计算字符串‘I am a teacher.’的长度,并使用REPLACE函数将“teacher”替换为“student”。

select LEN('I am a teacher.') '长度',REPLACE('I am a teacher.','teacher','student') '替换'
GO

(3) 日期、时间函数的使用
1)用GETDATE,DAY,MONTH,YEAR等函数返回系统当前日期并以整数形式返回当前日期的年份、月份、日;

declare @date date
set @date=GETDATE()
select YEAR(@date) '年',MONTH(@date) '月',day(@date) '日'
go

2)用DATEDIFF函数返回你的生日与当前日期相差的天数、月数及年数。

select DATEDIFF(dd,'2000-04-07','2020-12-06') '天数',
DATEDIFF(MM,'2000-04-07','2020-12-06') '月数',
DATEDIFF(YY,'2000-04-07','2020-12-06') '年数'
GO

(4) 系统函数与元数据函数的使用
1)显示正在使用的用户名(USER_NAME)、数据库名(DB_NAME);

select USER_NAME() '用户名',DB_NAME() '数据库名'
GO

2)返回当前主机标识(HOST_ID)及主机名称(HOST_NAME)。

select HOST_ID(),HOST_NAME()
GO

3.编写较复杂的Transact-SQL程序
(1) 在教学管理数据库中,我们将学生的课程考试成绩水平分为3类,即低于60为不及格,61到79为及格,大于等于80为优秀,成绩为NULL的不统计。请显示所有学生的姓名、所选各个课程的课程名和成绩水平。

use 教学管理
SELECT 姓名,课名,CASE
					WHEN 成绩<60 THEN '不及格'
					WHEN 成绩<80 THEN '及格'
					ELSE '优秀'
					END AS '等级表'
FROM dbo.学生表,dbo.选课表,dbo.课程表,dbo.开课表
WHERE dbo.学生表.学号=dbo.选课表.学号
	AND dbo.选课表.开课号=dbo.开课表.开课号
	AND dbo.开课表.课号=dbo.课程表.课号
	AND 成绩 IS NOT NULL
GO

(2) 用Transact-SQL语言编写程序计算1~100之间所有能被7整除的数的总和。

DECLARE @SUM INT,@START INT,@END INT,@NUM INT
SELECT @SUM=0,@START=1,@END=100,@NUM=7
WHILE @START<@END
BEGIN 
	IF(@START%@NUM=0)
		BEGIN
			PRINT @START
			SET @SUM=@SUM+@START
		END
		SET @START=@START+1
END
PRINT '-----------------'
PRINT @SUM
GO	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值