实验一
1.根据程序写结果:
declare @a int
set @a=32768
select @a,datalength(@a)
go
要求:(1)写出程序运行结果。
(2)把程序类型分别改为smallint、Tinyint、Bigint三种类型,求出程序运行结果。
2.声明一个类型为REAL的局部变量,分别为其赋值为321.12 、87654321.456,显示其结果。
3.根据程序写结果:
declare @c char
set @c='信息学院'
select @c,datalength(@c)
go
要求:
(1)写出程序运行结果。
(2)将类型改为CHAR(2)、CHAR(3)、CHAR(5)、CHAR(10)结果为多少?
(3)若将类型改为VARCHAR、VARCHAR(2)、VARCHAR(3)、VARCHAR(10)结果为多少?
(4)若将类型改为NCHAR(2)、NCHAR(3)、NCHAR(5)、NCHAR(10)结果为多少?
(5)若将类型改为NVARCHAR、NVARCHAR(2)、NVARCHAR(10)结果为多少?
(6)比较CHAR、VARCHAR、NCHAR、NVARCHAR四种数据类型的区别。
4.声明一个类型为日期时间型的变量,要求一:将今天的日期赋值给该变量,并显示其结果。要求二:将今天的日期接照月、日、年的格式赋值给该变量,并显示其结果。
5.写结果:select lower(‘abc’) +space(5) + rtrim(ltrim(‘你好!‘))
6.写函数表达式和结果:计算字符串’SQL Server数据库管理系统’的长度
7.写函数表达式:求服务器当前的系统日期与时间
8.Mary的生日为1987/12/23日,请用日期函数计算Mary现在的年龄下节课:
9.求:y= { x+10 x<0
x x=0
x-10 x>10
10.如果在student表中的男生多,则显示男生人数以及“男生多”信息。
11. 查看(课程号为'C801')的平均分,如果分数等于或超过60分刚显示“数据结构平均分及格”和平均分值,否则显示“数据结构平均分不及格”。实验二
1、使用不带参数的存储过程
(1)创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系。
(2)执行存储过程
(3)修改存储过程,使其能够查询计算机系女生的所有基本信息2、带输入参数的存储过程
(1)创建一个存储过程my_procsex,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系
(2)执行存储过程
3、带输入/输出参数的存储过程
(1)创建一个存储过程my_procage,使其能够根据学生姓名,查询学生年龄。(考虑当学生不存在时给出提示信息)
(2)执行存储过程
1.根据程序写结果:
declare @a int
set @a=32768
select @a,datalength(@a)
go
要求:(1)写出程序运行结果。
(2)把程序类型分别改为smallint、Tinyint、Bigint三种类型,求出程序运行结果。
2.声明一个类型为REAL的局部变量,分别为其赋值为321.12 、87654321.456,显示其结果。
3.根据程序写结果:
declare @c char
set @c='信息学院'
select @c,datalength(@c)
go
要求:
(1)写出程序运行结果。
(2)将类型改为CHAR(2)、CHAR(3)、CHAR(5)、CHAR(10)结果为多少?
(3)若将类型改为VARCHAR、VARCHAR(2)、VARCHAR(3)、VARCHAR(10)结果为多少?
(4)若将类型改为NCHAR(2)、NCHAR(3)、NCHAR(5)、NCHAR(10)结果为多少?
(5)若将类型改为NVARCHAR、NVARCHAR(2)、NVARCHAR(10)结果为多少?
(6)比较CHAR、VARCHAR、NCHAR、NVARCHAR四种数据类型的区别。
4.声明一个类型为日期时间型的变量,要求一:将今天的日期赋值给该变量,并显示其结果。要求二:将今天的日期接照月、日、年的格式赋值给该变量,并显示其结果。
5.写结果:select lower(‘abc’) +space(5) + rtrim(ltrim(‘你好!‘))
6.写函数表达式和结果:计算字符串’SQL Server数据库管理系统’的长度
7.写函数表达式:求服务器当前的系统日期与时间
8.Mary的生日为1987/12/23日,请用日期函数计算Mary现在的年龄下节课:
9.求:y= { x+10 x<0
x x=0
x-10 x>10
10.如果在student表中的男生多,则显示男生人数以及“男生多”信息。
11. 查看(课程号为'C801')的平均分,如果分数等于或超过60分刚显示“数据结构平均分及格”和平均分值,否则显示“数据结构平均分不及格”。实验二
1、使用不带参数的存储过程
(1)创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系。
(2)执行存储过程
(3)修改存储过程,使其能够查询计算机系女生的所有基本信息2、带输入参数的存储过程
(1)创建一个存储过程my_procsex,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系
(2)执行存储过程
3、带输入/输出参数的存储过程
(1)创建一个存储过程my_procage,使其能够根据学生姓名,查询学生年龄。(考虑当学生不存在时给出提示信息)
(2)执行存储过程
declare @a int
set @a=32768
select @a,datalength(@a)
go
/*
要求:(1)写出程序运行结果。
(2)把程序类型分别改为smallint、Tinyint、Bigint三种类型,求出程序运行结果。
*/
tinyint 溢出(1字节)
smallint 溢出(2字节)
int 32768 4(4字节)
bigint 32768 8(8字节)
--2.声明一个类型为REAL的局部变量,分别为其赋值为321.12 、87654321.456,显示其结果。
declare @i real, @j real
select @i = 321.12,@j = 87654321.456
select @i,@j
/*
321.12 8.765432E+7
*/--3.根据程序写结果:
declare @c char
set @c='信息学院'
select @c,datalength(@c)
go/*
要求:
(1)写出程序运行结果。
(2)将类型改为CHAR(2)、CHAR(3)、CHAR(5)、CHAR(10)结果为多少?
(3)若将类型改为VARCHAR、VARCHAR(2)、VARCHAR(3)、VARCHAR(10)结果为多少?
(4)若将类型改为NCHAR(2)、NCHAR(3)、NCHAR(5)、NCHAR(10)结果为多少?
(5)若将类型改为NVARCHAR、NVARCHAR(2)、NVARCHAR(10)结果为多少?
(6)比较CHAR、VARCHAR、NCHAR、NVARCHAR四种数据类型的区别。
*/
char ' ' 1
char(2) '信' 2
char(3) '信 ' 3
char(10) '信息学院 ' 10varchar '' 0
varchar(2) '信' 2
varchar(3) '信' 2
varchar(10) '信息学院' 8nchar '信' 2
nchar(2) '信息' 4
nchar(3) '信息学' 6
nchar(10) '信息学院 ' 20nvarchar '信' 2
nvarchar(2) '信息' 4
nvarchar(3) '信息学' 6
nvarchar(10) '信息学院' 8
--4.声明一个类型为日期时间型的变量,要求一:将今天的日期赋值给该变量,并显示其结果。要求二:将今天的日期接照月、日、年的格式赋值给该变量,并显示其结果。
declare @date datetime
set @date = '2007-12-21'
select @date
/*
2007-12-21 00:00:00.000
*/
set @date = '12/21/2007'
select @date
/*
2007-12-21 00:00:00.000
*/
5.写结果:select lower(‘abc’) +space(5) + rtrim(ltrim(‘你好!‘))
'abc 你好!'6.写函数表达式和结果:计算字符串’SQL Server数据库管理系统’的长度
select len('SQL Server数据库管理系统'), datalength('SQL Server数据库管理系统')7.写函数表达式:求服务器当前的系统日期与时间
select getdate()8.Mary的生日为1987/12/23日,请用日期函数计算Mary现在的年龄
select datediff(year, '1987/12/23', getdate())下节课:
9.求:y= { x+10 x <0
x x=0
x-10 x> 10
select y = case when x<0 then x+10 when x=0 then x else x-10 end
10.如果在student表中的男生多,则显示男生人数以及“男生多”信息。
if (select count(*) from student where 性别='男') > (select count(*) from student where 性别<>'男')
print '男生多'
else
print '男生不多'11. 查看(课程号为'C801')的平均分,如果分数等于或超过60分刚显示“数据结构平均分及格”和平均分值,否则显示“数据结构平均分不及格”。
declare @avg numeric(10,4)
select @avg = avg(score) from 成绩表 where 课程号='C801'
if @avg>60
select '数据结构平均分及格', @avg
else
select '数据结构平均分不及格'实验二
1、使用不带参数的存储过程
(1)创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系。
create proc my_proc
as
select 学号,姓名,性别,年龄,所在院系 from 学生表 where 所在院系='计算机系' and 性别='女'
go(2)执行存储过程
exec my_proc(3)修改存储过程,使其能够查询计算机系女生的所有基本信息
alter proc my_proc
as
select * from 学生表 where 所在院系='计算机系' and 性别='女'
go
2、带输入参数的存储过程
(1)创建一个存储过程my_procsex,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系
create proc my_proc
@sex nvarchar(1)
as
select 学号,姓名,性别,年龄,所在院系 from 学生表 where 性别=@sex
go(2)执行存储过程
exec my_proc '男'3、带输入/输出参数的存储过程
(1)创建一个存储过程my_procage,使其能够根据学生姓名,查询学生年龄。(考虑当学生不存在时给出提示信息)
create proc my_procage
@name nvarchar(10)
as
if not exists (select 1 from 学生表 where 姓名=@name)
raiserror(N'名为“%s”的学生不存在!', 16, 1, @name)
else
select 年龄 from 学生表 where 姓名=@name
go
(2)执行存储过程
exec my_procage '比尔.盖茨'
declare @a int
set @a=32768
select @a,datalength(@a)
go
/*
要求:(1)写出程序运行结果。
(2)把程序类型分别改为smallint、Tinyint、Bigint三种类型,求出程序运行结果。
*/
tinyint 溢出(1字节)
smallint 溢出(2字节)
int 32768 4(4字节)
bigint 32768 8(8字节)
--2.声明一个类型为REAL的局部变量,分别为其赋值为321.12 、87654321.456,显示其结果。
declare @i real, @j real
select @i = 321.12,@j = 87654321.456
select @i,@j
/*
321.12 8.765432E+7
*/--3.根据程序写结果:
declare @c char
set @c='信息学院'
select @c,datalength(@c)
go/*
要求:
(1)写出程序运行结果。
(2)将类型改为CHAR(2)、CHAR(3)、CHAR(5)、CHAR(10)结果为多少?
(3)若将类型改为VARCHAR、VARCHAR(2)、VARCHAR(3)、VARCHAR(10)结果为多少?
(4)若将类型改为NCHAR(2)、NCHAR(3)、NCHAR(5)、NCHAR(10)结果为多少?
(5)若将类型改为NVARCHAR、NVARCHAR(2)、NVARCHAR(10)结果为多少?
(6)比较CHAR、VARCHAR、NCHAR、NVARCHAR四种数据类型的区别。
*/
char ' ' 1
char(2) '信' 2
char(3) '信 ' 3
char(10) '信息学院 ' 10varchar '' 0
varchar(2) '信' 2
varchar(3) '信' 2
varchar(10) '信息学院' 8nchar '信' 2
nchar(2) '信息' 4
nchar(3) '信息学' 6
nchar(10) '信息学院 ' 20nvarchar '信' 2
nvarchar(2) '信息' 4
nvarchar(3) '信息学' 6
nvarchar(10) '信息学院' 8
--4.声明一个类型为日期时间型的变量,要求一:将今天的日期赋值给该变量,并显示其结果。要求二:将今天的日期接照月、日、年的格式赋值给该变量,并显示其结果。
declare @date datetime
set @date = '2007-12-21'
select @date
/*
2007-12-21 00:00:00.000
*/
set @date = '12/21/2007'
select @date
/*
2007-12-21 00:00:00.000
*/
5.写结果:select lower(‘abc’) +space(5) + rtrim(ltrim(‘你好!‘))
'abc 你好!'6.写函数表达式和结果:计算字符串’SQL Server数据库管理系统’的长度
select len('SQL Server数据库管理系统'), datalength('SQL Server数据库管理系统')7.写函数表达式:求服务器当前的系统日期与时间
select getdate()8.Mary的生日为1987/12/23日,请用日期函数计算Mary现在的年龄
select datediff(year, '1987/12/23', getdate())下节课:
9.求:y= { x+10 x <0
x x=0
x-10 x> 10
select y = case when x<0 then x+10 when x=0 then x else x-10 end
10.如果在student表中的男生多,则显示男生人数以及“男生多”信息。
if (select count(*) from student where 性别='男') > (select count(*) from student where 性别<>'男')
print '男生多'
else
print '男生不多'11. 查看(课程号为'C801')的平均分,如果分数等于或超过60分刚显示“数据结构平均分及格”和平均分值,否则显示“数据结构平均分不及格”。
declare @avg numeric(10,4)
select @avg = avg(score) from 成绩表 where 课程号='C801'
if @avg>60
select '数据结构平均分及格', @avg
else
select '数据结构平均分不及格'实验二
1、使用不带参数的存储过程
(1)创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系。
create proc my_proc
as
select 学号,姓名,性别,年龄,所在院系 from 学生表 where 所在院系='计算机系' and 性别='女'
go(2)执行存储过程
exec my_proc(3)修改存储过程,使其能够查询计算机系女生的所有基本信息
alter proc my_proc
as
select * from 学生表 where 所在院系='计算机系' and 性别='女'
go
2、带输入参数的存储过程
(1)创建一个存储过程my_procsex,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系
create proc my_proc
@sex nvarchar(1)
as
select 学号,姓名,性别,年龄,所在院系 from 学生表 where 性别=@sex
go(2)执行存储过程
exec my_proc '男'3、带输入/输出参数的存储过程
(1)创建一个存储过程my_procage,使其能够根据学生姓名,查询学生年龄。(考虑当学生不存在时给出提示信息)
create proc my_procage
@name nvarchar(10)
as
if not exists (select 1 from 学生表 where 姓名=@name)
raiserror(N'名为“%s”的学生不存在!', 16, 1, @name)
else
select 年龄 from 学生表 where 姓名=@name
go
(2)执行存储过程
exec my_procage '比尔.盖茨'
(1)32768,4(其为INT型,固为4)
(2)溢出
(3)溢出
(4)32768,8
2
declare @a REAL
set @a=321.12
select @a
go
declare @a REAL
set @a=87654321.456
select @a
go
321.12
8.765432E+73
(1)null 1
(2)信 2 ,信 3,信息 5,信息学院 10
(3)null 1,信 2,信 2,信息学院 8
(4)信息 4、信息学 6、信息学院 10、信息学院 20
(5)信息 2、信息 4、信息学院 8
(6)char 定长字符串,VARCHAR 可变长,NCHAR Unicode 定长字符,NVARCHAR Unicode 变长字符
-------------------------------------------------------------------------------------