数据库技术1(T-SQL编程)

Transact-SQL编程

基本内容:(1)掌握定义、使用变量(2)了解常用函数的使用(3)会编写较为复杂的T-SQL程序

使用局部变量、全局变量

(1)定义一个tinyint的整型变量,为其赋值45,并显示变量的值。

DECLARE @TEMP TINYINT
SET @TEMP=45
SELECT @TEMP AS 变量值

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

DECLARE @TEMP VARCHAR(20)
SET @TEMP = 'Welcome to ABCD'
PRINT @TEMP

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

PRINT @@SERVERNAME

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

PRINT @@VERSION

函数的使用

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

SELECT ABS(-3) AS '-3的绝对值',
			SQRT(16) AS '16的平方根',
			POWER(53) AS '5的三次方'

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

SELECT UPPER('china') AS 大写,LOWER('Machine') AS 大写

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

PRINT LTRIM('		machine		')+'china'+'press'

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

PRINT RTRIM('	machine	')+'china'+'press'

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

PRINT RTRIM(LTRIM('	machine	'))+'china'+'press'

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

SELECT LEN('I am a teacher.') AS 字符串长度
			REPLACE('I am a teacher','teacher','student') AS 替换结果

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

DECLARE @TIME DATETIME
SET @TIME = F=GETDATE()
SELECT @TIME AS 日期,
				DATEPART(yy,@TIME) AS 年份,
				DATEPART(mm,@TIME) AS 月份,
				DATEPART(dd,@TIME) AS 日期 

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

DECLARE @BIRTH DATETIME
DECLARE @TIME DATATIME
SET @BIRTH = '2001-01-19'
SET @TIME = GETDATE()
SELECT DATEDIFF(dd,@BIRTH,@TIME) AS 天数,
	   DATEDIFF(mm,@BIRTH,@TIME) AS 月数,
	   DATEDIFF(dd,@BIRTH,@TIME) AS 年数

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

SELECT USER_NAME() AS 用户名,DB_NAME() AS 数据库名

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

SELECT HOST_ID() AS 主机识别,HOST_NAME() AS 主机名

复杂T-SQL编程

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

SELECT 姓名,课名,case
				 when 成绩 < 60 THEN '不及格'
				 WHEN 成绩 < 80 THEN '及格'
				 ELSE '优秀'
				 END
				 AS 成绩水平
FROM 学生表,选课表,课程表,开课表
WHERE 学生表.学号=选课表.学号
AND 选课表.开课表 = 开课表.开课表
AND 开课表.课号=课程表.课号

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

DECLARE @START INT ,@END INT,@SUM INT,@NUM INT
SELECT @START=1@END=100@SUM=0@NUM=7
WHILE @START<=@END
BEGIN
IF(@START%@NUM=0)
BEGIN
SET @SUM = @SUM + @START
END
SET @START=@START+1
END
PRINT '1-100之间所有能够被7整除的数的总和为'+CONVERT(CHAR,@SUM)
--优化版
DECLARE @START INT,@END INT,@SUM INT,@NUM INT
SELECT @START=1@END=100@SUM=0@NUM=7
WHILE @START<=@END
BEGIN
IF(@START%@NUM=0)
BEGIN
SET @SUM =@SUM+@START
SET @START=@START+@NUM
CONTINUE
END
SET @START=@START+1
END
PRINT '1-100之间所有能够被7整除的数的总和为'+CONVERT(CHAR,@SUM)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值