开发者社区> 乌云上> 正文

SQL Serever学习13——数据库编程语言

简介: 编程基础 注释 注释命名来对一些语句进行说明,便于日后维护或者其他用户理解,注释不会执行。 单行注释 SELECT GETDATE() --查询当前日期 多行注释 /* 注释有助于 理解操作的内容 查询当前日期 */ SELECT GETDATE() 变量 在T-SQL执行命令时,可...
+关注继续查看

编程基础

注释

注释命名来对一些语句进行说明,便于日后维护或者其他用户理解,注释不会执行。

单行注释

SELECT GETDATE() --查询当前日期

多行注释

/*
注释有助于
理解操作的内容
查询当前日期
*/
SELECT GETDATE() 

变量

在T-SQL执行命令时,可以申明变量临时存储各种数据,申明时被初始化为NULL,只能代替数值,不能代替对象或关键字

局部变量

必须先用DECLARE 语句定义,局部变量在名称前加@

SELECT 赋值语句哟啊保证结果不超过一条数据,否则将会把最后一条数据赋予变量

/*申明变量*/
DECLARE @name VARCHAR(10)
/*赋值变量*/
SET @name='LUCAS'
/*输出变量*/
SELECT @name 

全局变量

sqlserver系统内部使用的变量,作用范围是整个系统的任何程序,以@@开头,常用的全局变量有:

@@ERROR,最后一个T-SQL错误代码

@@IDENTITY,最后一个插入的标示值

@@LANGUAGE,当前使用的语言

@@ROWCOUNT,受上一个SQL语句影响的行数

@@SERVERNAME,本地服务器名称

@@VERSION,sqlserver版本信息

PRINT @@ERROR
PRINT @@IDENTITY
PRINT @@LANGUAGE
PRINT @@ROWCOUNT
PRINT @@SERVERNAME
PRINT @@VERSION

输出为

输出语句

PRINT 使用中文方式输出

SELECT 使用表格方式输出

批处理语句

批处理是一个T-SQL语句集,集合中的语句一起提交给sqlserver作为一个整体执行。GO就是批处理标志。

sqlserver会将批处理编译成一个可执行单元(执行计划),提高执行效率。

一般情况,一些操作放在同一个批处理命令,但是如果是创建数据库或其他对象的语句,则必须在结尾添加GO,便于与其他命令分开执行。

批处理有3种限制:

  • CREATE 语句不能与其他语句组合使用
  • 如果批处理命令有改字段名称,则不能在同一个批处理中使用该字段新名称
  • 如果EXECUTE 语句是批处理第一句,则可以省略EXECUTE关键字,否则不可以省略

 

IF...ELSE语句

统计商品平均价格,如果均价在2000元以上输出“总体价格较贵”,并显示最贵商品信息;如果在2000以下,显示“总体价格便宜”,并显示最便宜商品信息。

DECLARE @avgjg FLOAT
--获取均价
SELECT @avgjg=AVG(进价) FROM 商品表
PRINT '所有商品的均价为:'+CONVERT(VARCHAR(5),@avgjg)

--进行判断
IF(@avgjg>=2000)
	BEGIN
		PRINT '总体价格较贵,最贵商品是:'
		SELECT TOP 1 * FROM 商品表 ORDER BY 进价 DESC
	END
ELSE
	BEGIN
		PRINT '总体价格便宜,最便宜商品是:'
		SELECT TOP 1 * FROM 商品表 ORDER BY 进价
	END

 

  注意:如果需要将表格数与文本数据同时显示,需要设置:工具-》选项-》查询结果-》显示结果的默认方式,选择以文本格式显示结果

 

WHILE语句

将所有销售利润在10%以下商品的销售价格增加10元,如果仍有商品销售利润在10%以下的,在增加10元,直到所有商品价格利润都在10%以上,最后显示增加最多的商品增加的钱数。

PRINT '开始更新销售额偏低商品的价格'
DECLARE @cs INT
SET @cs=0
WHILE ((SELECT COUNT(*) FROM 商品表 WHERE 销售价/进价<1.1)>0)
	BEGIN
		UPDATE 商品表
		SET 销售价=销售价+10
		WHERE 销售价/进价<1.1
		SET @cs=@cs+10
		IF((SELECT COUNT(*) FROM 商品表 WHERE 销售价/进价<1.1)=0)
			BREAK
	END
PRINT '增加最多的商品,增加了:'+CONVERT(VARCHAR(8),@cs)+'元'
GO

多分支语句CASE

对A牌所有商品分类,进价高于3000元为高价商品,1000-3000元为中价商品,1000以下为低价商品

SELECT 商品名称,型号,进价=
	CASE
		WHEN 进价>3000 THEN '高价商品'
		WHEN 进价 BETWEEN 1000 AND 3000 THEN '中价商品'
		WHEN 进价<1000 THEN '低价商品'
	END
FROM 商品表

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL数据库学习之路(七)
在SQL server managerment中可以点击帮助,会有帮助文档。 一、联合查询 将多个查询结果集合并成一个。
789 0
Oracle-PL/SQL编程
PL/SQL的基本语法
998 0
SQL数据库学习之路(四)
要求:通过SQL语句创建以下基本表:    教师关系 T(T#, TNAME,TITLE)    课程关系 C(C#,CNAME,T#)    学生关系 S(S#,SNAME,AGE,SEX)    选课关系SC(S#,C#,SCORE)    班级关系CLASS(CLASSID,CLASSNAME)    其中红色粗体为主键,带下划线的属性为外键。
795 0
ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)
原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!)   继上篇:ORACLE PL/SQL编程之八:把触发器说透 得到了大家的强力支持,感谢。
811 0
.NET数据库编程求索之路--9.使用EF实现
9.使用EF实现   源码下载: /Files/SummerRain/NetDbDevRoad/9使用EF实现1自动ORM简单三层.rar /Files/SummerRain/NetDbDevRoad/9使用EF实现2自动纯POCO代理简单三层.
679 0
Django学习笔记----数据库操作实例
上上篇>Django学习笔记----环境搭建基于Windows 上一篇>Django学习笔记----快速入门 修改settings.py配置 在环境搭建篇, 我们已经安装了mysql-client包 安装好后, 在settings.
1301 0
Python编程语言学习:如何将excel表格内的科学计数法转为常规数值并全部显示?
Python编程语言学习:如何将excel表格内的科学计数法转为常规数值并全部显示?
138 0
+关注
乌云上
熟悉MySQL,SQL Server等数据库,熟悉.NET和Java相关领域, 擅长.NET ,PHP,Python,Node.js,SQL Server,jQuery 喜欢音乐和诗歌的技术宅
146
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载