实验7_T-SQL语言编程基础[1]1
实验七TSQL编程
实验7 T-SQL编程
一、实验目的
1.掌握Transact SQL语言的编程知识以及SQL Server常用系统函数的使用。
2.掌握程序中的批处理、脚本和注释的基本概念和使用方法。
3.掌握程序中的流程控制语句。
4.掌握批处理、事务以及游标的管理与使用。
二、实验内容
1.统计customer表中,大户类型的客户总数。
2.统计Eproduct表单价的平均值、最低值和最高值。
3.在customer表上如果存在注册日期在2003年以前的客户,给出这些客户的列表。
否则给出一条提示信息,说明没有满足条件的客户。
4.计算s=1!+2!+…+10!。
5.显示所有类型为‘大户’的客户信息,并且在显示之前,暂停1分钟。
6.使用事务处理,将用户李力青的电话号码由原来的38011566改为38011567。
7.使用游标来计算2010年1月产品的通信费用,填入帐单信息表(Bills)中。
实验7 Transact-SQL程序设计
实验7 Transact-SQL程序设计一、实验目的1.掌握Transact-SQL的数据类型、常量变量、表达式等概念。
2.掌握SQL Server 2005中常用函数的用法。
3.掌握程序中注释的基本概念和使用方法。
4.了解程序中的流程控制语句。
二、实验准备1.了解函数的使用方法。
2.了解系统提供的常用数学函数、日期和时间函数、字符串函数和数据类型转换函数的用法。
3.了解程序中注释的语法格式。
4.了解程序中的流程控制语句:IF-ELSE、CASE、WHILE等控制流语句。
三、实验内容和步骤1.在查询分析器中,选择studentsdb数据库,在学生表中查找姓“张”的学生,并将该生姓名赋于变量@stu_name。
提示:首先要定义变量@stu_name。
2.定义int型局部变量@grademax、@grademin、@gradesum,在成绩表中查找课程编号是“C002”课程的最高分、最低分和总分,分别赋给@grademax、@grademin和@gradesum,并显示。
3. 使用SET命令将查询结果集记录数目赋值给int型局部变量@row。
给下面代码中的划线处填上适当的内容,以完成上述操作。
DECLARE @rows____int_______SET _____@rows _______=(SELECT COUNT(*)FROM 成绩表)_____ SELECT ______@rows --显示@rows的值4.以下代码在课程表中插入新记录:DECLARE @intCId int,@intErrorCode intINSERT INTO 课程表(课程编号,课程名称,学分)VALUES('0006','VB程序设计',2)SELECT @intCId=@@identity,@intErrorCode=@@errorSELECT @intCId,@intErrorCode将该代码段连续执行两次,观察两次显示的信息及课程表中数据的变化,为什么前后两次执行时显示的信息会不同?提示:@@identity,@@error参看教材P172 表9-2生和女生人数。
实验七 T_SQL的程序设计
实验七T_SQL的程序设计一、实验目的1、掌握T_SQL的简单的变量的声明、赋值,输出语句。
2、学生能够编写简单的程序。
二、实验要求使学生了解T_SQL的编程的基础知识,掌握简单的变量的声明、赋值,输出以及流程控制语句。
三、实验环境1、操作系统:WinXp Professional2、数据库:SQL Server 2000个人版四、实验内容和步骤局部变量在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用。
局部变量必须以“@”开头,而且必须先用DECLARE命令说明后才可使用。
其说明形式如下:DECLARE @变量名变量类型[@变量名变量类型…]在Transact-SQL中不能像在一般的程序语言中一样使用“变量=变量值”来给变量赋值。
必须使用SELECT或SET命令来设定变量的值,其语法如下:SELECT @局部变量=变量值或SET @局部变量=变量值DECLARE 命令用于声明一个或多个局部变量、游标变量或表变量。
在用DECLARE 命令声明之后,所有的变量都被赋予初值NULL。
需要用SELECT 或SET命令来给变量赋值。
变量类型可为系统定义的或用户定义的类型,但不能为TEXT、NTEXT、IMAGE类型。
CURSOR 指明名变量是局部的游标变量。
语法如下:DECLARE {{ @local_variable data_type }| { @cursor_variable_name CURSOR }| { table_type_definition }} [,...n]]例7-1:声明一个长度为10 个字符的变量“id”并赋值10010001declare @id char(10)这个小括号是英文的括号select @id=此处是英文的左单引号…‟10010001‟‟这两个单引号都要英文状态下的左单引号print @id在查询分析器中的结果如图7-1所示。
图7-1简单的赋值语句窗口注意:可以在Select命令查询数据时,在Select命令中直接将列值赋给变量例7-2在屏幕中输出“科技、SQL Server”字样declare @x char(4), @y char(7) 英文状态下的逗号select @x = 'SQL', @y = 'Server'print '科技'print @x +@y在查询分析器中的结果如图7-2所示。
实验7 T-SQL语言程序设计
实验七T-SQL语言程序设计实验目的与要求⏹熟练掌握变量的定义和赋值。
⏹熟练掌握用户自定义数据类型定义、使用和删除。
⏹熟练掌握各种运算符。
⏹熟练掌握流程控制语句,尤其是条件语句和循环语句。
⏹熟悉并掌握常用的系统函数。
二、实验内容和步骤1、为提高学生学习动力,学校推出一项举措:根据本年综合测评成绩来确定下一年允许图书借阅本书,综合测评<450 允许借阅3本;综合测评>=450且综合测评<500允许借阅4本;综合测评>=500且综合测评<550允许借阅5本;综合测评>=550允许借阅6本,请在学生表中添加“借阅本数”列存放根据综合测评列生成的信息。
添加“借阅本数”列:ALTER TABLE[ex7].[dbo].[学生]ADD借阅本数INT根据“综合测评”计算“借阅本数”:UPDATE[ex7].[dbo].[学生]SET借阅本数=CASEWHEN综合测评<450 THEN 3WHEN综合测评>=450 AND综合测评<500 THEN 4WHEN综合测评>=500 AND综合测评<550 THEN 5WHEN综合测评>=550 THEN 6END2、创建触发器实现,在向学生表中添加学生或将当前学生的综合测评值变更时,自动在借阅本数列输入相应的值。
--创建触发器CREATE TRIGGER TON学生AFTER UPDATEASDECLARE@OLD_SCORE FLOAT,@NEW_SCORE FLOAT,@BORROW_NUM INT,@ID FLOAT SELECT@OLD_SCORE=综合测评FROM DELETEDSELECT@NEW_SCORE=综合测评,@ID=学号FROM INSERTEDIF UPDATE(综合测评)BEGINUPDATE学生SET借阅本数=CASEWHEN@NEW_SCORE<450 THEN 3WHEN@NEW_SCORE>=450 AND@NEW_SCORE<500 THEN 4WHEN@NEW_SCORE>=500 AND@NEW_SCORE<550 THEN 5WHEN@NEW_SCORE>=550 THEN 6ENDWHERE学号=@IDEND验证:UPDATE学生SET综合测评= 455WHERE学号='1606050228'CREATE TRIGGER T1ON学生AFTER INSERTASDECLARE@NEW_SCORE FLOAT,@BORROW_NUM INT,@ID FLOATSELECT@NEW_SCORE=综合测评,@ID=学号FROM INSERTEDBEGINSET借阅本数=CASEWHEN@NEW_SCORE<450 THEN 3WHEN@NEW_SCORE>=450 AND@NEW_SCORE<500 THEN 4WHEN@NEW_SCORE>=500 AND@NEW_SCORE<550 THEN 5WHEN@NEW_SCORE>=550 THEN 6ENDWHERE学号=@IDENDINSERT INTO[ex7].[dbo].[学生](学号,综合测评)VALUES ('1',425)3、各学院对学生的综合测评进行汇总,其中统计分数在500分以上的学生的人数占学院总人数的百分比。
实验07_使用T-SQL编写存储过程和函数实验报告
北京理工大学珠海学院实验报告ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 班级学号姓名指导教师成绩实验题目使用T-SQL编写存储过程和函数实验时间一实验目的1. 理解存储过程的概念、使用方式;2. 熟悉使用T-SQL编写存储过程来进行数据库应用程序的设计;3. 掌握SQL Server中自定义函数的概念,熟悉自定义函数的类型;4. 能创建相关的自定义函数,解决T-SQL程序设计中的相关问题。
二实验工具SQL Server 2008利用SQL Server 2008 SSMS及其SQL新建查询编辑器,使用T-SQL编写存储过程和函数。
三实验内容和要求1.建立学生-课程数据库,其中包含学生表Student(Sno,Sname,Ssex,Sage,Sdept)、课程表:Course(Cno,Cname,Cpno,Ccredit)和学生选课表:SC(Sno,Cno,Grade);编写相应的存储过程,完成下面的功能:(1)编写一个存储过程,可以查询指定系的学生的选课信息,列出学号、姓名、所在系、课程名和成绩等内容。
调用该存储过程,测试执行结果。
(2)编写一个存储过程,返回指定课程的平均分。
调用该存储过程,测试执行结果。
(3)编写一个存储过程,可以查询指定系指定成绩等级的学生的选课信息,列出学号、姓名、所在系、课程名和成绩等内容。
调用该存储过程,测试执行结果。
(成绩等级为优、良、中、及格、不及格,其中成绩在90分到100分之间为‘优’,在80分到89分之间为‘良’,在70分到79分之间为‘中’,在60分到69分之间为‘及格’,在0分到59分之间为‘不及格’。
)要求:提交创建存储过程的SQL脚本,并标注必要的注释。
保证程序能够正确编译和运行,并有相应的测试代码。
2. 自定义标量函数假设有一家生产的集装箱的公司,生产一些不同型号的集装箱,存储集装箱信息的表如下所示。
实验7_T-SQL语言编程基础
实验七T-SQL语言编程基础【实验目的与要求】1.熟练掌握变量的定义和赋值。
2.熟练掌握各种运算符。
3.熟练掌握流程控制语句,尤其是条件语句和循环语句。
【实验内容与步骤】一、准备实验数据CPXS数据库包含如下三个表:CP(产品编号,产品名称,价格,库存量);XSS(客户编号,客户名称,地区,负责人,电话);CPXSB(产品编号,客户编号,销售日期,数量,销售额);三个表结构如图2.1~图2.3所示,请在企业管理器中完成表的创建。
图2.1 CP表结构图2.2 XSS表结构图2.3 CPXSB表结构2.1数据写入操作在企业管理器中输入如图2.4~图2.6的CP表、XSS表和CPXSB表的样本数据。
图2.4 CP表的样本数据图2.5 XSS表的样本数据图2.6 CPXSB表的样本数据10.1.变量的定义与输出1.变量的定义和赋值1)局部变量的声明:DECLARE @variable_name DataType例如:declare @stuname varchar(20)--声明一个存放学员姓名的变量stuname.declare @stuseat int--声明一个存放学员座位号的变量stuseat2)局部变量的赋值:局部变量的赋值有两种方法:a)使用Set语句Set @variable_name=valueb)使用Select语句Select @variable_name=value实验:运行以下程序段,理解变量的使用。
--局部变量的赋值与使用declare @customer_name varchar(20)--声明变量用来存放客户名称set @ customer_name ='家电市场'--使用SET语句给变量赋值select*from xsswhere客户名称=@customer_name --通过局部变理向sql语句传递数据请给出运行结果:练习:创建一名为Product_name的局部变量,并在SELECT语句中使用该变量查找“冰箱”的”价格”和”库存量”。
实验一t-sql语言的基本使用(实验报告内容) (1)
实验一T-SQL语言的基本使用(实验报告)一、目的1.掌握利用各种数据类型声明局部变量的方法。
2.掌握为局部变量赋值的两种方法。
3.掌握常用系统函数、运算符和表达式的功能和应用。
二、实验内容1.变量的应用在为变量赋值语句中,set命令一次只能为一个变量赋值,而select命令一次可以为多个变量赋值。
declare @name varchar(10),@sex nchar(2),@birthday datetime,@usually int,@final numeric(4,1)Set @name = ‘数据库’Set @sex = ‘男’Select @birthday = ‘1989-12-18’,@usually = 88.5,@final = 90Print @name+@sexPrint @birthday2.运算符的使用算术运算符:Print getdate()+100Print 123+23%10/7+(17-6)*2.5字符串连接运算符:Declare @a char(5),@b varchar(5),@c int,@d decimal(5,2)Select @a=‘123’,@b=‘456.5’,@c=123,@d=456.5Print @a+@bPrint @a+@dPrint @c+@dSelect @a=‘数据库’,@b=‘程序开发’Print @a+@bPrint @a+@d(有问题)3.系统函数的使用数学函数:select ceiling(16.3),ceiling(-16.8)时间日期函数Declare @birthday datetimeSet @birthday=‘1989-12-18’Select @birthday as ‘生日’,datediff(year,@birthday,getdate()) as ‘年龄’Select getdate() as ‘当前日期’,year(getdate()) as ‘年份’,datepart(month,getdate()) as ‘月份’,datename(day,getdate()) as ‘日期’转换函数:Declare @count int,@date datetimeSelect @count = 255,@date = getdate()Print ‘变量count的值为:’ +cast(@count as varchar(5))Print cast(‘2009-12-05’ as smalldatetime)+100Print convert(varchar(10),@date,102)字符串函数:Declare @str as nchar(25)Set @str = ‘数据库应用与开发’Select len(@str),charindex(‘数据库’,@str),substring(@str,5,6),replace(@str,‘开发’,‘设计’),lower(@str),ascii(@str)三、实验环境SQL2005。
T-SQL基础教程
例11.11 使用WAITFOR实现以下功能:根据“学生”表输出系部代码 为’02 ’的学号、姓名、出生日期、在输出之前等待4秒。 Begin waitfor time ’10:00:00’ select * from 学生 End
5 PRINT语句
SQL Server向客户程序返回信息的方法除了SELECT 语句外,还可以使用PRINT语句,它的语法格式为: PRINT 字符串|函数|局部变量|全局变量
批处理语句示例
SELECT * FROM student SELECT * FROM sc UPDATE sc SET grade=grade+2 GO GO是批处理的标志,表示SQL Server将这些T-SQL语句 编译为一个执行单元,提高执行效率 一般是将一些逻辑相关的业务操作语句,放置在同一批 中,这完全由业务需求和代码编写者决定
课后思考: 1. 2. 3. 4. 5. 创建批处理时的注意事项有哪些? 什么是脚本? SQL Server支持哪几种注释? 变量的概念 局部变量的声明、赋值及其作用域
总结 2-1
数据库的物理实现一般包括:
创建数据库 创建表 添加各种约束 创建数据库的登录帐户并授权
创建数据库或表时一般需要预先检测是否存在该 对象
T_SQL程序设计基础
1.1 T-SQL语言简介
T-SQL语言
SQL( Structure Query Language)语言是关系型数据 库标准应用语言 Transact- SQL(简写为T-SQL)是对标准SQL的扩展。
T-SQL特点
功能强大:集DDL DML DCL于一体 简单易学 非过程化语言
全局变量与系统存储过程
9.查看数据库里所有的存储过程和函数 use @database_name sp_stored_procedures 查看存储过程和函数的源代码 sp_helptext '@procedure_name' 查看包含某个字符串@str的数据对象名称 select distinct object_name(id) from syscomments where text like '%@str%' 建加密的存储过程或函数在AS前面加WITH ENCRYPTION参数 解密加密过的存储过程和函数可以用sp_decrypt过程
T-SQL 编程基础
T-SQL 编程基础一.常用的数据类型1.整型 1)bigint -261~(261-1)2)int -231~(231-1)3)smallint -215~(215-1)4)tinyint 0~2552.浮点型1)real2)float3)decimal4)numeric3.逻辑数据类型Bit1.文本数据类型1)text2)ntext2.图形数据类型Image6.字符1)char2)nchar3)varchar4)nvarchar7.日期时间1)datetime2)smalldatatime格式:1983-07-07、1983/07/07、05-07-19831.时间小时:分钟:秒.毫秒如果使用12小时制 AM午前 PM午后如:2:05:7.9pm2.货币1)money2)smallmoney二、局部变量局部变量是用户可自定义的变量,它的作用范围仅在程序内部。
局部变量必须以“@”开头。
变量声明格式:DeclareDeclare @变量名变量类型声明后所有变量赋予初值NULL变量赋值Set @变量名=变量值Select @变量名=变量值变量的输出Print @变量名Select @变量名实例1:变量的声明、赋值、输出declare @str1 char(10),@str2 varchar(50), @x1 int,@x2 real,@time1 datetime set @str1='good'set @str2='hello,how are u?'set @x1=12set @x2=15set @time1=1999/05/06print @str1print @str2print @x1print @x2print @time1三、注释符、通配符与常用运算符1.注释符 /* */2.通配符 % _……3.运算符1)算术运算符:+ - * / %2)比较运算符:>、>=、<、<=、=、!=、<>、!<、!>3)逻辑运算符:and or not4)位运算符:&按位与 |按位或~按位非 ^按位异或5)连接符:+4.优先级:相同层次混在一起从左向右() ~ */% +- ^ & | not and or四、流程控制1.begin……end 相当于{}格式:begin命令行End 常用于选择、循环语句2.if语句格式:If 条件表达式命令行或程序块Else if 条件表达式命令行或程序块……Else命令行或程序块实例2:邮费计算题目:某地到西安的邮路里程1043KM,通过邮政局向西安市区寄交EMS,应在24小时内到达,计费标准每克0.12元,但超过100克,超过数每克0.05元,试编写程序计算邮费。
T-SQL语言基础
T-SQL语言基础第七课 T-SQL语言基础课前导读?基础知识 ?重点知识基础知识SQL语言概述。
重点知识数据类型、常量、运算符和常用函数,读者应结合上机实战熟练相关操作。
课堂讲解在SQL Server 2000中,企业管理器是一个功能强大、操作方便的图形化管理工具,几乎所有的操作都可以在其中完成,但它仍不能完全取代SQL语句。
无论是SQL Server 2000,还是在其他的数据库中,SQL都扮演了重要的角色,要成为一名突出的数据库开发人员,首先就应该掌握SQL语言。
本课将介绍SQL语言的基本概况、数据类型、常量、运算符和常用函数等内容。
?SQL语言概述 ?数据类型 ?常量 ?运算符 ?常用函数SQL语言概述SQL是Structured Query Language(结构化查询语言)的缩写,是关系数据库使用的标准数据库查询语言。
SQL在20世纪70年代由IBM开发出来,随着关系数据库管理系统的不断推出,SQL语言被广泛应用。
由于关系数据库供应商都根据需要定义了自己的SQL语法规则,例如,Microsoft使用的SQL为Transact-SQL(简称T-SQL),Oracle使用的SQL为SQL-Plus。
为了统一各种数据库产品中SQL语法,ANSI(American National Standard Institute,美国国家标准局)制定了SQL语言标准。
最早的ANSI标准于1986年完成,它也被叫做SQL-86,目前新的SQL标准是1992年制定的SQL-92。
很显然,各个数据库供应商不可能抛弃自己的专长来适应ANSI标准,所以业界使用的SQL语言基本上是以SQL-92为基础,在加上各供应商自己的特有语法。
所以,SQL语言标准有“业界标准”和“ANSI标准”之分。
SQL语言具有“非过程性”的特点,使用SQL编写的程序不能独立运行,必须在特定的数据库管理系统中使用,这与“过程性”的高级程序设计语言,如VB、VC等不同。
T-SQL编程基础
引入新课:要编写存储过程、触发器及事务,首先要掌握T-SQL语言的语法规范和语言基础。
一、批处理若干条一次性发送到服务器端的T-SQL语句集合(结束标志为GO语句),编译成一个可执行单元,称为执行计划。
举例说明:如果批处理中的一条语句发生编译错,执行计划就无法编译,从而整个批就无法执行。
有关批处理的限制,详见教材二、注释行注释:――注释文本块注释:/*注释文本*/三、常量与变量1、局部变量:用户定义的~,以@开始(1)声明:DECLARE @变量名数据类型[,…n] (注:刚声明的局部变量其值为NULL)举例:DECLARE @n INT (声明然后赋初值:DECLARE @n INT=0) (2)赋值:SET语句或SELECT语句(举例说明:如果查询返回多行,那么把最后一行的值赋给局部变量)(3)输出Print 局部变量或字符串表达式SELECT 局部变量AS 自定义列名(4)作用域:只能在声明的批处理、存储过程或触发器中使用(举例说明:局部变量的声明与使用必须在同一个批内)2、全局变量:系统提供的~,以@@开始,用户不能定义及修改全局变量,但能通过全局变量来测试系统的设定值或者T-SQL命令执行后的状态值。
也可用PRINT、SELECT命令输出举例:@@ERROR的值表示最后执行的T-SQL语句的错误号,如执行正确,则为0@@ROWCOUNT的值表示受上一个SQL语句影响的行数四、流程控制语句1、 BEGIN…END:语句块2、 IF…ELSE举例:声明一个局部变量,并给其赋值,然后判断其是偶数还是奇数并输出结果DECLARE@n intset@n=12IF@n%2=0beginprint@nprint'偶数!'endELSEprint'奇数!'go3、 CASE函数(1)简单~: CASE 表达式WHEN 值1 THEN 返回表达式1WHEN 值2 THEN 返回表达式2…[ELSE 返回表达式n+1]END(2)搜索~: CASEWHEN 条件表达式1 THEN 返回表达式1WHEN 条件表达式2 THEN 返回表达式2…[ELSE 返回表达式n+1]END举例:(1)根据成绩等级gradeLevel值(‘A’.’B’.’C’,’D’,’E’)输出(‘优秀’,良好,中等,及格,不及格)DECLARE@gradeLevel char(1),@result VARCHAR(10)SET@gradeLevel='a'SET@result=CASE upper(@gradeLevel)WHEN'A'THEN'优秀'WHEN'B'THEN'良好'WHEN'C'THEN'中等'WHEN'D'THEN'及格'WHEN'E'THEN'不及格'ELSE'超出范围!'ENDPRINT@result(2)根据成绩分数,输出成绩等级:优秀,良好,中等,及格,不及格DECLARE@grade_avg DECIMAL(3,1)DECLARE@result VARCHAR(10)SELECT@grade_avg=AVG(stuScore)FROM stuMarksWHERE stuNo='S001'SET@result=CASEWHEN@grade_avg>=90 and@grade_avg<=100 THEN'优秀'WHEN@grade_avg>=80 and@grade_avg<90 THEN'良好'WHEN@grade_avg>=70 and@grade_avg<80 THEN'中等'WHEN@grade_avg>=60 and@grade_avg<70 THEN'及格'WHEN@grade_avg>=0 and@grade_avg<60 THEN'不及格ELSE'超出范围!'ENDprint@grade_avgPRINT@result(3)把stuINfo表的stuSex改为用tinyint类型,分别用0,1表示性别’男’、’女’,然后查询学号,姓名及性别,要求输出结果时,性别转换成相应的男、女表示SELECT姓名=stuname,性别=case stuSexwhen 1 then'男'when 0 then'女'endFROM stuInfo4、 WHILE语句:WHILE 条件BEGIN[break|continue]END举例:计算1+2+。
TSQL编程基础
TSQL编程基础目录T-SQL编程之一,变量和基本语句 (3)存储过程和触发器 (11)SQL Server2000自定义函数 (26)T-SQL编程之一,变量和基本语句一个标准的计算机语言,大概要提供的必要主要功能是:变量说明、分支判断、循环和输入输出结果。
T-SQL也一样,具有这些功能,只不过T-SQL的输入和输出不是界面,而是表。
完全精确描述一个计算机语言,大概要很厚的书才能做到,好在目前这些书籍的发行也很多,许多书描述的都很详细。
以下让我们按计算机语言的一般过程,介绍T-SQL计算机语言。
1 变量说明在T-SQL中,变量命名是:@变量名称变量名称同一般的计算机语言变量命名没差异,都是英文字母开头。
而类型则同数据库系统的字段类型,不区分大小写,如:DECLARE @A CHAR(10)DECLARE @B V ARCHAR(50DECLARE @F FLOAT数据库上有的类型都可以这么说明,同一般计算机语言不同的是,变量前的@,是有说法的,有一个@,表示局部变量,有两个则是全局变量。
如:DECLARE @N INT /*说明局部变量@N */DECLARE @@M INT /*说明全局变量@@M */全局变量是可以跨数据库访问的变量,而局部变量仅仅使用在本数据库的本程序中。
在SQLSERVER中,都提供了一些标准全局变量,如:@@IDENTITY : 返回最后插入行的标识列的列值。
@@ERROR : 返回最后执行的Transact-SQL语句的错误代码。
没有错误则为零@@ROWCOUNT : 返回受上一语句影响的行数,任何不返回行的语句将这一变量设置为0。
@@DBTS : 返回当前数据库的时间戳值必须保证数据库中时间戳的值是惟一的。
上面的全局变量是最常用的@@SERVERNAME: 返回运行SQL Server 2000本地服务器的名称。
@@REMSERVER: 返回登录记录中记载的远程SQL Server服务器的名称。
数据库原理实验报告
计算机与信息学院数据库原理实验报告专业:计算机科学与技术班级:2012级本科班学号:*****姓名:指导教师:2014年06月18 日实验项目列表计算机与信息学院实验报告纸实验一数据库创建与管理一、实验目的与要求1、熟练掌握SSMS中界面方式创建和管理数据库。
2、熟练掌握SSMS查询编辑器T-SQL语句创建和管理数据库。
3、熟练掌握备份和还原数据库。
二、实验内容1、界面方式创建和管理数据库(1)创建数据库(2)修改数据库(3)删除数据库2、利用企业管理器备份和还原数据库(1)备份数据库(2)还原数据库3、T-SQL语句方式创建和管理数据库(1)创建SPJ数据库:在SSMS中“新建查询”,输入以下语句并运行CREATE DATABASE SPJON(NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' ,SIZE = 3,MAXSIZE = 10,FILEGROWTH = 10%)LOG ON(NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' ,SIZE = 1,FILEGROWTH = 10%)(2)修改SPJ数据库:在查询分析器中输入以下语句并运行ALTER DATABASE SPJMODIFY FILE(NAME='SPJ_Data',SIZE=4,ALTER DATABASE SPJADD FILE(NAME='SPJ_Data_2', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SPJ_Date_2.ndf',SIZE=1,MAXSIZE=10,FILEGROWTH=10%)(3)删除SPJ数据库:DROP DATABASE SPJ4、界面方式创建数据库XSBOOK,写出操作过程。
T-SQL数据库编程基础(精华版)
T-SQL 编程(补充)
1.3 变量 T-SQL中的变量可以分为局部变量(local variable,以@为变
量名称开头)与全局变量(global variable,以@@为名称开头),两 者的用法与设置方法都不相同。局部变量是由用户定义的变量, 我们可用这些变量来保存数值、字符串等数据;而全局变量则是 由系统提供及赋值,用来保存一些系统的信息。不能由用户创建, 对用户来说是只读的,大部分的全局变量记录了SQL Server服务 器的当前状态信息。全局变量是不可以赋值的。
T-SQL 编程(补充)
【例3】 将“学生信息”表中,“借书证号”的最后
一位是2的学生的学号、姓名分别赋值给“@学号”和
“@姓名”变量。
USE 学生图书借阅管理
GO
DECLARE @学号 var(10), @姓名 varchar(8)
SELECT @学号=学号,@姓名=姓名 --为变量赋值
FROM 学生信息
T-SQL 编程(补充)
语法:LEFT(character_expression , integer_expression) 参 数 : character_expression 为 字 符 型 表 达 式 , character_expression 可以是常量、变量,也可以是字符数据 的列。 integer_expression为正整数表达式,指定返回的字符个 数。 返回值即是返回的子串,为varchar数据类型。 RIGHT函数:返回字符串中从右边开始指定个数的字 符。 语法:RIGHT ( character_expression , integer_expression ) 参数:与LEFT函数的参数相同。
下面介绍标识符的命名规则。
T-SQL 编程(补充)
数据库原理实验报告-T-SQL编程
数据库原理实验报告-T-SQL编程本次实验主要通过T-SQL编程学习数据库操作语言,包括基本的表格操作、数据查询、以及高级的存储过程和触发器编程。
1. 创建表格首先,我们需要创建一些表格来存储数据。
使用CREATE TABLE语句可以创建一个新的表格,语法如下:```sqlCREATE TABLE table_name (column1 datatype1,column2 datatype2,column3 datatype3,.....);```其中,table_name为所创建的表格的名称,column1, column2, column3为表格中的列名,datatype1, datatype2, datatype3为列的数据类型。
例如,以下为创建一个名为“students”的表格,并包含学生的姓名、性别和年龄:2. 插入数据```sqlINSERT INTO students (name, gender, age)VALUES ('Tom', 'male', 20);```3. 更新和删除数据使用UPDATE语句可以更新表格中的数据,语法如下:其中,table_name为要更新的表格名称,SET语句用于设置要更新的列名和对应的值,WHERE语句用于指定要更新的数据行。
例如,以下为将名为“Tom”的学生年龄更新为25岁:```sqlDELETE FROM table_name WHERE condition;```4. 查询数据5. 存储过程存储过程是一种预先定义好的程序,它包含了一组SQL语句,可以在需要时对存储过程进行调用。
使用CREATE PROCEDURE语句可以创建一个新的存储过程,语法如下:其中,procedure_name为所创建的存储过程名称,SQL statements为存储过程中的SQL语句。
例如,以下为创建一个名为“get_students”的存储过程,并查询所有学生数据:```sqlCREATE PROCEDURE get_studentsASBEGINSELECT *FROM students;END;```使用EXECUTE语句可以执行存储过程,语法如下:```sqlEXEC procedure_name;```例如,以下为执行名为“get_students”的存储过程:6. 触发器触发器是一种特殊的存储过程,它在特定的事件发生时自动执行。
第26讲 实验:T-SQL编程(1)
2.以所要求的格式显示相关信息:“今天是XX年XX月XX日,星期X”
3.设置一个字符型变量,并使用函数返回该变量的字符个数,测试在统计个数时是否会包含尾随空格。
4.显示course表中所有老师的姓氏(只显示姓,不显示名)
5.修改教师信息,在两个字的老师姓名中加入空格,如将“张三”改为“张三”。
6.修改教师信息,将所有名字中间的空格删除。
7.计算4的10次方
8.以相连的形式显示系部名称、课程名和学分(如:计算机应用工程系开设了SQL Server实用技术,其学分为3.0)
授课班级
计应1301
第
26
课
教
案
授课时间
12月18日
星期
星期四
授课地点
知709
课题内容
T-SQL编程
教学目的
掌握T-SQL基本语法
教学方法
讲授法、演示法、讨论法
重点
基本语法格式难点流程控制语句Fra bibliotek能力培养
能够使用控制语句实现较复杂的编程
课堂类型
实验课
教具
投影仪、多媒体设备、学生用电脑
作业
课后习题
第26讲实验:T-SQL编程(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七T-SQL语言编程基础
【实验目的与要求】
1.熟练掌握变量的定义和赋值。
2.熟练掌握各种运算符。
3.熟练掌握流程控制语句,尤其是条件语句和循环语句。
【实验内容与步骤】
一、准备实验数据
CPXS数据库包含如下三个表:
CP(产品编号,产品名称,价格,库存量);
XSS(客户编号,客户名称,地区,负责人,电话);
CPXSB(产品编号,客户编号,销售日期,数量,销售额);
三个表结构如图2.1~图2.3所示,请在企业管理器中完成表的创建。
图2.1CP表结构
图2.2XSS表结构
图2.3CPXSB表结构
2.1数据写入操作
在企业管理器中输入如图2.4~图2.6的CP表、XSS表和CPXSB表的样本数据。
图2.4CP表的样本数据
图2.5XSS表的样本数据
图2.6CPXSB表的样本数据
10.1.变量的定义与输出
1.变量的定义和赋值
1)局部变量的声明:
DECLARE@variable_name DataType
例如:
declare@stuname varchar(20)--声明一个存放学员姓名的变量stuname.
declare@stuseat int--声明一个存放学员座位号的变量stuseat
2)局部变量的赋值:
局部变量的赋值有两种方法:
a)使用Set语句
Set@variable_name=value
b)使用Select语句
Select@variable_name=value
实验:
运行以下程序段,理解变量的使用。
--局部变量的赋值与使用
declare@customer_name varchar(20)--声明变量用来存放客户名称set@customer_name='家电市场'--使用SET语句给变量赋值select*
from xss
where客户名称=@customer_name--通过局部变理向sql语句传递数据请给出运行结果:
练习:
创建一名为Product_name的局部变量,并在SELECT语句中使用该变量查找“冰箱”的”价格”和”库存量”。
给出相应的语句
declare@Product_name varchar(20)
set@Product_name='冰箱'
select价格,库存量
from cp
where产品名称=@Product_name
请给出运行测试结果:
2.两种输出语句:
1)Print输出单个的局部变量或字符串表达式.如:PRINT'价格合理';
2)Select局部变量as自定义别名。
3.全局变量:
1)SQL Server2005中的所有全局变量都使用两个@@标志作为前缀.
常见全局变量
2)全局变量的使用
运行以下程序段,理解全局变量的使用。
use cpxs
go
select*from cp
insert into cp values('0221055','爱多VCD',2326,12)
select当前的错误号=@@error
--0
update CP set库存量=120where产品编号='0221055'
print'当前的错误号'+convert(varchar(20),@@error)
--当前的错误号
select更新的产品编号=@@identity
--6
select当前使用的语言的名称=@@language
--简体中文
select本地服务器的名称=@@servername
--DEMONSTRATOR
select此计算机上SQL服务的名称=@@servicename
--MSSQLSERVER
select SQLServer的版本信息=@@version
给出运行结果:
10.2.条件结构
1.在查询分析器中执行下面的语句,体会IF...ELSE...结构
DECLARE@Price float
SELECT@Price=价格FROM CP WHERE产品编号='100002'
IF@Price>=3000
PRINT'价格偏高'
ELSE
PRINT'价格合理'
PRINT'价格为:'+CONVERT(CHAR(5),@Price)
给出运行结果:
2.练习:自己编写一段程序判断CP表中价格与平均值的比较,将低于平均值的数据行输出来。
给出相应的语句段和运行结果:
10.3.循环结构
1.下面是计算1~100和的循环结构,执行之,体会循环结构程序。
(注意语句块标志BEGIN...END)
DECLARE@SUM INT,@I INT
SELECT@I=1,@SUM=0
WHILE@I<=100
BEGIN
SELECT@SUM=@SUM+@I
SELECT@I=@I+1
END
PRINT'1...100的和为:'+CONVERT(CHAR(4),@SUM)
给出运行结果:
2.练习:编写一个程序用于计算10的阶乘
给出相应的程序和运行结果:
10.4.完成以下T-SQL语言编程
(1)用T-SQL语言编程输出3~300之间能被7整除的数。
给出相应的程序和运行结果:
declare@i int
select@i=3
print'3~300能被7整除的数:'
while@i<=300
begin
if@i%7=0
begin
print convert(char(3),@i)
end
set@i=@i+1
end
(2)用T-SQL语言编程输出3~100之内的素数。
给出相应的程序和运行结果:
declare@i int,@f int,@j int
select@i=3
while@i<=100
begin
set@f=1
set@j=2
while@j<@i
begin
if@i%@j=0
begin
set@f=0
break
end
set@j=@j+1
end
if@f=1
print+@i
set@i=@i+1
end
(3)在CP表中查找名为”长虹彩电”的产品,如果存在,则显示该产品的信息;否则,显示”查无此产品”。
给出相应的程序和运行结果:
declare@name char(20)
select@name=产品名称
from cp
where产品名称='长虹彩电'
if@name='长虹彩电'
select*
from cp
where产品名称=@name
else print'查无此产品'
(4)查看有无客户编号为”000004”的销售记录,如果有,则显示“有”,并查询显示该客户销售的产品信息。
给出相应的程序和运行结果:
declare@customer_num char(6)
select@customer_num=客户编号
from xss
where客户编号='000004'
if@customer_num='000004'
begin
select*
from cpxsb
where客户编号=@customer_num
end
else print'查无此产品'。