SQL高级编程详解.doc
文本预览下载声明
SQL高级编程基础知识大全
SQL Server学习期间对课程进行了总结,撰写了本篇基础知识大全,方便大家学习和查阅!
第一章 数据库的设计
一.为什么要规范化
优秀的 糟糕的 数据冗余 最低限度的冗余 冗余数据过多,浪费严重 内存空间 有效利用,不浪费内存空间 严重浪费,利用率不高 网络传输 效率高,响应时间短 效率低下,响应时间较长 数据一致性 有保证 难以保证,更新和检索会出问题 数据完整性 有保证 难以保证,更新和检索会出问题 二.数据库设计步骤
软件开发生命周期 需求分析 分析客户业务和数据处理需求 概要设计 完成数据库的E-R模型图设计(CDM) 详细设计 将设计好的E-R图转换为表,进行逻辑设计,并最终生成数据库(PDM)
数据库设计步骤 收集信息 创建数据库之前必须充分理解数据需要完成的任务和功能,确定存储内容。 标识实体 完成收集信息后,就必须将数据库的关键实体标识出来,每个不同的对象都有一个对应的表。 标识实体属性 实体标识出以后,就需要将该实体的属性进行划分和标识,这些属性将组成列。 表示实体关系 确定数据库表在逻辑上是如何关联的,然后添加关系并建立起表之间的连接。
E-R模型图图形的含义 图形 矩形(实体) 椭圆(属性) 菱形(关系)
映射基数有哪些 基数类型 一对一 一对多 多对一 多对多 三.数据库规范化
名称 三大范式详解 案例 1NF 列具有原子性(不可再分)(隐含:实体拥有主键列) 课程表(学号、姓名、性别、成绩、课程名称) 2NF 满足1NF的前提下,若主键列只有1列,则自动满足2NF;若主键列有多列时,所有非主键列必须完全依赖于所有主键列。 成绩表(学号、姓名、性别、课程编号、课程名称、成绩) 3NF 满足2NF的前提下,不存在函数传递依赖关系(非主键列必须直接依赖于主键列) 学员信息表(学号、姓名、性别……系编号、系名称……) 第二章数据库的实现
一.创建数据库
文件名称 后缀名 补充 主要数据文件 mdf 数据页大小:8KB 次要数据文件 ndf NTFS最小单位:簇(8KB) 日志文件 ldf 扩展盘区、8个连续的数据页
创建数据库的步骤 主数据文件 日志文件 创建过程 USEmasterGOEXECsp_databasesEXECsp_helpdbIfDB_ID(‘数据库名’)0DROP DATABASE 数据库名GOCREATEDATABASE 数据库名 ON(NAME=’逻辑名称’,FILENAME=’物理名称及路径’,SIZE=初始大小,MAXSIZE=最大,FILEGROWTH=增长量\增长率) LOGON(NAME=’逻辑名称’,FILENAME=’物理名称及路径’,SIZE=初始大小,MAXSIZE=最大,FILEGROWTH=增长量\增长率)注:文件组在LOG ON前面增加一个FILEGROUP自定义文件组名(NAME=……) 二.创建表
创建表的步骤 创建过程 USE数据库名GO–删除建议:先从表,后主表IFOBJECT_ID(‘表名’)0DROP TABLE 表名GO–建表建议:先主表,后从表,只写基本属性。CREATETABLE 表名(列名 数据类型[长度] NULL/NOT NULL [IDENTITY(1,1)],……)ON文件组GO注意:一个表只能有一个IDENTITY属性列 三.约束
约束名称 详细说明 实体完整性约束 主键约束、唯一约束、标识列 域完整性约束 限制数据类型、检查约束、默认约束、非空约束 参照完整性约束 外键约束 自定义完整性约束 规则、存储过程、触发器
约束的写法 主键约束 ALTER TABLE 表名ADD CONSTRAINT PK_表名_列名 PRIMARY KEY(列名) 唯一约束 ALTER TABLE 表名ADD CONSTRAINT UQ_表名_列名 unique(列名) 外键约束 ALTER TABLE 表名ADD CONSTRAINT FK_表名_列名FOREIGN KEY (外键名) REFERENCES 主表名(主键名) 检查约束 ALTER TABLE 表名ADD CONSTRAINT CK_表名_列名CHECK (条件表达式) 默认约束 ALTER TABLE 表名ADD CONSTRAINT DF_表名_列名DEFAULT (值) FOR 列名 四.安全控制
数据库安全控制的三层模型认证方式 创建登陆账户 EXEC sp_addlogin ‘登陆名’,‘密码’EXEC sp_gra
显示全部