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语句是不会执行的。
  • 相关阅读:
    94. Binary Tree Inorder Traversal
    101. Symmetric Tree
    38. Count and Say
    28. Implement strStr()
    实训团队心得(1)
    探索性测试入门
    LC.278. First Bad Version
    Search in Unknown Sized Sorted Array
    LC.88. Merge Sorted Array
    LC.283.Move Zeroes
  • 原文地址:https://www.cnblogs.com/gmblog/p/3826479.html
Copyright © 2011-2022 走看看