zoukankan      html  css  js  c++  java
  • SQL学习一

    SQL SERVER注释快捷键:选中 Ctrl+K Ctrl+C

    SQL SERVER注释快捷键:选中 Ctrl+K Ctrl+U

    1、SQL语句补。

    1、SELECT时可以添加一些自定义的词,或者连接两个字段(类型必须一样)。
    SELECT XM+'的学号是:'+XH FROM dbo.STUD_VIEW;
    --输出的是 某某的学号是:xxxxxx,有点像excel的'&'(and)连接符
     
    2INSERT INTO新表(指定字段) SELECT 旧表字段 FROM 旧表 语句。
    INSERT INTO STUD2(XH,XM,DNO) SELECT XH,XM,DNO FROM dbo.STUD;
    --新建了一张STUD2,然后取了STUD的XH、XM、DNO三列插到了STUD2的XH、XM、DNO列(名字可以不同,位置对应)

    2、SQL的流程控制语句

    1BEGINEND 表示开始。。和结束。。。
    2IF…为真怎么样..ELSE…否则怎么样。。。
    3、当年WOW做自动输出脚本,十多个技能判断,所以这个还是比较熟悉的。。。
    IF (SELECT AVG(NL) FROM dbo.STUD_VIEW)<23
        BEGIN
            UPDATE STUD SET CSNY=CSNY-1;
            EXEC sp_refreshview STUD_VIEW; --刷新视图
    PRINT '学生们又老了1天';
        END
    ELSE
        BEGIN
            SELECT AVG(NL) FROM dbo.STUD_VIEW;
        END
    --虚拟一个环境,要求判断学生平均年龄是否小于23岁,如果是就把出生年月减小1天,然后刷新视图;如果等于或者大于23的时候,就SELECT出平均年龄。
    --缺点很显然。。要执行N次。。。
    4、上面这个用while来执行就很合适了。Continue就是跳到BEGIN开始往下执行,而break就是跳到end开始往下执行。
    WHILE (SELECT AVG(NL) FROM dbo.STUD_VIEW)<23
    BEGIN
        UPDATE STUD SET CSNY=CSNY-1;
        EXEC sp_refreshview STUD_VIEW;
        PRINT '学生们又老了1天...';
        IF (SELECT AVG(NL) FROM dbo.STUD_VIEW)<23
            CONTINUE;
        ELSE
            BREAK;
    END
    SELECT 平均年龄=AVG(NL) FROM dbo.STUD_VIEW;
    --PRINT感觉没什么用了,速度太快,什么都看不到。
    --后来发现是因为后面这个SELECT语句吧PRINT全部给盖掉了的原因。
    5、上面这个例子中的continue用GOTO也是一样的可以实现的。
    KAISHI:
    WHILE (SELECT AVG(NL) FROM dbo.STUD_VIEW)<24
    BEGIN
        UPDATE STUD SET CSNY=CSNY-1;
        EXEC sp_refreshview STUD_VIEW;
        PRINT '学生们又老了1天...';
        IF (SELECT AVG(NL) FROM dbo.STUD_VIEW)<24
            GOTO KAISHI;
        ELSE
            GOTO JIESHU;
    END
    JIESHU:
    SELECT 平均年龄=AVG(NL) FROM dbo.STUD_VIEW;
    --用GOTO实现了CONTINUE和BREAK的功能。
    6、RETURN的用处是从GO的语句块中退出来,且RETURN后面的语句是不会执行的,相当于在这个GO语句块里生生的被RETURN截断了。
    GO
    KAISHI:
    WHILE (SELECT AVG(NL) FROM dbo.STUD_VIEW)<25
    BEGIN
        UPDATE STUD SET CSNY=CSNY-10;
        EXEC sp_refreshview STUD_VIEW;
        PRINT '学生们又老了10天...';
        IF (SELECT AVG(NL) FROM dbo.STUD_VIEW)<25
            GOTO KAISHI;
        ELSE
            RETURN;
    END
    SELECT 平均年龄=AVG(NL) FROM dbo.STUD_VIEW;
    --因为RETURN后面的语句不会执行,所以SELECT语句是不会执行的。
  • 相关阅读:
    hdu 4893 Wow! Such Sequence!(线段树)
    Leetcode Best Time to Buy and Sell Stock II
    Debian GNU Linux服务列表的获取、服务的关闭/开启、服务在启动时是否自己主动执行的生效/失效
    R语言中数据结构
    C#编写Windows服务程序 (服务端),client使用 消息队列 实现淘宝 订单全链路效果
    deep learning实践经验总结
    Java编程思想第四版 *第五章 个人练习
    CEPH OBJECTSTORE API介绍
    leetcode(58)-Range Sum Query
    Android百日程序:GridView实现相冊效果
  • 原文地址:https://www.cnblogs.com/gmblog/p/3826479.html
Copyright © 2011-2022 走看看