• SQLServer2012书学习第五六


    第五章  管理数据

      目标: 

      1 使用 SQL Server Management Studio 进行数据的插入,修改和删除    

      2 使用T-SQL 进行数据的插入修改和删除

      3 CREATE ALTER DROP 用来对表结构的创建修改删除,INSERT UPDATE DELETE 用来对表数据的插入修改删除

      4 可以使用管理工具和T-SQL对数据进行操作,但是T-SQL更为灵活,可大量插入和按照条件插入修改删除等

      5 为了表示数据的安全性,只有系统管理员(sa),数据库所有者(dbo),数据库对象所有者以及被授权的用户才可以管理数据库中的数据

     1     ----实现数据的增加
     2     USE XK
     3     GO
     4     DECLARE @n int
     5     SELECT @n=10000006
     6     WHILE @n<10000010
     7         BEGIN
     8             INSERT INTO student VALUES(@n,'小明','','计算机','11111116')
     9             SELECT @n+=1
    10         END
    11     GO
    12     --实现联合查询将数据插入到组合表中
    13     DECLARE @n int
    14     SELECT @n=10000001
    15     WHILE @n<10000010
    16         BEGIN
    17              INSERT INTO elective values((SELECT   student_id FROM student WHERE student_id  = @n), 11111115,null)
    18              SELECT @n+=1
    19          END
    20       GO
    21     ----实现对选课超过30的数据进行更改
    22     DECLARE @n int
    23     SELECT @n=11111111
    24     WHILE @n<11111116
    25         BEGIN
    26             UPDATE course set course_time='周四晚上' 
    27             WHERE     ((SELECT COUNT(*) FROM elective WHERE course_id=@n)>30 and course_id=@n)
    28             SELECT @n+=1
    29         END
    30     GO
    31     --将已有数据插入已有表中 表结构相同  不同时制定列
    32     INSERT INTO  class  
    33     SELECT TOP(5) * FROM class1
    34     GO
    35     ----复制表  只复制数据,不复制主键等东西
    36     SELECT * INTO class3 from class
    37     GO
    38     --删除表中数据   按行删除  和直接删除
    39     DELETE FROM  class2
    40     GO
    41     TRUNCATE TABLE class2
    42     GO

    第六章  T-SQL基础

      目标

      1  掌握T-SQL中的标识符,常量,变量,表达式和运算符的使用方法

      2  掌握T-SQL控制语句常用的方法

      3  掌握T-SQL中常用的函数

      4  掌握常用的系统存储过程

      5  运用T-SQL编写程序代码 

      1 Transact-SQL概述

    SQL 是结构化查询语言(structured query language)简称,用于存取数据以及查询更新和管理关系数据库。侧重于对数据的操纵和对数据库的管理。
    SQL集数据定义DDL,数据操纵DML,数据控制DCL于一体
        1 数据定义语言DDL, data definition language用于创建数据库和数据库对象,包括创建修改和删除
             CREATE ALTER DELETE
        2 数据操纵语言DML,data manipulation language,用于操纵数据表或试图中的数据,包括增加,查询,修改,删除,INSERT,SELECT,UPDATE,DELETE
        3    数据控制语言DCL(data control language)用来设置,更改角色或者用户的权限,包括对用户的授权GRANT,收回授权REMOVE
        4    SQL操作可以直接使用命令交互,也可以嵌入高级语言中使用,其中T-SQL是SQL Server唯一认知的语言

      2  T-SQL的使用规定

        1 语法格式约定

        2  对象引用的规范服务器名称.[数据库名称].[架构名称].[数据库对象的名称]

        3  注释的规范  单行注释--   批注释/*   */

      3  T-SQL语法元素

        语法元素包含关键字,标识符,数据类型,运算符,表达式,函数,注释,流程控制语言和错误处理等语法元素

        1 保留关键字  如 DECLARE SET SELECT PRINT GO ORDER是关键字,必须需要使用保留关键字作为属性时,需要使用[ORDER]

        2 标识符,第一个字符为字母,汉字,_,#,@,中间有空格需要使用[my test]    @开头表示局部变量或函数的参数  @@表示全局变量 #表示临时表或存储过程 ##表示全局的临时数据库对象

        3 运算符 算术运算符,逻辑运算符,比较运算符,字符串连接运算符,赋值运算符,位运算符,一元运算符,

        4 表达式, 用运算符和()和函数等连接起来就是表达式

      4  批处理

        批处理中的批与批之间使用GO进行连接起来,不然会出错。批处理可以保存在sql语句中,建立数据库时可以直接使用批处理文件进行完整的建立

      5  变量

        局部变量  生命周期为GO语句内,赋值  SET/SELECT   SET为一个变量赋值,SELECT 为多个变量赋值, AS 用于指定显示的名称,显示时不会出现未命名,

        全局变量  @@connections rowcount  error   procid  remserver  servername  spid  version

      6  常量

        字符串常量  Unicode字符串常量  二进制常量0x  位常量  整形常量  带有精度的常量  float real常量(科学计数法E5为10^5) 时间常量'2019-7-25'  货币型常量 ¥100

      7  流程控制语句

        分为顺序,选择,循环三类   主要有以下使用

        BEGIN   END        IF...ELSE     CASE...WHEN...ELSE    WHILE(expression)...BREAK|CONTINUE   RETURN    GOTO   

        WAITFOR DELAY '00:00:01'

      8  系统内置函数

        共14类    (聚合函数  配置函数  加密函数  游标函数  日期和时间函数  数学函数  元数据函数  排名函数  行集函数  安全函数  字符串函数  系统函数  系统统计函数  文本和图像函数)

        字符串函数  对数据进行替换,截断合并等操作    

          ASCII(char)  CHAR(int)  LEN(string)      RIGHT(char,3)   LEFT(char,3)  SUBSTRING(value,0,3)从0开始,读取三个  LTRIM 左边空格删除 RTRIM(char)  +指连接字符串

          CHARiNDEX(str1,str,[start]) 所有str1字符串在str中是否有值,有返回所在的第一个字符的位置,start表示开始搜索的位置    CHARiNDEX('str1','str1111',0)   第三个为0  1时都可以匹配到字符串str1   返回的位置1     开始为2时匹配不到字符串返回0

          REPLACE(str,str1,str2)用字符串str2代替str1  LOWER(char)  UPPER(char)  SPACE(int)返回由重复空格组成的字符串  STR(float) 浮点数据转化为指定长度字符串   并不是可变长度,多余的用空格都在前面代替PRINT STR( 3.1E2,5)  返回'  310'

        日期时间函数

        数学函数

        系统函数  APP_NAME()  CASE表达式  CASE(@s AS char(1))  CONVERT(char(1),@s)  COALESCE(@s,@d,@a,@b) 返回第一个非空数值  DATALENGTH(@s)  返回数值所占字节数  HOST_NAME()返回服务器计算机的名称  

              ISDATE(@s) 是有效日期格式返回1 否则返回0  ISNULL(@s,'zhou')是NULL用指定数值代替  ISNUMERIC(@s)是否为数值  NEWID()全局位移标识符  NULLIF(@s,@d)相等  则返回空值

       9  编程风格

    代码

        

    USE XK
    GO
    DECLARE @n int
    SET @n=1
    ----显示课程有几类
    SELECT course_name   FROM course 
    GROUP BY course_name
    ORDER BY course_name DESC
    SELECT COUNT(*) AS '课程数' FROM course
    --使用变量后才需要GO隔开,其他不必要,但也可以用
    --对课程进行分类统计,显示课程类别,课程名称和课程报名人数
    
    SELECT course_name AS '课程名',department_name AS '系名',COUNT(student_id) AS '报名人数' FROM course
    LEFT JOIN department on course.department_id=department.department_id
    LEFT JOIN elective on course.course_id=elective.course_id
    GROUP BY course_name,department_name
    ORDER BY course_name DESC
     
    --查询在表1中但不在表2中的数据
    SELECT student_id FROM student WHERE (student_id NOT IN (SELECT student_id FROM elective))
    GO
     --求30!的数值
    DECLARE @n int,@sum float
    SELECT @n=1
    SELECT @sum=1
    WHILE @n<30
        BEGIN
            SELECT @n+=1
            SELECT @sum*=@n
            PRINT @sum
         END
      GO
    
    --分支语句   case、
    DECLARE @var int,@sum nvarchar(16)
    SELECT @var=10
    SET @sum=CASE @var
        WHEN 1 THEN '数值为1'
        WHEN 2 THEN '数值为2'
        ELSE '数值不为1也不为2'
    END
    PRINT @sum
      GO

        

  • 相关阅读:
    (三)openwrt主Makefile解析
    (二)我的Makefile学习冲动&&编译过程概述
    openwrt修改flash大小
    (一)openwrt源码目录概述
    git_sop 脚本使用说明
    Openwrt LuCI模块练习详细步骤
    openwrt简单ipk生成及Makefile解释
    oracle中比较两表表结构差异和数据差异的方法
    C#泛型集合之Dictionary<k, v>使用技巧
    SQL语句添加,删除主键
  • 原文地址:https://www.cnblogs.com/27floor/p/11243648.html
Copyright © 2020-2023  润新知