zoukankan      html  css  js  c++  java
  • SQL Serever学习13——数据库编程语言

    编程基础

    注释

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

    单行注释

    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 商品表
    

  • 相关阅读:
    冲刺周期会议三
    冲刺周期会议二
    冲刺周期会议一
    日常会议
    总结会议及站立会议(六)
    站立会议(五)
    站立会议(四)
    【自习任我行】
    软件小创意
    团队项目题目拟定
  • 原文地址:https://www.cnblogs.com/1906859953Lucas/p/9539635.html
Copyright © 2011-2022 走看看