-----------------------------------1、数据库设计-----------------------------------
一、 软件开发的基本流程
可行性研究 -> 需求分析 -> 设计 -> 开发编码 -> 测试 -> 实施
二、 数据库设计的基本流程
数据采集 -> 绘制E-R图 -> 图转表 -> 规范化表 -> 编码
(需求分析)  (概要设计)    (详细设计)  (设计)    (开发)
三、 E-R图:实体关系图
实体Enitty:对应的是数据表。使用矩形标识。
属性Attribute:对应的是数据表的字段。使用椭圆标识。
关系Relationship:表示表与表之间的关系。使用菱形标识。
映射基数:一对一,一对多,多对一,多对多
四、 三范式
第一范式:表中的字段都是最小的不可在分割的。
第二范式:表中的字段都要依赖于主键。
第三范式:表中的字段都要直接依赖于主键

-----------------------------------2、FCL流程控制-----------------------------------
一、输出语句
    1、PRINT 表达式:以文本形式输出
    2、SELECT 表达式:以表格形式输出,并有受影响的行数。
二、变量
1、局部(用户)变量:执行完成后就被销毁。
声明:
DECLARE @变量名 数据类型[(长度)]
赋值:
1、 静态(直接)赋值
SET @变量=
SELECT @变量=值
2、动态(查询)赋值
  SELECT @变量=字段 FROM 表 [WHERE 条件]
输出:
sql触发器的使用
PRINT @变量
SELECT @变量
2、全局(系统)变量:由系统定义,使用@@开头
    常用的系统变量:
        @@ERROR:返回上一语句执行后的错误号。(0表示无错)
        @@IDENTITY:返回上一语句执行后的IDENTITY标识值。
        @@ROWCOUNT:返回上一语句执行后的影响行数。
三、流程控制语句
1、IF:
IF 条件表达式1
BEGIN
  语句块1
END
ELSE IF 条件表达式2
BEGIN
  语句块2
END
……
ELSE
BEGIN
  语句块n
END
2、WHILE:循环四要素:初始化循环变量,循环条件,循环体,改变循环变量
初始化循环变量(1)
WHILE 条件表达式(2)
BEGIN
  循环体(3)
  改变循环变量(4)
END
注:BREAK可直接结束循环
3、CASE:常用于查询中,对列值的处理
1、类似于多重IF
CASE
  WHEN 条件1 THEN 值1
  WHEN 条件2 THEN 值2
  …..
  ELSE 值n
END
2、类似于switch
CASE 某字段
  WHEN 固定值1 THEN 结果1
  WHEN 固定值2 THEN 结果2
  …..
  ELSE 结果n
END

-----------------------------------3、高级查询-----------------------------------
一、 子查询:一个查询语句(父(外)查询)中又写了一个查询语句(子查询)。
子查询的应用:
1、子查询做为查询的条件:SELECT * FROM 表 WHERE 某字段=(子查询)
2、子查询做为查询的临时表:SELECT * FROM (子查询) AS表别名 WHERE 条件
3、子查询做为查询的列:SELECT *,(子查询) AS 别名 FROM 表
注:子查询的结果集只能有1行1列
子查询高级应用:当子查询的结果集超过1行的时候
1、 原使用=时:将=换成in
2、 原使用<>时:将<>换成
3、 原使用>,<,>=,<=时:当需要满足所有条件时:直接在特号后加ALL
当只需要满足部分条件时:直接在特号后加SOME或ANY
    任务:分页处理
SELECT TOP 每页行数 * FROM
WHERE 主键列 NOT IN (SELECT TOP ((页码-1)* 每页行数) 主键列 FROM )
二、 排名函数:作用于查询中,新增一个编号列。