SQLA章节要点
第一章 数据库的设计
1. 设计步骤:需求分析、概要设计(E-R)、详细设计(三大范式)、代码编写、测试等。
2. E-R图:矩形:实体,椭圆:属性,菱形:关系。
3. 关系映射基数:一对一、一对多、多对多。
4. exists子查询第一范式:字段原子性。
5. 第二范式:符合第一范式后,所有字段均依赖于主键,一个表只描述一件事情。
6. 第三范式:符合第二范式后,所有字段均直接依赖于主键,消灭传递依赖。
7. 适当冗余,规范化和性能之间要权衡。
第二章 数据库的实现
1. 建库语法:create database 库名 on () log on()
五要素:name, filename, size, maxsize, filegrowth
    存在检测:if exists (select * from sysdatabases …)
    删除数据库:drop database 库名
2. 建表语法:create table 表名 (字段描述)
存在检测:if exists (select * from sysobjects …)
主键、外键、默认、检查、唯一五种约束可以通过修改表的方式添加,即:
Alter table add constraints …
删表:drop table …
3. DCL语句:
创建SQL登录:exec sp_addlogin
创建数据库用户:exec sp_grantdbaccess
授予权限:grant select, delete on 表名 to 用户名
第三章 T-SQL编程
1. 变量:局部变量:declare @num,全局变量:@@error(用户不能定义)
赋值方式:set 单独赋值,赋常量;select 多个变量一齐赋值,赋表中的数据。
输出方式:print 文本形式输出;select 表格形式输出。
2. 逻辑控制语句:
条件:if-else,多重ifcase…when…then…end
循环:while
3. go语句标志着批处理结束。
第四章 高级查询
1. 简单子查询:父子之间使用关系运算符连接。
2. 集合子查询:父子之间使用innot in连接。
3. 存在子查询:常用作条件语句,使用exists关键字,只查询有没有,不管查到什么。
4. 子查询和连接查询在某些情况下可以互换,根据需求使用。
第五章 事务、索引和视图
1. 事务:一批语句作为整体运行,要么都执行,要么都不执行。
事务的特性:原子性、一致性、隔离性、持久性。
控制事务的语句:begin transactioncommit transactionrollback transaction
事务的种类:显式事务、隐式事务、自动提交事务。
运行事务时,依靠累积@@error变量的值决定结果。
2. 索引:数据表的目录表,目的是加快查询速度。
索引分类:聚集和非聚集。建立主键时系统自动建立聚集索引。
建立索引的语法:create nonclustered index … on 表名(字段名)
适宜建立索引的字段:用作搜索条件和排序。
3. 视图:虚拟表,目的:数据库安全、方便用户操作。
创建视图的语法:create view 视图名 as SQL 语句
第六章 存储过程
1. 已编译的SQL语句块,一次编译,多次调用执行。
2. 分为系统存储过程和用户自定义存储过程。
3. 创建存储过程的语法:
Create procedure 过程名
参数列表
As
    SQL语句块
Go
4. 参数类型:输入参数和输出参数。
5. 无论是定义还是调用,输出参数必须用output标记。
6. 带参存储过程的调用方式
Exec 过程名 实参1,实参2
Exec 过程名 形参1 = 实参1,形参2 = 实参2
7. 自定义SQL错误:raiserror(‘错误信息’,161)
8. 存储过程经常带有事务管理。