T-SQL笔记

标题Sqlserver 基础笔记


  1. 什么是SQL?

​ Sql 是结构化查询语言(Structured Query Language),是关系型数据库的标准查询语言;

  1. 为何要使用SQL?

    为了用户脱离SSMS(数据库管理工具)使用数据库,方便应用程序与数据库打交道

  2. 何时使用?
    • 所有对SQL Server执行所有的操作都可以

    • 程序中的增删改查

  3. 如何使用?

    通过数据库操作语言(DDL,DML,DCL,DQL)

  4. T-SQL :Transact-SQL

    T-SQL是SQL的扩展集
    对功能进行了扩充:如变量说明、流程控制、功能函数(编程)

  5. T-SQL的组成:
    • DML-- 数据操作语言

      INSERT 语句
      Update 语句
      Delete 语句
      
    • DDL–数据定义语言

      CREATEDROP开头的命令,例如建立数据库、数据库对象定义等
      CREATE TABLECREATE VIEWDROP TABLE
    • DQL ---- 数据查询语言

      对数据库中的数据进行查询
      Select 语句
      
    • DCL-- 数据控制语言(权限管理等)

      控制数据库组件的存取许可、存取权限等
      GRANT、REVOKE等
      
  6. SQL设计规范

    • 采用有意义的命名(数据库、表和字段等)
      • 注意字段名不与保留字、数据库系统或者常用的访问方法冲突
        • 据表应该避免可为空的列
          • 保持不同数据表中相同意义的列名和类型一致
  7. 命名规范:

    • 使用帕斯卡(Pascal Case)命名

    • 命名中的每一个逻辑断点(单词)都用大写字母标记

    • 名称应有意义,建议选择产品或项目的名称命名

      例如,学校管理系统对应的数据名为SchoolDB

    • 避免使用特殊字符,如数字,空格之类

    • 避免使用缩写

    • 避免中文拼音

  8. 注释:

    • 单行注释 (–)

      use SchoolDB  --这时候单行注释
      
    • 多行注释 (/* 这是多行注释 */)

      /*
      	这是多行注释
      	中间的内容不会被执行
      */
      
  9. 插入记录到数据库表中:

    语法:

    • 无需指定列名,直接提供要插入的数据值,在执行插入过程中,插入的数据值按照表中列的顺序进行一一匹配
      insert [into] [表名] values (对应的值列表)
    insert into card values ('0001','123456',100,'admin');
    
    • 需要指定列名和插入的值,在执行插入过程中,数据值与指定的列名将一一匹配

    • 部分插入: insert into [表名] (字段列表) values (字段1值,字段2…)

    • insert into card (ID,Password,Balance,UserName) values ('0002','123456',100,'admin')
      
    • 一次向表中插入多条记录语法:

      INSERT [INTO] tablename (column1,column2,column3…)
      VALUES (value1,value2,value3…),
      (value4,value5,value6…),
      (value7,value8,value9…)…

      如一次向表中添加3条记录,用()分开,用分号间隔

      insert into	card values('0001','123456',100,'张三'),
      					 ('0002','123456',100,'李四'),
      					 ('0003','123456',100,'王五')
      
    • 注意事项:

      • 字段数量与值的数量要一致

      • 数据类型要一致

      • 字段与对应的值顺序要一致

      • 不可为标识列指定值,如果表有标识列,只需要除标识列以外的其他列有数据即可;

      • 非空列必须要输入值

      • 插入的数据项,要求符合检查约束的要求

      • 具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值,也可以不管

        例如,某字段age 默认为0,则以下2条语句的效果相同

        insert into tablename (StudentName,Age) values ('张三',DEFAULT);  --age 会采用默认值(Default)
        insert into TableName (StudentName) values ('张三');	-- age 默认为0 
        
    1. 更新数据库记录

      • 语法结构:

        ​ UPDATE tablename SET column1=value1,column2=value2,column3=value3 [ where 指定条件]

        • 全表修改,如将所有学生的性别修改为“男”,年龄修改为16
        update Student set gender='男',age = 16;
        
        • 修改指定条件的学生信息

        例如:将学生表中,姓名为张三的同学,年龄修改为17

        update Student set age = 17 where StudentName ='张三';
        
        • WHERE条件语句后面可以存在多个过滤条件。“并且”关系使用AND关键字连接;“或”关系使用OR关键字连接
          判断是否为NULL,可以使用IS NULL关键字判断判读null 可以使用 is null,如将身份证号码为null的记录修改为0000-0000-0000-0000-00

          update Student set idcard = '0000-0000-0000-0000-00' where idcard is null;
          
    2. 删除记录:

      语法:

      ​ Delete from TableName [where 删除条件]

      • 删除所有记录:

        delete from tablename; --删除表中的所有记录(删除标记)
        
      • 删除指定条件的记录;

        delete from tablename where StudentName ='张三'
        

      清空表中的记录:

      语法:

      ​ Truncate table 表名 清空记录,标识回到初始化状态

      truncate table student; -- 清空student表中的所有记录
      

      delete 与 truncate的区别:

      • delete只是做删除标记,并没有真正的删除记录,还占空间;
      • truncate清除记录,速度更快

      注:删除操作不可恢复,删除数据前务必谨慎

      😆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值