收藏 分销(赏)

数据库知识点总结资料.doc

上传人:精*** 文档编号:2246660 上传时间:2024-05-23 格式:DOC 页数:22 大小:185KB 下载积分:10 金币
下载 相关 举报
数据库知识点总结资料.doc_第1页
第1页 / 共22页
数据库知识点总结资料.doc_第2页
第2页 / 共22页


点击查看更多>>
资源描述
第一章 数据库基础 1数据库系统:是由数据库及其管理软件组成的系统,常常把数据库有关的硬件和软件系统成为数据库系统, DBMS的英文全称DataBase Management System 概念模型是指人对现实世界的认识,抽象成信息 数据模型是指将现实世界转换成计算机能认识的信息 SQL是英文全称是Structured Query Language 2.数据库:数据库就是数据的仓库,由表、关系以及操作对象组成 3.数据:是描述事物的符号记录(数字、文字、图形、图像、声音等) 4.数据库的作用 存储大量数据,方便检索和访问 保持数据信息的一致、完整 共享和安全 通过组合分析,产生新的有用信息 5.数据库经历的三个阶段及特点 1) 人工管理阶段: 数据不保存;使用应用程序管理数据;数据不共享;数据不具有独立性。 2) 文件系统阶段:数据可以长期保存;由文件系统管理数据;共享性差,数据冗余大;数据独立性差。 3) 数据库系统阶段:数据结构化;数据共享性高;数据独立性强;数据粒度小;独立的数据操作界面;统一管理和控制 6.数据模型的分类 层次模型 网络模型 关系模型 用二维表结构表达实体集的模型 7. E-R图三个主要部分 1)1.实体集:在E-R图中用长方形来表示实体集,实体是实体集的成员。 2) 联系: 在E-R图中用菱形来表示联系,联系与其涉及的实体集之间以直线连接, 并在直线端部标上联系的种类 , (1:1,1:N,M:N)。 3) 属性: 在E-R图中用椭圆形来表示实体集和联系的属性,对于主键码的属性, 在属性名下划一横线。 8. 绘制E-R图所需的图形 1) 长方形框----实体集(考虑问题的对象) 2) 菱形框----联系(实体集间联系) 3) 椭圆形框----实体集和联系的属性 4) 直线----连接相关的联系和实体,并可标上联系的种类 9. E-R图设计原则:真实性;避免冗余;简单性 10.三大范式 第一范式:在关系模型中的每一个具体关系R中,如果每个属性都是不可再分的,则称关系(R)属于第一范式(1NF) 第二范式:如果关系模式R属于第一范式,且每一个非主属性都完全依赖于主码,则称关系R是属于第二范式的 第三范式:如果关系模式R为2NF,并且R中的每个非主属性不传递依赖于R的主码,则称关系R是属于第三范式的 若要求分解保持函数依赖,那么模式分解一定能够达到BCNF 第二章 数据库的安装 1.常见的数据库类型:Access、SQL server2000、2005、2008,Oracle数据库等 2. 数据库管理员的工作是:配置数据库服务器环境 ;管理数据库的逻辑对象结构; 配置数据库的对象权限 ;制定数据库的性能优化策略 ;数据库的备份还原策略 ;数据库的异构协同结构 3. SQL Server 2008 的版本 Express 适用于无连接的客户端或独立应用程序 Workgroup 适用于工作组或分支机构操作的数据库 Standard 部门级应用程序的数据库服务器 Enterprise 高度可伸缩和高度可用的企业级数据库 Developer Enterprise 版,但是只授予开发和测试用许可 Web 供托管公司提供低成本、高伸缩的托管服务,只收取低廉的每月许可费 Mobile 用于智能手持式设备的精简数据库 12.掌握SQL Server 2008数据库的安装与卸载 不同的数据库之间若想互相使用数据可以采取导入导出的方式进行 希望完全安装SQL Server 2008,则应选择典型安装 第三章 数据库的管理 1.T-SQL语言分类 DDL(数据定义语言) -create(创建) -alter (修改) -drop (删除) DQL(数据查询语言) -select(查询) DML(数据操作语言) -insert(插入) -update(更新) -delete(删除) DCL(数据控制语言) -revoke(撤销) -deny(拒绝) -grant(同意、授权) master数据库,记录所有系统级信息,记录其他所有数据库的信息的系统数据库 model数据库创建其他所有数据库的模板的系统数据库 msdb数据库与sql server 代理,与计划任务和作业等相关的系统数据库 tempdb数据库存储数据库运行时的临时的信息的系统数据库 2.数据库文件 主数据文件(.mdf):一个数据库有且只有一个 辅助数据文件(.ndf):根据需要自由选择,当数据库很大时,可以选择多个 日志文件(.ldf):用于存储恢复数据库所需的事务日志信息 数据库数据文件结构中,最小的存储单位是页 数据库数据文件结构中,管理空间的基本单位是区 SQL SERVER数据库中,每个表最多有1024个列 标识表中唯一的实体是主键 为数据表创建索引的目的是提高查询的检索性能 存储过程是一组预先定义并(编译 )的Transact-SQL语句 3.掌握数据库的创建及修改(图形化及代码) 修改数据库包括:扩展、收缩、分离附加、删除 4.语法 1)修改数据库名 Alter database 原数据库名 Modify name =新数据库名 例子:【例】将数据库book的名字改为books alter database book modify name=books 2)修改文件属性 Alter database 数据库名 Modify file ( name='逻辑名', size=修改后的大小, maxsize=修改后的大小, filegrowth=修改后的大小 ) Go 例子:把初始大小由原来5mb增大为12mb alter database books modify file ( name='book_data', size=12mb ) go 3)添加日志文件 Alter database 数据库名 Add log file ( name= ‘逻辑名’, filename = ‘文件的存放路径’, size=日志文件的初始大小, maxsize=日志文件的最大大小, filegrowth=日志文件的增长方式 ) Go 例子:【例】向shop数据库中添加一个日志文件 alter database shop add log file ( name='shop_log2', filename ='c:\shop_log2.ldf', size=10mb, maxsize=20mb, filegrowth=10% ) go 4)删除空文件 Alter database 数据库名 Remove file 文件的逻辑名 例子: 删除文件shop_data2 alter database shop remove file shop_data2 4) 添加辅助数据文件 alter database 数据库名 add file ( name=‘逻辑名’, filename=‘文件存放的路径’, size=初始大小, maxsixe=最大大小, filegrowth=增长方式 ) Go 例子:向数据库shop中添加一个辅助数据文件 alter database shop add file ( name='shop_data3', filename='c:\shop_data3.ndf', size=5mb, maxsize=10mb, filegrowth=10% ) go 5)创建/删除数据库 Create database 数据库名 on primary ( --数据文件 name=‘逻辑名’, filename=‘文件的存放路径’, size=数据文件的初始大小, maxsize=数据文件的最大大小, filegrowth=文件的增长方式 ) log on ( --日志文件 name=‘逻辑名’, filename=‘文件的存放路径’, size=数据文件的初始大小, maxsize=数据文件的最大大小, filegrowth=文件的增长方式 ) go 例子:创建一个名为book的数据库,其初始值大小为5MB,最大大小为 50MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始 为2MB,最大可增长到5MB,按1MB增长。 create database book on primary ( name=‘book_data', filename='c:\book_data.mdf', size=5mb, maxsize=50mb, filegrowth=10% ) log on ( name=‘book_Log', filename='c:\book_log.ldf', size=2mb, maxsize=5mb, filegrowth=1mb ) 6) 删除数据库 Drop database 数据库名 例子:删除数据库shop drop database shop 打开或切换数据库的命令是use 数据库名 收缩数据库northwind,保留10%的可用空间的命令是DBCC ShrinkDatabase('northwind',10) 第四章 数据表的操作 1. 在SQL server中创建表的极限: 每个数据库可以有20亿个表 ,每个表有1024个列 ,每个列可以有8064字节 2. 数据类型 种类 数据类型 数字 整数 int, bigint, smallint, tinyint 精确数值 decimal, numeric 近似数值 float, real 货币 money, smallmoney 日期和时间 datetime, smalldatetime 字符 Non-Unicode char,varchar,varchar(max), text Unicode nchar,nvarchar,nvarchar(max), ntext 二进制 binary,varbinary,varbinary(max) 图像 image 全局标识符 uniqueidentifier Xml xml 特殊 bit, cursor, timestamp, sysname, table, sql_variant 3.字符类型 字符、数字、特殊符号 – char( ) : 固定长度,以空格填补多余长度空间 – varchar( ): 可变长长度,不以空格填补多余长度空间 – nchar( ): unicode固定长度 – nvarchar( ) : unicode可变长长度 – unicode国际标准码: 双字节模式(固定每个字符16bit) 一个汉字占两个字节(16bit) 一个字母占两个字节(16bit) 电话号码应当采用字符格式的数据类型来存储 int数据类型存储占几个字节 4 smallint数据类型存储占几个字节 2 tinyint数据类型存储占几个字节 1 bigint数据类型存储占几个字节 8 DECIMAL[ p [s] ]的形式,p 和s 代表什么p代表总位数,s代表小数位数 数据类型char每个字符占几个字节 1 数据类型nchar每个字符占几个字节 2 数据类型varchar每个字符占几个字节 1 数据类型nvarchar每个字符占几个字节 2 datetime数据类型的范围是表示的是1753年1月1日到9999年12月31日 4.语法: 1)创建表 create table 表名 2)修改表 alter table 表名 3)删除表 drop/delete table 表名 4)将查出的信息放入新表 Select * into 新表名 from 旧表名 5) 添加的信息必须满足现有表结构 Insert into 现有表 select * from 旧表名 5.drop和delete、truncate的区别:drop是删除表,而delete和truncate是删除表中记录 5. 数据操作语言DML select 从表或视图中检索数据 insert 将数据插入到表或视图中 update 修改表或视图中的数据 Update grade set score=score+5 where score>=55 and score<=60 delete 从表或视图中删除数据 delete from 表名 where 条件 Delete from student where 性别='女' 删除student 表的命令是drop table student 条件“年龄BETWEEN 40 AND 50”表示年龄在40至50之间,且包括40岁和50岁 详解:模式查找like '_a%',like '_[a-e]%',like ‘010[^0]%[A,B,C]%’ SQL Server中自己建立的stuDB数据库属于用户数据库 数据冗余是指存在重复的数据 附加数据库的操作是把已经存在于磁盘上的数据库文件恢复为数据库 创建好数据库接着要创建数据表 主键是用来实施实体完整性约束,一个表只能有一个主键 修改表名为Table1的字段Field1长度,原为Char(10)要求用SQL增加长度为char(20), Alter table Table1 Alter column Field1 char(20) 在employees表中添加一个memo字段,数据类型char(30)的命令是alter table employees add memo char(30) 第五章 基础查询 1.select语法结构 基本语法:select 字段名 From 目标表 Where 条件 【例】查询学生成绩数据库(student_score)学生情况表(Member)中的 所有列。 use student_score select * from Member 2.Where条件限定语法的用法 基本语法:use 数据库名 Select 字段名 From 目标名 Where 字段名=“内容” Go 【例】查询Member表中Mname为马德保的相关信息 use student_score select * from Member where Mname='马德保' go 3.模糊查询 like 1)基本语法:select 字段名 From 目标名 Where 目标名 like 条件 【例】查找学生姓名以‘刘’开头的所有学生信息 use student_score select * from Member where Mname like '刘%' go 2) % 代表所有可能的情况 3)%的使用 %N% 表示包含N N% 表示N开头 %N 表示N结尾 4)“^’代表不、不是、不以的意思 4. Or/and/not的逻辑运算 【例】将Mname以’刘’开头,或总学分为60,且专业名为网络互连的学生Mname use student_score select Mname,Mtotalscore,MMajor from Member where Mname like '刘%' or MTotalscore=60 and MMajor='网络互连' go 5.Between…and 在…范围之内 【例】查找总学分为60和70之间的学生所有信息 use student_score select * from Member where MTotalScore between 60 and 70 go 6.In =or 或 【例】查找总学分为70和80的所有学生信息 use student_score select from Member where Mtotalscore in('70','80') -------where Mtotalscore not in(‘70',‘80') go 6.Is null为空的查询 【例】查询所在地区为空的学生姓名 use student_score select Maera,Mname from Member where Maera is null go 7.Order by排序: asc升序;desc降序 【例】查找学生的总学分以升序排列,出生日期以降序排列的学生姓名和学号 use student_score select Mname,Mbirth,Mtotalscore, MID from Member order by Mtotalscore asc ,Mbirth desc go 8.distinct 数据过滤和消除重复记录 【例】查询student_score数据库中Member表中的总学分,但是不能有重复 use student_score select distinct Mtotalscore from Member order by Mtotalscore go 9.Top和top…with ties的用法 【例】求学分最高的5位学生的信息,并且返回与第5并列的学生信息 use student_score select top 5 with ties MID,Mtotalscore from Member order by Mtotalscore go 注: with ties必须与order by连用 10.as 取别名 【例】在student_score数据库中的Member表中对Mname取别名为a, 专业名为b,并在补一列为性别,并取别名为c use student_score select Mname as a, MMajor as b ,‘性别’ as c from Member go 第六章 高级查询 1.联接定义:根据各个数据库表之间的逻辑关系从二个或多个数据表中检索数据 2.联接分类 内连接:基本内连接、多表连接、自连接 外连接:左外连接、右外连接、全外连接 交叉连接 3. 左外连接、右外连接、全外连接的含义 left outer join 左外连接(join左边的表),结果集中除了包括满足连接条件的行外,还包 括左表所有行 right outer join 右外连接(join 右边的表),结果集中除了包括满足连接条件的行外,还包括右表所有行 full outer join 全外连接,结果集中除了包括满足连接条件的行外,还包括两个表的所有行 4.内连接概述 1)用…innerjion… on…语句进行连接 Jion指定需要连接的数据表 On指定连接条件(inner可省略) 【例】查找选修了01课程且成绩在30分以上的学生编号和成绩 use student_score select M.MID,S.score from Member M join Score S on M.MID=S.MID where CID='01' and score>=30 go 5.外连接语法:select 字段名1,字段名2…字段n From 表1 left outer join 表2 from 表1 right outer join 表2 from 表1 full outer join 表2 Go 【例】查找所有学生信息及其考试成绩,若该生未参加任何考试,也列出其信息 use student_score select M.*,S.CID,S.score from Score S right join Member M on M.MID=S.MID go 6.交叉连接语法:select字段1,字段2 From 表1 cross join 表2 Go 【例】返回Member表和Score表所有可能记录的组合 use student_score select M.MID,M.Mname,CID,Score from Member M cross join Score S go 在WHERE子句中包含一个形如SELECT-FROM-WHERE的查询块,此查询块称为子查询 SQL中消除重复的记录命令是distinct 第七章 函数 1. 函数:是一段特殊的程序代码,它能对查询结果进行一定的操作 函数的作用:就是使用户不必书写太多的程序代码即可完成复杂的操作 2. SQL Server函数类型包括系统函数、字符串函数、 日期时间函数、聚合函数等 3. 系统函数对SQL Server服务器和数据库对象进行操作,返回服务器配置和数据库对象数值等信息 CURRENT_TIMESTAMP( )可返回系统当前日期和时间,类型为datetime HOST_NAME ()返回主机名称 SYSTEM_USER 返回当前系统用户 USER_NAME( ) 返回id 标识指定的用户名称 db_name()返回当前会话的数据库名称 4. 聚合函数 功能 1)Sum() 计算表达式所有值之和 必须是数值,数字类型 【例】求选修01课程的学生的总成绩。 use student_score select sum(score) as '课程01总成绩' from Score where CID='01 go 2)Avg() 计算表达式的平均值 【例】求选修10课程的学生的平均成绩。 use student_score select avg(score) as '课程10平均成绩' from Score where CID='10' go 3)Count(列名) 计算表达式中非空值的数量 【例】求学生的总成绩 use student_score select count() as ‘学生总成绩’ from Member go 4)count(*) 计算表达式中所有值的数量 【例】求学生的总人数 use student_score select count(*) as ‘学生总人数’ from Member go 5)Min() 计算表达式的最小值 【例】求选修00课程的学生的最低分 use student_score select min(score) as '课程00的最低分' from Score where CID='00' go 6)Max() 计算表达式的最大值 【例】求选修11课程的学生的最高分 use student_score select max(score) as '课程11的最高分' from Score where CID='11' go 逻辑运算符:not or and 第八章 数据的完整性 1. 数据库完整性: 是指存储在数据库中数据的一致性和标准性 2. 数据完整性的类型 1)域(列)完整性:指定对列的一组有效值并决定是否允许有空值。也可以通 过在一列中限定数据类型,格式和可能值的范围来强制数据完整性。 2) 实体(行)完整性:要求表中所有的行具有唯一的标识符,例如主关键字值。 3) 参照完整性:确保维持主关键字和外部关键字的关系 3. 约束的概念: 确保在列中输入有效的值并维护表之间的关系。 4.约束的类型 完整性类型 约束类型 说明 域 DEFAULT 指定列的默认值 CHECK 指定列的允许值 NULL 指定是否允许NULL 实体 PRIMARY KEY 唯一标识每一行 UNIQUE 防止非主键重复 引用 FOREIGN KEY 定义值必须与此表的主键匹配的列 5.default功能:执行insert语句时将默认值自动插入约束所在的列 语法: alter table 表名 add constraint 约束名 default(默认值) for 字段名 go 【例】修改数据库student_score中的Menber表,将性别的默认值设置为’男’ use student_score alter table Member add constraint df_sex default('男') for Msex go 6. check功能: check(检查约束),每次执行Insert/update语句时,该约束要校验数据的合法性 语法:alter table 表名 add constraint 约束名 check(条件) go 【例】 修改数据库student_score中的Score表,使成绩限制在0~100之间 use student_score alter table Score add constraint ck_cj check(score>=0 and score<=100) go 7. primary key功能: primary key(主键约束),一个表中只有能一个pk,不能有空值,不能有 重复值;pk所在列的值能够唯一标识此行 ;能与fk关联, pk所在表为主表; 同时创建一个与PK约束名的簇索引。 语法: alter table 表名 add constraint 约束名 primary key(字段名) go 【例】修改数据库student_score中的kc表,将课程号设置为主键 use student_score alter table Course add constraint pk_kch primary key(CID) go 8. Unique功能: unique(唯一约束), 指定在同一列中的两行不能有相同的值,只能有一行为 空值,该约束自动创建一个与约束同名的非簇索引,在插入/修改时自动执行。 语法: alter table 表名 add constraint 约束名 unique (字段名) go 【例】修改数据库student_score中的Course表,将课程名设置为unique约束 use student_score alter table Course add constraint un_kcm unique(Cname) go 9. FOREIGN KEY功能: 参照完整性确保维持主关键字(在主表中)和外部关键字(在辅表中)的关系。 语法: alter table 表名1 add constraint 约束名 foreign key(字段名) references 表名2(字段名) go 【例】修改数据库student_score中的Score表,将课程号设置为外键 use student_score alter table Score add constraint fk_kch foreign key(CID) references Course(CID) go 10. 删除约束 语法: alter table 表名 drop constraint 约束名 【例】 删除 Menber表的fk_xh约束。 use student_score alter table Score drop constraint fk_xh go 第九章 视图 1.视图; 是从一个或多个表(或视图)导出的虚表。对于数据库用户来说,视图 似乎是一个真实的表,它具有一组命名的数据列和行。但是,与真实的表不 同,在视图中没有存储任何数据,仅仅是一种较简单的访问数据库里其他表 中数据的方式,因此称它为“虚表”。视图只能建立在当前正在使用的数据库中 2.视图的优点 聚焦数据,创建可以控制的环境,将需要的、常规的、适当的数据存储在视图中。 隐藏数据库的复杂性 简化对用户的许可管理 数据库拥有者只允许用户通过视图查询数据,保护了底层基本表的设计结构 提高性能 存储复杂查询、分割数据 输出数据给其他应用程序 3.视图创建是应注意的情况 只能在当前数据库中创建视图。 如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新 的基表或者视图。 如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同, 则必须为列定义名称。 当通过视图查询数据时,SQL Server要检查以确保语句中涉及的所有数据库 对象存在,而且数据修改语句不能违反数据完整性规则。 视图的名称必须遵循标识符的规则,且对每个用户必须是唯一的 2.语法; 1) create view 视图名 创建视图 【例】创建v1视图,包括作者为马德保的书籍ISBN,名称,及单价 use book go create view v1 as select isbn,bookname,unitprice from bookinfo where author='马德保' go 2) drop view 视图名 删除视图 【例】删除名为v2的视图 drop view v2 3) alter view 视图名 修改视图 【例】修改v1视图,包括出版社为工业出版社的书籍ISBN,作者及单价 use book go alter view v1 as select isbn,author,unitprice from bookinfo where publisher='工业出版社' go 4) exec sp_helptext 视图名 查看视图定义 【例】查看视图v1: exec sp_helptext v1 5) update 视图名 更新视图 【例】将v1视图中书名为“Windows Server 2008活动目录”的单价增加10。 use book go update v1 set unitprice=unitprice+10 where bookname='Windows Server 2008活动目录' go 第十章 索引 1. 建立索引目的:是希望提高SQL Server数据检索的速度 2.索引的分类 聚集索引 对表进行物理排序的索引是聚集索引 非聚集索引 唯一索引 3. 建立索引的原则 1)定义主键数据列一定要建立索引 2)定义外键数据列上一定建立索引 3)对于经常查询的数据列最好建立索引 4)对于需要在指定范围内快速或频繁查询的数据列 5)经常用在where子句中的数据列 6)对于那些查询中很少涉及的列,重复值较多的列不要建立索引 7)对于定义为text、image和bit数据类型的列不要建立索引 4.语法; 创建索引 Create unique 索引名 修改索引 alter unique 索引名 删除索引 drop unique 索引名 例如: 在xscj数据库中的xs表上创建名为ix_name的非聚集索引、唯一索引,该索引基于“姓名”列创建语法是 Create unique nonclustered Index ix_name on xs(姓名) 更新索引统计信息的命令是update statistics 对表进行数据操作可能会导致表碎片的产生,而碎片会导致读取额外页,从而造成数据查询性能的降低,可以使用(dbcc showcontig )语句扫描表 当表或视图上的聚集索引和非聚集索引页上存在碎片时,可以使用( dbcc indexdefrag )进行碎片整理 第十一章 存储过程 1. 存储过程的类型 系统存储过程 (名字以“sp_”为前缀,存储在master里) 本地存储过程 (存储在用户定义的数据库中) 扩展存储过程 (名字都以“xp_”为前缀,存储在master里) 临时存储过程 (名字以#开头) 2.语法: 1)Creat procedure 存储过程名 创建存储过程 【例】创建名为p_book_info的存储过程,该存储过程查询所有书籍的信息 use book go create procedure p_book_info as select * from bookinfo order by ISBN go 2)Exec procedure存储过程名 执行存储过程 【例】 p_order_detail可以通过以下方式执行 exec p_order_detail 3)Alter procedure 存储过程名 修改存储过程 【例】修改p_order_detail,返回订单id,用户姓名,用户地址,书籍单价, 书籍名称及 订单数量 alter procedure p_order_detail as select o.orderdetailid,u.username,u.addr,b.unitprice,b.bookname,o.quantity from orderdetail as o join userinfo as u on o.userid=u.userid join bookinfo as
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服