数据库基础整理的.docx
- 文档编号:11747279
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:21
- 大小:26.02KB
数据库基础整理的.docx
《数据库基础整理的.docx》由会员分享,可在线阅读,更多相关《数据库基础整理的.docx(21页珍藏版)》请在冰豆网上搜索。
数据库基础整理的
《数据库基础》复习
第一章数据库技术
1、信息、数据的概念。
信息是现实世界事物的存在方式或运动状态的反映。
数据时数据库中存储的基本对象,是描述事物的符号记录。
2、数据库管理技术的发展三个阶段:
人工管理、文件系统、数据库阶段(特点)。
人工管理的特点:
数据不长期保存在计算机里,用完就删除:
应用程序管理数据,数据与程序结合在一起:
数据不共享,数据时面向应用的,一个程序对应一组数据:
数据不具独立性。
文件系统的特点:
数据以文件的形式长期保存在计算机里:
操作系统的文件管理提供了对文件的输入和输出的管理:
数据可以共享,一个数据文件可以被多个应用程序使用:
数据文件之间彼此孤立,不能反映数据之间的联系,数据大量冗余
数据库阶段特点:
数据结构化:
数据的共享性高,冗余度低,易扩充:
数据独立性高:
数据由DBMS统一管理和控制
3、数据库(DB)、数据库管理系统(DBMS)、数据库系统(DBS)三者含义及之间的关系
数据库:
数据库是长期存储在计算机内的,有组织的,可共享的数据集合。
数据库管理系统:
数据库管理系统是位于用用户与操作系统之间的一层数据库软件,能够完成数据的组织,存储,维护,获取等任务。
数据库系统:
是采用数据库技术的计算机系统。
三者之间的关系:
数据库系统由数据库操作系统,数据库管理系统及应用开发工具,数据库应用程序,数据库管理员和用户组成。
4、数据模型、关系模型的基本术语及E-R图。
数据模型:
数据模型是现实世界数据特征的抽象,是现实世界的模拟。
数据模型应满足三方面的要求:
一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机中实现。
根据数据模型应用目的的不同可以将数据模型分为概念模型和结构数据模型。
概念数据模型的表示方法:
E—R图法,E—R图提供了表示实体集、属性和联系的方法。
实体型:
用矩形表示;属性:
用椭圆表示;联系:
用菱形表示。
结构数据模型:
有层次、网状、关系、面向对象模型。
关系模型:
由数据结构、关系操作、关系的完整性三部分组成。
关系模型的基本术语:
关系模型:
表示实体及实体集之间的联系。
属性和值域:
二维表中的列成为属性,属性值的范围叫值域。
关系模式:
二维表中行定义成为关系模式。
元组与关系:
二维表中的行叫元组,元组的集合叫关系。
关键字或码:
在关系的属性中能够用来唯一标识元组的属性叫关键字或码。
第二章SQLServer2005概述
1、SQLServer2005版本。
SQLServer2005版本分为:
SQLServer2005企业版;SQLServer2005标准版;
SQLServer2005工作组版;SQLServer2005开发版;
SQLServer2005简易版。
2、SQLServer2005的安全性。
SQLServer2005的安全性有权限验证模式、数据库用户和账号。
权限验证模式分为:
Windows验证模式和混合验证模式。
第三章数据库基本操作
1、数据库文件类型、文件组。
数据库文件类型:
主数据文件、辅助数据文件、事物日志文件。
文件组:
文件组提高了数据的查询速度,便于数据库的维护。
2、系统数据库。
系统数据库包含4个可见的系统数据库,分别是:
master(主数据库),
tempdb(为临时表和其他临时存储需求提供存储空间),
model(包含每个数据库所需的系统表格),msdb(支持代理、安排作业、报警等)。
.
3、T-SQL语言创建数据库语法格式。
CREATEDATEBASE数据库名
4、数据库的管理:
打开数据库:
语法格式为“USE数据库名”
查看数据库信息:
语法格式为[EXEC]sp_helpdb‘数据库名’或者
[EXECUTE]sp_helpdb‘数据库名’
增加数据库容量:
ALTERDATABASE数据库名
MODIFYFILE
(NAME=数据库名_data,SIZE=XMB)
收缩数据库容量:
DBCCSHRINKDATABASE(‘数据库名’)表示收缩至最小
DBCCSHRINKDATABASE(‘数据库名’,收缩后的空间占原空间的百分比)
例如:
DBCCSHRINKDATABASE(‘student’,80)
更改数据库名:
语法格式为EXECsp_renamedb‘oldname’,’newname’
分离数据库:
语法格式为[EXEC]sp_detach_db‘数据库名’
附加数据库:
CREATEDATABASE数据库名CREATEDATABASE数据库名
ONON
(FILENAME=‘os_file_name’)(FILENAME==‘路径:
\数据库名.mdf’)
FORATTACHFORATTACH
删除数据库:
语法格式为:
DROPDATABASE数据库名
第四章数据表的基本操作
1、表的概念:
基本术语。
表:
在SQLServer数据库中表定义为列的集合。
基本术语与SQLServer表的对应关系:
基本术语
SQLServer表
关系名
表名
关系
表
关系模式
表的定义
属性
表的列或字段
属性名
字段名或列名
值
列值或字段值
元组
表的行或记录
码
主键
关系完整性
SQLServer的约束
2、常用数据类型:
类型、表示方法、存储空间大小。
常用数据类型:
1、精确数字类型;
2、近似数字类型;
3、字符数据类型;
4、Unicode字符数据类型;
5、日期和时间类型;
6、二进制字符数据类型;
7、其它数据类型。
(见课本68~71)
3、数据表:
创建表、修改表、删除表(TRANCATTABLE、DROPTABLE、DELETE的区别)语法格式。
创建表:
创建了一个工人信息表,它包括工人编号、姓名、性别、出生日期、职位和备注信息。
CREATETABLE工人
(
工号char(8)NOTNULL,
姓名char(8)NOTNULL,
性别char
(2)NULL,
生日datetimeNULL,
职位varchar(10)NULL,
备注ntextNULL,
)
修改表
A、添加新列
ALTERTABLE工人ADD薪水VARCHAR(20)NULL
B、删除列
ALTERTABLE工人DROPCOLUMN生日
C、更改数据类型
ALTERTABLE工人ALTERCOLUMN薪水DECIMAL(5,2)
D、添加约束
ALTERTABLE工人
ADDCONSTRAINTpk_grghPRIMARYKEY(工号)
E、删除约束
ALTERTABLE工人
DROPCONSTRAINTpk_grgh
删除表:
DROPTABLE表名
TRANCATTABLE、DROPTABLE、DELETE的相同点:
truncate和不带where子句的delete,以及drop都会删除表内的数据
TRANCATTABLE、DROPTABLE、DELETE的不同点:
truncate和delete只删除数据不删除表的结构;drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index)。
delete语句是dml,这个操作会放到rollbacksegement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发。
Truncate、drop是ddl,操作立即生效,原数据不放到rollbacksegment中,不能回滚。
操作不触发trigger。
速度,一般来说:
drop>truncate>delete
第五章数据的基本操作
1、INSERT语句的语法。
INSERT语句用于向数据库表或者视图中加入一行数据。
INSERT语句的语法形式如下:
INSERT要接受数据的表名INSERT系部
(要插入数据所在列的名称)(系部代码,系部名称,系主任)
VALUESVALUES
(插入的数据)(‘01’,‘教育技术系','杨主任')
2、UPDATE语句的语法。
UPDATE要修改的表的名称
SET要修改的列或变量名称的列表
WHERE限定条件
例:
将“教学计划”表中课程号为“0001”的“课程类型”修改为“专业选修课”。
代码如下:
UPDATE教学计划
SET课程类型='专业选修课'
WHERE课程号='0001'
3、DELETE语句的语法。
DELETE要删除行的表的名称
WHERE删除行的限定条件
例:
删除“教师”表中没有专业的记录。
代码如下:
DELETE教师WHERE专业ISNULL
4、SELECT语句的基本语法。
(简单查询)
SELECTselect_list
FROMtable_list
例:
a查询“系部”表中的系部代码和系部名称。
SELECT系部代码,系部名称
FROM系部
b查询所有“教师”表中的所有记录。
SELECT*FROM教师
5、输出部分列、所有列、计算列、指定列别名、限制返回行数、消除重复行、查询条件、排序、分组、统计等。
输出部分列SELECT要输出的列名
FROM表名(如4中例题a)
输出所有列:
SELECT*FROM表名(如4中例题b)
输出计算列:
例题:
查询“教师”表中的姓名和年龄。
SELECT姓名,YEAR(GETDATE())-YEAR(出生日期)FROM教师
指定列别名:
SELECT列名(表达式)列别名FROM数据源
SELECT列名(表达式)AS列别名FROM数据源
SELECT列别名=列名(表达式)FROM数据源
查询“教师”表中的姓名和年龄并添加标题。
SELECT姓名,YEAR(GETDATE())-YEAR(出生日期)年龄FROM教师
SELECT姓名,YEAR(GETDATE())-YEAR(出生日期)AS年龄FROM教师
SELECT姓名,年龄=YEAR(GETDATE())-YEAR(出生日期)FROM教师
(以上3种方法任意一种都可以)
限制返回行数:
在字段列表前面加上TOPnPERCENT关键字。
例:
查询“课程注册”表中前5条记录。
SELECTTOP5*FROM课程注册
查询“课程注册”表中前50%条记录。
SELECTTOP50PERCENT*FROM课程注册
消除重复行:
在字段列表前面加上DISTINCT关键字。
例:
查询“课程注册”表中的选修了课程的学生学号。
SELECTDISTINCT学号FROM课程注册
查询条件:
比较、确定范围、确定集合、字符匹配、空值、多重条件(课本109)
排序:
ORDERBY{列名[ASC(升序排列)|DESC(降序排列)]}
分组:
GROUPBY列名[HAVING筛选条件表达式]
统计:
通过集合函数COMPUTE子句GROUPBY子句来实现。
(课本115)
6、常用数据定义语言:
CREATE、ALTER、DROP。
常用数据操纵语言:
SELECT、INSERT、DELETE、UPDATE。
第六章数据的高级查询
1、连接查询:
查询同时涉及两个以上的表时,称为连接查询。
连接查询有以下四种方法,
交叉连接语法:
SELECT列名列表FROM表名1CROSSJOIN表名2
等值连接语法:
SELECT列名列表
FROM表名1[INNER]JOIN表名2
ON表名1.列名=表名2.列名
例题:
用等值连接法连接“学生1”表和“单科成绩”表,
SELECT*FROM学生1INTERJION单科成绩ON学生1.学号=单科成绩.学号
复合连接语法:
(课本130页)
外连接语法:
分为左外连接、右外连接和全外连接三种连接。
SELECT列表列名FROM表名1LEFT[OUTER]JOIN表名2
ON表名1.列名=表名2.列名
SELECT列表列名FROM表名1RIGHT[OUTER]JOIN表名2
ON表名1.列名=表名2.列名
SELECT列表列名FROM表名1FULL[OUTER]JOIN表名2
ON表名1.列名=表名2.列名
2、子查询:
IN运算符的子查询:
WHERE查询表达式IN(子查询)
例题:
使用系部表和班级表查询计算机系和经济管理系的班级信息:
SELECT*FROM班级
WHERE系部代码IN(SELECT系部代码FROM系部
WHERE系部名称=‘计算机系’
OR系部名称=‘经济管理系’)
比较运算符的子查询:
在子查询中带有比较运算符,如:
>,<,>=,=<,=,<>,!
=,!
>,!
<。
ANY或ALL运算符的子查询:
运算符
意义
>ANY
大于子查询结果中的某个值
小于子查询结果中的某个值 >=ANY 大于等于子查询结果中的某个值 <=ANY 小于等于子查询结果中的某个值 =ANY 等于子查询结果中的某个值 >ALL 大于查询结果中的所有值 小于查询结果中的所有值 >=ALL 大于等于查询结果中的所有值 <=ALL 小于等于查询结果中的所有值 例: 查询比“060101001”班中某一学生年龄小的其他班的学生学号与姓名。 SELECT学号,姓名,出生日期FROM学生 WHERE出生日期>ANY(SELECT出生日期FROM学生WHERE班级代码='060101001')AND班级代码<>'060101001‘ 第七章实现数据完整性 1、数据完整性概念、类型及机制。 数据完整性是指存储在数据库中的数据正确无误,并且相关数据据具有一致性。 数据完整性分为四种类型: 实体完整性、域完整性、参照完整性和用户定义完整性。 A、实体完整性 实体完整性要求在表中不能存在完全相同的记录,而且每条记录都要具有一个非空且不重复的主键值。 实现方法: 主键约束、唯一索引、唯一约束和指定IDENTITY属性。 B、域完整性 域完整性是指特定列的项的有效性。 域完整性要求向表中指定列输入的数据必须具有正确的数据类型、格式和有效范围。 实现方法: CHECK约束、外键约束、默认约束、非空约束、规则及在建表时设置的数据类型。 C、参照完整性 参照完整性是指在有关联的两个或两个以上的表中,通过使用主键和外键或唯一键和外键之间的关系,使用表中的键值在相关表中保持一致。 实现方法: FOREIGNKEY和CHECK约束,以外键与主键之间或外键与唯一键之间的关系为基础。 D、用户定义完整性 用户定义的完整性指允许用户定义不属于其他任何完整性分类的特定业务规则。 2、非空、主键、外键、默认、检查、唯一六种约束创建及删除语法格式。 非空: [CONSTRAINT<约束名>][NULL|NOTNULL] 例题: 建立一个S表,对SNO字段进行NOTNULL约束 ALTERTABLES ADDCONSTRAINTS_SNNOTNULL 主键: ALTERTABLE+要创建主键约束的表的名称。 ADDCONSTRAINT+主键约束名称 PRIMARYKEY[CLUSTERED|NONCLUSTERED]CLUSTERED表示聚集索引 (column_name[,…n])(要创建主键约束的列的名称) 例题: 在“student”数据库中,建立一个“民族”表(民族代码,民族名称),将“民族代码”指定为主键 CREATETABLE民族 (民族代码char (2)CONSTRAINTpk_mzdmPRIMARY, 民族名称varchar(30)NOTNULL) 外键: ALTERTABLE+要创建外键约束的表的名称。 ADDCONSTRAINT+外键约束名称 REFERENCES主键表名(主键表的主键列名称) 例题: 在student数据库的班级表上,为专业代码字段创建一个外键约束,从而保证在班级表中输入有效的专业代码: ALTERTABLE班级 ADDCONSTRAINTfk_zydmFOREIGNKEY(专业代码) REFERENCES专业(专业代码) 默认: ALTERTABLE+要创建默认约束的表的名称。 ADDCONSTRAINT+默认约束名称 DEFAULT+默认值FOR列名 例题: 表中的学历字段创建一个默认约束,默认值为’本科’。 ALTERTABLE教师 ADDCONSTRAINTdf_xl DEFAULT‘本科’FOR学历 检查: ALTERTABLE+要创建检查约束的表的名称。 ADDCONSTRAINT+检查约束的名称 CHECK(检查约束的条件表达式) 例题: 在“student”数据库中为“课程注册”表中的“成绩”字段创建一个检查约束,以保证输入的学生成绩符合百分制要求,即在0~100之间。 ALTERTABLE课程注册 ADDCONSTRAINTck_cj CHECK(成绩>=0AND成绩=<100) 唯一: ALTERTABLE+要创建唯一约束的表的名称。 ADDCONSTRAINT+唯一约束的名称 UNIQUE[CLUSTERED|NONCLUSTERED] (column_name[,…n])(要创建唯一约束的列的名称) 例题: 在“student”数据库中,为民族表中的民族名称字段创建一个唯一约束: ALTERTABLE民族 ADDCONSTRAINTuk_mzmcUNIQUENONCLUSTERED(民族名称) 删除语法格式: ALTERTABLEtable_name DROPCONSTRAINTconstraint_name[,…n] 例题: 删除学生表中的fk_学生_班级、ck_csrp约束 ALTERTABLE学生 DROPCONSTRAINTfk_学生_班级,ck_csrp 3、规则的创建及删除语法。 创建规则语法格式: CREATERULErule_nameAScondition_expression rule_name规则对象的名称 condition_expression条件表达式 例: 创建一个chengji_rule规则,用于限制输入的数据范围为0-100。 CREATERULEchengji_ruleAS@chengji>=0and@chengji<=100 删除规则的语法格式为: DROPRULE规则名称[,…n] 例: 将课程注册表的成绩字段上chengji_rule规则删除。 EXECUTEsp_unbindrule‘课程注册.成绩’ DROPRULEchengji_rule 第八章视图及应用 1、视图的基本概念、含义。 视图是从一个或多个表中导出(视图也可以从视图中导出)的表。 视图的含义: 视图是一个虚拟表,其内容由查询定义。 视图并不在数据库中以存储的数据值集形式存在。 行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 2、视图的创建、修改、删除语法格式 视图的创建: CREATEVIEW+新建视图名称 WITHENCRYPTION(表示加密视图) AS select_staement(定义视图的select语句) 例题: 在“student”数据库中以“学生”表为基础建立一个视图,其名称为“ABC”,使用该视图可以查看“06软件工程001班(班级代码为060101001)”所有学生的信息。 CREATEVIEWABC WITHENCRYPTION AS SELECT*FROM学生 WHERE班级代码=‘060101001’ 视图的重命名: sp_renameold_name,new_name 例题: 将视图“V_班级成绩”重命名为“V_成绩查询” sp_renameV_班级成绩”,“V_成绩查询 视图的定义修改: ALTERVIEW+视图名 ASselect_statement 例题: 将“V_课程计划”视图中的筛选条件变为“专业代码=‘0102’”。 ALTERVIEWV_课程计划 ASSELECT课程.课程名称,教学计划.课程类型,教学计划.开课学期,教学计划.学分 FROM课程JION教学计划 ON课程.课程号=教学计划。 课程号and专业代码=‘0102’ 删除语法格式: DROPVIEW+视图名 例题: 删除视图“V_成绩查询”。 DROPVIEWV_成绩查询 第九章索引及其应用 1、索引的概念、分类。 索引是以表列为基础建立的数据库对象,它保存着数据表中排序的索引列,并且记录了索引列在数据表中的物理存储位置,实现了表中数据的逻辑排序。 索引可以分为: 聚集索引和非聚集索引。 聚集索引: 是指表中数据的物理存储顺序与索引列顺序完全相同。 聚集索引由上下两层,上层为索引页,用于数据检索;下层为数据页,用于存放表中的数据。 非聚集索引: 是不改变表中数据行的物理存储位置,数据与索引分开存储,通过索引带有的指针与表中的数据发生联系。 2、索引的操作: 创建、删除。 索引的创建: CREATEINDEX+索引名 ON+表名 例题: 为“班级”表创建基于系部代码列的非聚集索引bi_xb_index ON班级(系部代码) 索引删除: DROPINDEX表名.索引名 例题: 删除“student”数据库中“班级表”的bi_bjmc_index索引 DROPINDEX班级.bi_bjmc_index 第十章程序设计 1、批处理、注释。 批处理是一条或多条T—SQL语句的集合,这些语句作为一个整体一起提交给SQLserver,SQLserver将一个批处理作为一个整体进行分析,编译和执行。 注释是指程序中用来对程序内容解释说明的语句,编译器在编译程序时会忽略注释语句。 2、变量: 局部变量(声明方法、赋值语法)、全局变量。 变量是程序中最基本的角色,是用来存放数据的。 全局变量: 是SQLserver2005系统提供并赋值的变量,其实质是一组特殊的函数,它们的名称以@@开始,而且不需要任何参数,在调用时不需要在函数名后面加上圆括号,这个函数也成为无参函数。 局部变量: 是在批处理或脚本中用来保存单个数据值的对象。 声明局部变量: 语法格式为: DECLARE@局部变量数据类型 局部变量赋值: 语法格式为: SET@局部变量=表达式 例题: 声明三个局部变量SNAME,BIRTH,SCORE,并
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 基础 整理