第一章
1.数据库(DataBase,DB):长期存储在计算机内的、有组织的、可共享的数据集合。
2.数据库的优点: 具有可共享性;
具有较小的冗余度;
较高的数据独立性和易扩展性;
据库中的数据具有完整性。
3. 数据库管理系统(DBMS):是位于用户和操作系统之间的一层数据管理软件。
主要功能:数据定义功能(DDL);
数据操纵功能(DML);
数据库的运行管理;
数据库的建立和维护功能.
4. 数据库系统结构分为三层:内模式、概念模式(模式)(仅有一个)和外模式;
5. 数据库的二级映象:外模式/概念模式映象,概念模式/内模式映象;
6.数据库系统用户结构:单用户、主从式结构、客户-服务器结构、分布式结构;
- 一个关系就是一张二维表,由行和类组成;行:元组/记录,列:字段/属性;
8.关系数据库设计:(1)需求分析;(2)概念结构设计(工具E-R模型);
(3)逻辑结构设计;(4)数据库表的优化与规范化(至少满足前三范式)。
9.实体之间存在的关系:一对一联系、一对多联系、多对多联系
10.关系数据库的完整性
(1)实体完整性约束(primary):是主关键字段中的诸属性值不能取空值;
(2)唯一性约束(unique):是在约束的字段上不能有相同值出现。
(3) 参照完整性约束(foreign):要求外关键字的值必须来源于被参照关系表的取值或为空值。(和实体完整性一起用)
(4) 检查(check)和缺省值(default)约束:是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
第二章
1.SQL Server是一种基于客户-服务器的关系型数据库管理系统,使用Transact-SQL传送请求和服务,将所有工作分解为客户机任务和服务器任务,由两者分别完成。
2.登录模式:Windows身份验证模式、混合模式;
3.分离数据库:sp_detach_db 数据库名,
附加数据库:sp_attach_db [ @dbname = ] '数据库名' , [ @filename1 = ] '包括路径的数据库文件的物理名称' [ ,...16 ]。
第三章
1.数据库在磁盘上以文件为单位存储,由数据文件和事务日志文件组成
主数据库文件(Primary Database File)(有一个文件扩展名.mdf);
次数据库文件(Secondary Database File)(有的数据库可能没有,扩展名.ndf);
事务日志文件(至少一个,扩展名.ldf)。
2. 数据文件存储的基本单位是页,页的大小是 8 KB,数据库每兆字节有 128 页,每页的开始部分是 96 字节的页首,首页页码为零。
3. 每个 SQL Server 实例有四个系统数据库
master:由系统表组成,记录了安装以及随后创建的所有数据库的信息,不允许任何人对它进行修改。必须经常保留一份它的当前备份的拷贝。
model:记录了用户创建的所有临时表、临时数据和临时的存储过程,重新启动,该数据库被重新创建而不是恢复。
tempdb:是建立新数据库的模板,严格禁止删除model数据库。
msdb:SQL Server Agent服务使用的数据库。
1.创建数据库 create database 数据库名
create database 图书管理系统
修改数据库:alter database 数据库名
删除数据库:drop database数据库名
第四章(表创建、修改)
1. SQL Server表的类型:永久表和临时表
永久表:创建后一直存储在数据库文件中,直到用户删除为止。
临时表又分两种:
本地临时表:表名前加#符号:只能由创建它的用户使用,在该用户连接断开时,它被自动删除。
全局临时表:表名前加##符号:当前所有连接用户都可以使用,它在最后一个会话结束时被自动删除。
系统根据表名前有无#符号确定创建的是临时表还是永久表。
2.数据类型中只有字符串可以在后面加长度.
3.创建表用到的约束:
空值约束(null 或 not null) 主键约束(primary key constraint)
唯一性约束(unique constraint) 检查约束(check constraint)
默认约束(default constraint) 外部键约束(foreign key constraint)
主键:constraint 约束名 primary key(列名)
外键:constraint 约束名 foreign key(外键列名) references 借助的表(借助的列)
检查约束:constraint 约束名 check (列名 like’[][][]’)
默认约束:default
Eg: 主键:constraint PK_选课表_学号_开课号 primary key(学号,开课号)
外键:constraint FK_选课表_学号foreign key(学号) references 学生表(学号)
检查约束:constraint CK_选课表_学号 check (学号like’s[0-9][0-9][1-9]’)
默认约束:性别 char(7) default ‘男’
- 修改表:
增加一个字段:alter table 表名
Add 新列名 数据类型 约束
修改数据类型属性的长度:alter table 表名
Alter column 字段名 数据类型
注:新增加的字段不能定义为not null ,可以有约束
Eg: 增加“年龄”属性,其类型为整型,取值为13-70
alter table 学生表
Add 年龄 int constraint CK_学生表_年龄 check(年龄>=13 and 年龄<70)
删除表中某个属性列:
删除约束:alter table 表名 drop constraint 约束名
删除某个属性:alter table 表名 drop column 字段名
Eg: alter table 学生表 drop constraint PK_选课表_学号
Alter table 学生表 drop column 学号
注:删除有约束的字段,要先删除约束才能删字段