March 17, 2018

Microsoft SQL Server之使用DML操作数据表

SQL:结构化查询语言(Structured Query Language)

【why】在数据库管理系统或应用软件里查询和管理数据库
【where】数据库管理系统和各类软件中都要用到SQL去查询管理数据库
【what】

要点

  • 不区分大小写
  • 是一种高级的非过程化编程语言,是用于数据库中的标准数据查询语言
  • 存在着很多不同版本的 SQL 语言,但都有基本相同或相似的关键字
  • 注释方法:“- -”是单行注释符,“/**/”是多行注释符
  • 执行可选择全部执行或部分执行

分类

  • 数据定义语言(DDL : Data Definition Language)

    创建create 删除drop 修改alter

  • 数据操纵语言(DML : Data Manipulation Language)

    增select 删delete 改update 查select

  • 数据控制语言(DCL : Data Control Language)

    授权grant 取消授权revoke

一、增

语法

insert [into] 表名[(字段1,字段2…..)] values(值1,值2…..)

要点

  • 字段名和值一一对应(个数,类型)
  • 字符串和日期必须加单引号
  • 对所有字段进行顺序赋值时可以省略字段名
  • 默认约束的列不指定时将赋默认值
  • 自增列无须显示添加
  • 使用null为字段添加空值,或在添加时不指定列表
  • 可一次添加多行数据

语法:添加多行数据

insert [into] 表名[(字段1,字段2…..)] 
select 值1,值2....   union
select 值1,值2....   union
........
select 值1,值2
  • UNION 去除重复行
  • UNION ALL 全部插入,不去除重复

二、删

语法

delete from 表名 where <表达式>

删除全部记录

delete from 表名
truancate tabel 表名

区别

  1. D可以删除指定行,T只能删除所有数据
  2. T更高效,因为D需要记录操作日志
  3. D\T两种删除方式对自增列的影响不同,T会重置自增列

三、改

语法

update  表名 set 字段1=值1,字段2=值2... [where <表达式>]

四、查

语法

selete *  表名  [where <表达式>]
selete 字段1,字段2.....  表名  [where <表达式>]