T-SQL作业
实验-T-SQL高级应用(答案)
实验六T-SQL高级应用一、实验目的:(1) 掌握T-SQL程序设计的控制结构及程序设计逻辑。
(2) 掌握自定义函数、存储过程、游标的使用。
二、实验内容(1) 从学生数据库school中查询所有同学选课成绩情况:姓名、课程名、成绩。
要求:小于60分的输出“不及格”;60—70分的输出“及格”;70—80分的输出“中等”;80—90分的输出“良好”;90—100分的输出“优秀”。
select sname as '姓名',cname as '课程名',casewhen degree<60 then '不及格'when degree<70 then '及格'when degree<80 then '中等'when degree<90 then '良好'else '优秀'end as '成绩'from student s,course c,scwhere s.sno=sc.sno and o=o(2) 创建一个自定义函数,根据学生姓名查询该生所有的选课信息,包括课程名、成绩。
--创建函数f1create function f1(@xm char(10))returns tableasreturn (select cname,degreefrom student s,course c,scwhere s.sno=sc.sno and o=o and sname=@xm) --调用函数f1select * from f1('刘晨')(3) 创建一个自定义函数,实现如下功能:判断一个数是否是素数。
--创建函数,返回1代表n是素数,返回0代表n不是素数create function sh(@n int)returns tinyintbegindeclare @i int,@f tinyintset @i=2set @f=1 --假定@n是素数while @i<=sqrt(@n)beginif @n%@i=0beginset @f=0breakendset @i=@i+1endreturn @fendgo--调用函数sh,判断5是否是素数if dbo.sh(5)=1print '是素数'elseprint '不是素数'(4)创建包含两个参数的存储过程stucred,一个输入参数(@sno)用于指定学生学号,一个输出参数(@s_cred)用于返回该生所修学分总和。
T-SQL实训练习
T-SQL练习
任务1:请使用T-SQL编写一个程序,定义两个整型变量,使用set 和select分别将其赋值5和-3,并将这两个变量进行加法运算,最后要求分别使用select和print输出计算结果。
(参考Page163,例9.2)请将你的T-SQL程序代码复制到这里:
任务2、请定义字符型变量,用于存放“中华人民共和国PRC”,要求分别使用合适的字符串函数,完成下列要求:(参考Page163,例
9.3)
①统计其字符个数(参考Page175-len())
②返回字符串右边开始的3个字符(参考Page176-right())
③将大写字母转换为小写字母(参考Page176-lower())
请将你的T-SQL程序代码复制到这里:
任务3、请使用数学函数PI(),计算一个半径为5的圆的周长和面积。
(参考Page177-PI())
请将你的T-SQL程序代码复制到这里:
任务4、请调整你的windows系统的时间至准确时间,然后使用日期函数,分别统计香港回归日(1997-07-1)和澳门回归日(1999-12-20)距离今天的年数、月数、天数?(参考Page178-例9.28)
请将你的T-SQL程序代码复制到这里:
任务5、请编写一个简单的循环程序,计算100的阶乘。
(参考Page171-例9.17)
请将你的T-SQL程序代码复制到这里:。
T-SQL作业答案
24.写出下列每条语句或程序段的功能假设存在名为AAA的数据库,包括Students(学号 char(8),姓名varchar(8),年龄 int,专业 varchar(20),入学日期 DateTime)和Score (学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。
(1)SELECT *FROM StudentsWHERE DATEPART(year,入学日期) =DATEPART(year,GETDATE())((1)从Students表中查询出所有当年(系统时间)入学的学生记录。
)(2)DECLARE @MyNO CHAR(8)SET @MyNO='20030001'IF (SELECT 专业FROM Students WHERE 学号=@MyNO)='计算机软件'BEGINSELECT AVG(成绩) AS 平均成绩FROM ScoreWHERE 学号=@MyNOENDELSEPRINT '学号为' +@MyNO+'的学生不存在或不属于软件专业' GO((2)首先定义一个名为@MyNo的局部变量,并给它赋初值,如果@MyNo属于计算机软件专业,则显示出平均成绩,否则显示“学号为@MyNo 的学生不存在或不属于软件专业”)(3)declare @a numeric(5,2)set @a=(select avg(成绩) from score)select *from scorewhere 成绩>=@a(从score表中查询出大于等于平均成绩的所有记录。
)(4)declare @a numeric(5,2),@b numeric(5,2) set @a=(select max(成绩) from score)set @b=(select min(成绩) from score)print @a-@b(求出score表中最高成绩与最低成绩的分数之差。
第四章T-SQL语言、存储过程触发器例题
第四章T-SQL语言部分例题【例4-13】创建一个只有一个主数据文件SchoolTest(不指定该文件的大小)的数据库。
CREATE DATABASE SchoolTestON(NAME=SchoolTest_Data,FILENAME='D:\SchoolTest_Data.MDF')【例4-14】建立学生表T_StudentTest。
CREATE TABLE T_StudentTest (StudentCode CHAR(8) NOT NULL UNIQUE, /*唯一性约束,不许取空值*/StudentName V ARCHAR(16) NOT NULL,Sex CHAR(2) NOT NULL,LiveInDorm BIT DEFAULT 1, /*默认值为1*/Constraint StudentPK Primary Key(StudentCode) /* StudentCode为主键约束*/ )【例4-15】建立成绩表T_GradeTest。
CREATE TABLE T_GradeTest(StudentCode CHAR(8) NOT NULL , /*不许取空值*/Grade REAL DEFAULT 0 , /*默认值为0*/Constraint GradeCK Check(Grade>=0 AND Grade<=100)/*检查约束0>= Grade<=100*/)【例4-16】删除T_GradeTest表DROP TABLE T_GradeTest【例4-17】在T_Student表的姓名(StudentName)字段上建立升序索引。
CREATE INDEX NameIndex on T_Student (StudentName)【例4-18】在T_Student表的学号(StudentCode)字段上建立唯一降序索引。
CREATE UNIQUE INDEX StudentCodeIndex on T_Student (StudentCode DESC)【例4-19】删除T_Student表中索引名称分别为NameIndex和StudentCodeIndex的两个索引。
T_SQL函数习题及答案(完整版)
作业参考答案:--1.设数据库中有学生成绩表sc(sno char(10),cno char(5),grade tinyint),设计一个函数Count_course,返回指定学生的选修的课程门数. 注意:没有选修时应返回0;create function Count_course(@sno char(10))returns intas beginreturn( select count(0) from sc where sno=@sno)end--2.写一个T-sql函数reversion,完成颠倒一个字符串,即:select dbo.reversion('abcd') 输出的结果为dcba;create function reversion(@str varchar(4000))returns varchar(4000)as begindeclare @ret varchar(4000)declare @i intset @ret=''set @i=len(@str)while @i>0 beginset @ret=@ret+substring(@str,@i,1)set @i=@i -1endreturn @retend--select dbo.reversion('abcdefg')--对照: 下面的算法有错误,当字符串长度超过2000后不能得到正确结果create alter function reversion2(@str varchar(4000))returns varchar(4000)as begindeclare @i int, @j intset @i=len(@str)set @j=len(@str)while @i>0 beginset @str=@str+substring(@str,@i,1)set @i=@i -1endset @str=right(@str,@j)return @strend--select dbo.reversion2('abcdefg')--3.写一个函数T-sql函数elimination(a,b)将出现在第一个字符串中的第二个字符串中的所有字符删除,即:select dbo.elimination('abcdefg12345','bd2') 输出为:acefg1345;create function elimination(@a varchar(4000),@b varchar(4000))returns varchar(4000)as begin--declare @ret varchar(4000)declare @i int--set @ret=''set @i=1while @i < len(@b) beginset@a=replace(@a,substring(@b,@i,1),'')set @i= @i + 1endreturn @aend--select dbo.elimination('abcdefg12345','bd2') --4.写一个函数Output_RMB,完成将人民币数值转换为汉字大写,即:select dbo.Output_RMB(4567.12) 输出为:肆仟伍佰陆拾柒元壹角贰分;/*方法二:推荐使用的方法,支撑两种转换类型select dbo.Convert_money('20002.45',0) select dbo.Convert_money('20002.45',1)*/Create function Convert_money(@n_LowerMoney numeric(15,2),@v_TransType int)returns varchar(200)ASbeginDeclare @v_LowerStr V ARCHAR(200) -- 小写金额Declare @v_UpperPart V ARCHAR(200)Declare @v_UpperStr V ARCHAR(200) -- 大写金额Declare @i_I intselect @v_LowerStr=LTRIM(RTRIM(STR(@n_LowerMoney,20,2) )) --四舍五入为指定的精度并删除数据左右空格select @i_I = 1select @v_UpperStr = ''while ( @i_I <= len(@v_LowerStr))beginselect @v_UpperPart=casesubstring(@v_LowerStr,len(@v_LowerStr) - @i_I + 1,1) WHEN '.' THEN '元'WHEN '0' THEN '零'WHEN '1' THEN '壹'WHEN '2' THEN '贰'WHEN '3' THEN '叁'WHEN '4' THEN '肆'WHEN '5' THEN '伍'WHEN '6' THEN '陆'WHEN '7' THEN '柒'WHEN '8' THEN '捌'WHEN '9' THEN '玖'END+ case @i_IWHEN 1 THEN '分'WHEN 2 THEN '角'WHEN 3 THEN ''WHEN 4 THEN ''WHEN 5 THEN '拾'WHEN 6 THEN '佰'WHEN 7 THEN '仟'WHEN 8 THEN '万'WHEN 9 THEN '拾'WHEN 10 THEN '佰'WHEN 11 THEN '仟'WHEN 12 THEN '亿'WHEN 13 THEN '拾'WHEN 14 THEN '佰'WHEN 15 THEN '仟'WHEN 16 THEN '万'ELSE ''ENDselect @v_UpperStr = @v_UpperPart + @v_UpperStrselect @i_I = @i_I + 1end--print '//v_UpperStr='+@v_UpperStr +'//' if ( @v_TransType=0 )beginselect @v_UpperStr=REPLACE(@v_UpperStr,'零拾','零')select @v_UpperStr=REPLACE(@v_UpperStr,'零佰','零')select @v_UpperStr=REPLACE(@v_UpperStr,'零仟','零')select @v_UpperStr=REPLACE(@v_UpperStr,'零零零','零') select @v_UpperStr=REPLACE(@v_UpperStr,'零零','零')select @v_UpperStr=REPLACE(@v_UpperStr,'零角零分','整') select @v_UpperStr=REPLACE(@v_UpperStr,'零分','整')select @v_UpperStr=REPLACE(@v_UpperStr,'零角','零')select @v_UpperStr=REPLACE(@v_UpperStr,'零亿零万零元','亿元')select @v_UpperStr=REPLACE(@v_UpperStr,'亿零万零元','亿元' select @v_UpperStr=REPLACE(@v_UpperStr,'零亿零万','亿') select @v_UpperStr=REPLACE(@v_UpperStr,'零万零元','万元') select @v_UpperStr=REPLACE(@v_UpperStr,'万零元','万元') select @v_UpperStr=REPLACE(@v_UpperStr,'零亿','亿')select @v_UpperStr=REPLACE(@v_UpperStr,'零万','万')select @v_UpperStr=REPLACE(@v_UpperStr,'零元','元')select @v_UpperStr=REPLACE(@v_UpperStr,'零零','零')end-- 对壹元以下的金额的处理if ( substring(@v_UpperStr,1,1)='元' ) beginselect @v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))endif (substring(@v_UpperStr,1,1)= '零') begin select @v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))endif (substring(@v_UpperStr,1,1)='角') begin select @v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))endif ( substring(@v_UpperStr,1,1)='分') beginselect @v_UpperStr=substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))endif (substring(@v_UpperStr,1,1)='整')begin select @v_UpperStr = '零元整'endreturn @v_UpperStrendgo/*/*5.写一个函数Custom_A VG模拟多名裁判打分时求平均值的函数,去掉一个最高分、一个最低分、然后取平均。
T-SQL练习题
T-SQL练习题
一、数据表及操作:
所示。
3.用UPDATE语句实现更新:把工号为“02004”的教师的部门代号修改为“05”。
4.DELETE语句实现删除:删除部门代号为“03”的所有的教师信息。
二、查询
下面的查询基于下图的3个表进行。
1.查询全体学生的姓名、学号、所在系。
2.查询年龄不在20~23岁之间的学生姓名、系别和年龄。
3.查询所有姓刘学生的姓名、学号和性别。
4.求各个课程号及相应的选课人数。
5.查询每个学生的学号、姓名、选修的课程名及成绩
6.将所有学生的年龄增加1岁。
7.检索不学课程号为“C01”课程的学生信息
8.检索至少学过课程号为“C01”和“C02”的学生信息;
9.从学生表中删除成绩出现过0分的所有学生信息
10.找出没有选修过“数据库基础”课程的所有学生姓名
11.检索所有比“宋平”年龄大的学生的姓名、年龄和性别,
12.将选课在3门以上(包括3门)的学生的学号,姓名,平均分和选课门数
按平均分降序排序,并将结果存于数据库表stu_temp(字段名为学号,姓名,平均分和选课门数)
13.将“高等数学”课程不及格的成绩修改为0分。
T-SQL综合练习
T-SQL综合练习T-SQL综合练习注:没有指定表的,所有都是使用AdventureWorks,用T-SQL 语句完成题目要求。
1.查询表Sales.CreditCard中的CardNumber,更改列标题为…Credit CardNumber?2.查询表product中的categoryid,unitprice并分别给定例标题产品类别代号,单价;系统先对产品类别递增排序,然后在每个产品类别内按照单价减序排列。
3.查询表employee中的title(产品标识符),要求得到唯一的产品标识符。
4.利用查询得到今天,明天,前天的现在时间.5.在employee表和contact表中,查询列为fullname,VacationHours,SickLeaveHours,?休假总数?.其中fullname为firstname、lastname 字符的结合字符串,休假总数,为前两列的和。
6.为所有的product表中的productNuberm数据开头增加04编号,要求0要出现。
7.查询contact表中区号为415的所有电话号码。
8.查询address表中地址为4个字符的邮政编码,其邮政编码的第一个字符限制在A-E、第二个字符为A-Z,最后两个字符分别为数字。
查询表contact中所有一AI开头,并且第三个字母不是a的名称,并用firstname 对其进行排序。
查询store表中所有CustomID以1开头,且Name以B开头的行。
9.查询employees表中职称title不是Design Engineer、ToolDesigner或者Marketing Assistant的员工的名单。
10.在表produst中查询ProductID,ProductModelID列,并且要求ProductModelID产品型号为20及21的红色(red)产品。
在表produst中查询ProductID,ProductModelID,并且要求ProductModelID产品型号为20和21的红色(red)产品。
t_sql编程例题
t_sql编程例题当涉及到T-SQL编程,我们通常会涉及到数据库查询、存储过程、触发器等方面。
下面我将针对这些方面提供一些例题和解答。
1. 数据库查询:题目,假设有一个学生表(Student),包含学生ID (StudentID)、姓名(Name)、年龄(Age)和成绩(Grade)四个字段。
请编写一个T-SQL查询,找出成绩大于80分的学生信息。
解答,SELECT FROM Student WHERE Grade > 80;2. 存储过程:题目,编写一个存储过程,根据输入的学生ID,返回该学生的姓名和年龄。
解答:CREATE PROCEDURE GetStudentInfo.@StudentID int.AS.BEGIN.SELECT Name, Age FROM Student WHERE StudentID =@StudentID;END.3. 触发器:题目,在学生表(Student)中,当插入新记录时,自动在成绩表(Grade)中插入对应的学生ID和成绩(初始值为0)。
解答:CREATE TRIGGER InsertGrade.ON Student.AFTER INSERT.AS.BEGIN.INSERT INTO Grade (StudentID, Grade) SELECT StudentID,0 FROM inserted;END.这些例题涵盖了T-SQL编程中常见的查询、存储过程和触发器。
通过这些例题,你可以加深对T-SQL编程的理解,并在实际工作中更好地应用T-SQL编程技巧。
希望这些例题能够帮助到你。
用T-SQL语句完成创建与管理表操作练习
在SSMS中创建与管理表操作练习一1.创建TSJY数据库,并在TSJY数据库中创建如下三张表,表结构如下:(1)表名:XS,存放学生基本信息。
(10分)创建名为CK_XS的check约束,设置性别字段的值只能为‘男’或者‘女’。
(2)表名:TS,存放图书基本信息。
(10分)创建名为CK_TS的check约束,设置状态字段的值只能为‘在馆’或者‘借出’。
(3)表名:JY,存放学生借阅图书信息。
(10分)2.维护表操作:将XS表的JSRQ字段的默认值为当前系统时间getdate()3.在XS表中输入以下记录。
XH XM XB ZY CSRQ 95001 张三男计算机1990-2-1 95002 李四男电子商务1989-5-4 95003 陈红女电子商务1989-6-795004 倪娟女计算机网络技术1988-5-695005 李利男电子商务1990-8-9在TS表中输入如下记录SH SM CBS ZB DJ ZTj10098 国际贸易实务浙江科学出版社吴百福43在馆k20045 dephi7.0实用教程机械工业出版社张帆38借出w10003 撒哈拉的故事北京十月文艺出版社三毛20在馆s20005 改变一生的60个心理学效应中国青年出版社郑小兰22在馆在JY表中输入以下记录LSH XH SH JSRQ95003 w10003 2009-9-195003 s20005 2009-12-2395005 j10098 2009-8-7 4.JY表中再插入如下记录:5,20004,s0008,2010-12-23能不能完成插入操作,为什么?如果要插入上述记录,如何进行?5.删除XS表中学号为95001的记录。
6.删除XS表中学号为95005的记录,能否完成删除操作,为什么?如果要将这条记录删除,如何进行?3.创建school数据库中的表。
(1)、College表—学院(2)、Specialty表—专业5.表student中给enteryear设置4位数字的值的约束,score字段的值要求大于0,bankid的值不能有重复。
T-SQL语句练习题
一、根据要求用T-SQL语句创建数据库和表。
创建数据库“英才大学成绩管理”。
分别创建三个表,具体的表名、字段名如下:学生(学号,姓名,性别,出生年月,籍贯,班级) 其中性别字段只能为“男”或“女”课程(课程编号,课程名称,学分) 其中课程名称字段为唯一值约束成绩(学号,课程编号,成绩)带下划线的字段为主键,表之间的外键关联参考下图,各字段的数据类型应尽量合理。
CREATE DATABASE 英才大学成绩管理create table 学生(学号 char(6) primary key,姓名 char(6),性别 char(2) check(性别='男' or 性别='女'),出生年月 datetime,籍贯 varchar(50),班级 char(12),)create table 课程(课程编号 char(5) primary key,课程名称 char(20) unique,学分 smallint,)create table 成绩(学号 char(6) references 学生(学号),课程编号 char(5) references 课程(课程编号),成绩 decimal(5,2),primary key(学号,课程编号))二、根据T-SQL语句写出执行结果(20分,每题4分)对上题所创建的表添加记录后如图所示,详细写出下面的SQL语句的执行结果。
1、select * from 课程 where 课程编号='30442'1、2、select 姓名 from 学生where 性别='女' and 籍贯='辽宁'2、3、select 姓名,课程名称,成绩 from 学生,课程,成绩where 学生.学号=成绩.学号 and 课程.课程编号=成绩.课程编号and 学分='4'3、4、select max(成绩) as 最高分 from 课程,成绩where 课程.课程编号=成绩.课程编号 and 课程名称='C语言程序设计' 4、5、select 籍贯,count(*) as 人数from 学生where 班级='计ZG091' group by 籍贯5、三、对第一题中的表用T-SQL语句完成如下操作。
T-SQL测试题
1) 在SQL Server 中,为数据库表建立索引能够()。
A. 防止非法的删除操作B. 防止非法的插入操作C. 提高查询性能D. 节约数据库的磁盘空间2) 在SQL SERVER中,创建一个表使用()语句。
A. INSERTB. DROPC. CREATED. ALERT3) 在SQL SERVER中,下面关于视图说法错误的是()。
A. 对查询执行的大多数操作也可以在视图上进行B. 使用视图可以增加数据库的安全性C. 不能利用视图增加,删除,修改数据库中的数据D. 视图使用户更灵活的访问所需要的数据4) 在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的()阶段。
A. 需求分析B. 概要设计C. 逻辑设计D. 物理设计5) 在SQL Server 数据库中,如果强制要求grades表中的学员必须是Students表中存在的学员,以下描述正确的是()。
A. 在grades表中创建外键约束B. 在grades表中创建检查约束C. 在grades表中创建唯一约束D. 在grades表中创建默认约束6) 在SQL Server 数据库中,下面的T-SQL语句段执行第三句时出现错误,数据库中的内容修改情况是()。
BEGIN TRANSACTIONupdate Account set balance=7800 where id=1update Account set balance=9000 where id=1IF error <> 0ROLLBACK TRANSACTIONELSECOMMIT TRANSACTIONA. Account表中id为1的记录中balance字段的值被修改为7800B. Account表中id为1的记录中balance字段的值被修改为9000C. Account表中id为1的记录中balance字段的值不变D. 不可能发生这种情况7) 在SQL Server 数据库中,有关下列T-SQL语句的功能,说法正确的是()。
T-SQL编程及练习题
T-SQL流程控制
• Try…catch语句:可进行结构化错误处理。
BEGIN TRY sql语句或语句块 END TRY BEGIN CATCH sql语句或语句块 END CATCH
• Retrun语句
终止目前T-SQL语句的执行,从查询或过程中无条件的退出来,并可 返回整数值给调用程序。可以在任何时候从过程、批处理或语句块中退 出,而不是跳出某个循环或某个位置。主要在存储过程或函数中使用。
多语句表值函数
• 示例:
CREATE FUNCTION f_test3(@dept_id int) RETURNS @emp TABLE(empid int NOT NULL, lname NVARCHAR(20) NOT NULL, sal money NOT NULL) BEGIN DECLARE @mgr_id int SELECT @mgr_id=manager_id from departments where department_id=@dept_id INSERT @emp SELECT employee_id,last_name,salary from employees where manager_id=@mgr_id RETURN END GO SELECT * from dbo.f_test3(10)
• 执行:
EXECUTE test4 @employee_id=100,@last_name=‘’ --返回King 或 declare @name varchar(20) EXECUTE test4 100,@last_name=@name output --返回King select @name --返回King
用户定义函数
主要内容
T-SQL练习题参考答案
T-SQL练习题参考答案一、StudentInfo数据库已发给大家。
其中包含两个表:stuInfo和stuMarks。
根据这个数据库完成下列各题:1.编写T-SQL查找李文才的左右同桌?分析:第一步,找出“李文才“的座位号;第二步,李文才的座位号加1或减1/*--查找李文才的信息--*/DECLARE @name varchar(8) --学员姓名 SET @name='李文才' --使用SET 赋值SELECT * FROM stuInfo WHERE stuName = @name /*--查找李文才的左右同桌--*/ DECLARE @seat int --座位号SELECT @seat=stuSeat FROM stuInfo --使用SELECT赋值 WHEREstuName=@name SELECT * FROM stuInfoWHERE (stuSeat = @seat+1) OR (stuSeat = @seat-1) GO2. 统计并显示本班笔试平均分,如果平均分在70以上,显示“成绩优秀“,并显示前三名学员的考试信息;如果在70以下,显示“本班成绩较差“,并显示后三名学员的考试信息。
分析:第一步,统计平均成绩存入临时变量;第二步,用IF-ELSE判断;declare @myavg floatselect @myavg=avg(writtenExam) from stuMarks --使用select赋值print '本班的平均分:'+convert(varchar(5),@myavg) if (@myavg>70) beginprint '本班笔试成绩优秀!'select top 3 * from stuMarks order by writtenExam desc end elsebeginprint '本班笔试成绩优秀!'select top 3 * from stuMarks order by writtenExam end go3. 本次笔试成绩较差,假定要提分,确保每人笔试都通过。
实验10用T-SQL创建和管理数据库答案
实验10 使用T-SQL语言管理数据库一、实验目的1.掌握查询分析器的使用方法。
2.掌握使用T-SQL语言如何创建数据库。
3.掌握使用T-SQL语言如何查询数据库4.掌握使用T-SQL语言如何删除数据库。
5.掌握如何使用T-SQL语言还原数据库。
6.掌握如何使用T-SQL语言修改数据库。
二、实验内容1.新建以学生本人学号(后两位)+姓名命名的文件夹,启动企业管理器,使用查询分析器,利用T-SQL语言创建以“高校管理系统”命名的包含多个数据文件和日志文件的SQL SERVER数据库,数据文本分别为:高校管理系统_DATA1、高校管理系统_DATA2。
其中高校管理系统_DATA1文件为主要数据库文件。
主要数据文件初始大小为20MB,最大尺寸为无限大,增长速度为10MB,次要数据名为“高校管理系统_DATA3”,初始大小为5MB,最大尺寸为无限大,增长速度为1MB,文件事务日志文件名为“高校管理系统_LOG1”,初始大小为3MB,最大尺寸为30MB,增长速度为10%。
高校管理系统_DATA2文件采用默认设置。
(操作提示:创建数据库时要注意数据文件和事务日志的存放位置,以下各题文件存储位置相同)。
SQL代码如下:CREATE DATABASE 高校管理系统ON(NAME = 高校管理系统_DATA1,FILENAME = 'D:\数据库练习\高校管理系统\高校管理系统_DATA1.MDF',SIZE = 20MB,MAXSIZE = UNLIMITED,FILEGROWTH = 1MB),(NAME = 高校管理系统_DATA2,FILENAME = 'D:\数据库练习\高校管理系统\高校管理系统_DATA2.MDF' ),(NAME = 高校管理系统_DATA3,FILENAME = 'D:\数据库练习\高校管理系统\高校管理系统_DATA3.NDF',SIZE = 5MB,MAXSIZE = UNLIMITED,FILEGROWTH = 1MB)LOG ON(NAME = 高校管理系统_LOG1,FILENAME = 'D:\数据库练习\高校管理系统\高校管理系统_LOG1.LDF',SIZE = 3MB,MAXSIZE = 30MB,FILEGROWTH = 10%)2.使用企业管理器完全备份高校管理系统。
实验6-T-SQL语句[2页]
实验:T-SQL语句一、实验目的与任务目的:旨在训练学生使用T-SQL语句创建变量,利用变量进行查询,打印变量值;会使用聚合函数、日期函数和其他函数以及利用流程控制语句编程等。
任务1:声明两个变量@StuID和@CourseID,分别赋值为‘A00001’和1。
查询SC表中对应的成绩,并将成绩放入变量@Grade中保存,最后打印该成绩的值。
任务2:查询‘A00001’号学生的1号课程成绩,并放入变量保存,如果成绩大于等于60,则显示“及格”,否则显示“不及格”。
任务3:统计SC表中‘A00001’号学生的平均成绩、最高成绩及最低成绩分别放入变量保存,最后打印变量的值。
--1declare@CourseID intdeclare@StuID char(10)declare@Grade intset @StuID = 'A00001'set @CourseID = 1select@Grade=Scorefrom SCwhere StuID=@StuID and CourseID=@CourseIDprint @Grade--2declare@CourseID intdeclare@StuID char(10)declare@Grade intset @StuID = 'A00001'set @CourseID = 1select@Grade=Scorefrom SCwhere StuID=@StuID and CourseID=@CourseIDprint @Gradeif (@Grade>60)beginprint'Pass'endelseprint'Failed'--任务3declare@MAX floatdeclare@MIN floatdeclare@AVG floatselect@MAX=max(Score),@MIN=min(Score),@AVG=avg(Score)from SC where StuID=’A00001’print‘平均分:’+convert(char(10),@AVG)print @MAXprint @MIN三、内容与要求课题名称——T-SQL语句(一)课题内容按照任务1至任务3逐步完成,完成后学生可以使用变量进行T-SQL编程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业
创建的产品销售数据库,数据库名为
姓名拼音首字母CPXS,数据库,姓名拼音首字母CPXS包含下列3个表:
产品表:表名为CP,描述产品信息
销售商表:表名为XSS,描述销售商信息
产品销售表:表名为XSCP,描述产品的销售信息.
1) 使用T-SQL实现创建数据库名称为“姓名拼音首字母CPXS”。
要求截查询分析器中运行后的图。
要求:主要数据文件:逻辑名CPXS_data,物理文件名e:\CPXS.mdf,初始大小为10MB,最大为40MB,增长幅度为10%.
日志文件逻辑名cpxs_log,物理文件名e:\CPXS_log.ldf,初始大小为2MB,最大为5MB,增长幅度为1MB.
2)利用企业管理器在“姓名拼音首字母CPXS”数据库中创建表CP、XSS、XSCP
要求截表结构图,在表上右击打开设计表截图
产品表(CP)结构
销售商(XSS)表结构
产品销售(XSCP)表结构
3)利用企业管理器向3张表添加数据如下:要求打开表,截表中数据图
XSCP表数据。