`
1140566087
  • 浏览: 548755 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18106
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:309907
Group-logo
J2ME 基础学习课程集
浏览量:18086
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17221
社区版块
存档分类
最新评论

2008 SQL Server 基础复习大纲

阅读更多
一、 数据库基础
1. 使用数据库的好处:
 数据按照固定的结构化的形式统一存放在一起,可以进行有效的检索和访问,并可以对数据集中进行控制;
 可以减少数据的冗余度,只包含较少的重复数据,能够有效的保持数据的一致性和完整性;
 实现数据共享和并发控制,数据可以被多个用户使用,可以同时存取数据库中的数据,可以通过不同程序设计语言来访问数据库,并在他们同时访问数据库的时候,互相之间不受影响;
 有助于维护数据的独立性,数据的存储形式和逻辑结构的变化尽可能不导致对应用程序的修改;
 加强对数据的保护,保证数据的完整性、有效性和一致性,对数据进行保密性控制以防止数据被非法使用,并提适当的数据恢复能力;
2. SQL:结构化查询语言,用来和数据库系统交互,以数据库能理解、分析和执行的形式来对数据做出处理;SQL具有国际标准;
3. 数据库技术的发展历史:
 数据库技术提出时间:20世纪60年代;
 时代背景:数据库技术没有提出时使用的是数据文件存放数据;该方式的不足:第一:不能对数据进行有效的统一管理;第二:不利于提供对数据的并发访问,无法充分发挥计算机系统的资源使用效率,也无法提供可靠的安全保证;
 数据库技术基本思想:解决用户数据共享的问题,实现对数据的集中统一管理,具有较高的数据独立性,并为数据提供各种保护措施;
 1964年,美国通用电气公司开发成功了世界上第一个数据库系统IDS(Integrated Data Store) – 奠定了网状数据库的基础;
 1969年,美国国际商用机器公司(IBM)推出第一个层次数据库系统IMS Information Management System ;
 关系型数据库的设计基础奠定:IBM 公司的E.F.Codd从1970年至1974年发表一系列的有关关系型模型的论文;
 世界范围内的主流应用:关系型数据库-例如:Oracle .SQL Server ,DB2,Sybase ,Informix;

4. 常见数据库系统简介:
 SQL Server:关系数据库;
a) 使用语言:T-SQL:不仅是一种查询语言,还是一种设计用于和关系数据库系统进行交互的编程语言;T-SQL 采用的是一种复杂的、功能全面的语法,能有效的实现数据访问;
b) 运行环境:Windows 平台;
 Oracle : 对象-关系型数据库,不是纯关系型数据库;
a) 使用语言:PL/SQL;
b) 运行环境:多种操作系统;
 MySQL : 关系型数据库
a) 运行环境:多平台
b) 特点:小型数据应用领域有很大的用户,结构简单,部署方便;


二、 第二章 使用SQL Server Management Studio管理数据库
1. 文件和文件组:事务日志文件不属于任何文件组;
 数据库存放数据方式:数据库存放数据,数据库以文件的形式存放在计算机硬盘中;
 数据库文件:存放数据库数据和数据库对象的文件,一个数据库可以有一个或多个数据库文件,一个数据库文件只属于一个数据库;
a) 主数据库文件:mdf,用来存储数据库的启动信息和部分或全部数据;一个数据库只能有一个主数据库文件;
b) 次数据库文件:ndf,用来存储主文件没有存储的其它数据;

 采用多个数据库文件存储数据的优点:
a) 数据库文件可以不断的扩充而不受操作系统文件大小的限制;
b) 可以将数据库文件存储在不同的硬盘中,这样可以同时对几个硬盘做数据存取,提高数据处理效率;

2. 数据完整性:指数据的精确性和可靠性;
 实体完整性:指表中行的完整性;要求表中所有行都有唯一的标识符,也称为主关键字;
 域完整性:表中的数据是合法的数据;
 引用完整性:某列的值必须与其他列的值匹配;

3. 约束:
 主键:满足实体完整性,设定主键约束;主键是指能够唯一标识表中一条记录的键;
 检查约束:为了保证域的完整性;
 外键:确保数据完整性,也能表现表之间的关系;
a) 特点:外键在定义外键的表(外键表)和外键引用的表(主键表)之间创建依赖关系,添加外键约束后,外键表的记录或者必须与主键表中被引用列的某个记录匹配,或者外键列的值为空;references 主键表(列)
b) 只有表的主键列或唯一列才能被其他表引用;
 默认约束:为表中的某列添加默认值;
 标识列:在没有主键的情况下使用标识列,由系统生成;
 列值是否允许为空:设置某列是否允许为空;
 唯一约束:用于指定一个或者多个列的组合具有唯一性,防止重复;


三、 第三章 查询分析器--数据库管理
1. SQL和T-SQL:
 SQL:数据库的指令,执行对应操作为程序提供数据;
a) 时间:1974年,Boyce和Chamberlin 提出;
b) 用途:SQL语言已成为关系型数据库的标准语言;

 T-SQL:Transact-SQL:标准SQL的加强版,除了基本的SQL命令之外还做了许多的补充,如:变量说明、流程控制、功能函数;
a) 用途:T-SQL 为.NET 语言;

2. 数据库管理:
 创建数据库:
a) 简写:create database 库名
 删除数据库:drop database 库名

3. 数据库表的管理:
 创建表:create table 表名(id int  primary key identity(1,1),name  varchar(10) not null)
 删除表:drop table 表名
 管理约束:
a) 主键约束:primary key constraint
b) 唯一约束:unique constraint
c) 检查约束:check constraint
d) 默认约束:default onstraint
e) 外键约束:foreign key constraint

 添加约束:
a) 语法:alter table 表名 add constraint 约束名  约束类型 具体约束说明
b) 例如:alter table t_user add constraint PK_ID primary key(ID)
c) 例如:alter table t_user add constraint UN_NAME unique (name)
d) 例如:alter table t_user add constraint DF_SEX default(1) for sex
e) 例如:alter table t_user add constraint CK_AGE check(age>10 and age<20)
f) 例如:alter table t_user add constraint FK_ID foreign key(ID) references student(ID)


四、 第四章 SQLServer 数据库管理
1. T-SQL 语言的组成:
 数据定义语言(DDL Data Definition Language) 
a) 用来建立数据库,数据库表和定义其列;
b) 如:create table , create database 等;
 数据操控语言(DML ,Data Manipulation Language )
a) 用途:用来操作数据库中数据的命令;
b) 例子:select ,updata ,insert,delete等
 数据控制语言(DCL, Data Control Language)
a) 用来控制数据库组件的存取许可,存取权限等命令;
b) 如:GRANT 、REVOKE等;
 流程控制语言 (FCL, Flow Control Language)
a) 用于设计应用程序的语句;
b) IF   WHILE   CASE 等;

 补充:T-SQL 还有变量说明,内嵌函数等命令;

2. T-SQL 条件表达式和逻辑运算符
 T-SQL 中的表达式是由:符号和运算符组成;
 简单表达式:可以是一个常量、变量、列或者函数组成,然后用逻辑运算符把两个或多个简单表达式连接成复杂表达式;
 条件表达式:
a) 比较运算符:= 、>、>=、<、<=、!= 等
b) 逻辑运算符:and 、or、 not
c) 算术运算符:+ 、-、 *、 /

3. 数据库操控语言(DML):
 Select  语句:select <列名> from 表名 where 条件表达式
 Insert  语句:insert into 表名[列名] values(值)
 Update 语句:update 表名 set 列1=更新值,列2=更新值 where 条件表达式
 Delete  语句:delete from 表名 where 条件表达式
 Truncate 语句:删除表中的记录
a) Truncate table 表名
 插入多行数据:select …into…语句
a) 该语句用于把查询的结果存放到一个新表中(不存在的表);
b) Into 后面直接跟上新建的表名称;
c) 注意:使用select ..into…向表中添加数据时,这个表必须是原数据库中不存在的新表,否则会出错;
d) 例如:select * into table2 from table1 where id=2  
 一次插入多行:insert into …select….语句:
a) 语法:insert into 表名[列名列表] select 语句
b) 例如:insert into table2(name,age) select name ,age from table1

五、 第五章 数据查询
1. 查询分为两大类:一类是用于数据检索的选择查询(select query),另一类是用于更新的行为查询(Action query);
2. 数据查询 概述:
 任何一种SQL语言中,SELECT 语句都是一个使用频率最高的查询语言;
 SQL Server 中:SELECT 语句是一个最基本和最重要的语句,功能是执行一个选择查询,查询的数据源可以是一个货多个表或视图;
 SELECT 用途:
a) 选择查询;
b) 对记录排序;
c) 对字段汇总计算;
d) 用检索到的记录创建新表;
 设置字段别名:显示选择查询的结果时,表头第一行显示的是各个输出字段的名称;
a) 例如:SELECT ID AS 学号,姓名=name,sex 性别 from t_user

 字段的计算:(用法与语言中一般字符拼接类似)
a) 例如:select name+”-”+sex as 姓名-性别 from t_user

 使用关键字限制记录行数:
a) All :返回全部记录
b) Distinct::过滤重复记录;select distinct id from t_user
c) Top :显示前面若干条记录:select top 4 * from t_user  //select top 40 percent * from t_user 获取40%条记录;

 对查询记录的选择与处理:
a) 对查询的结果进行筛选:
 使用where 语句: >   >=  =   <   <=  <>   !>   !<
 范围表达式:between….and…/// not between ….and ……select * from t_user id between 2 and 4
 列表运算符(判断表达式是否为列表中的指定项):in(项1,项2)    IN关键字可以选择与列表中的任意值匹配的行;                   not in(value1,value2,value3)
 空值判断符:判断表达式是否为空
i. Is null
ii. Is not null
 逻辑运算符:用于多条件的逻辑连接
i. Not
ii. And
iii. Or
 模式匹配符:判断值是否与指定的字符通配格式相符:
i. Like
ii. Not like
iii. LIKE 关键字搜索与指定模式匹配的字符串、日期或时间值;

 几种通配符的介绍:
通配符 含义
% 包含零或更多字符的任意字符串
_ 任何单个字符
[] 指定范围:[a-f] 或[abcdef] [1,2,3,5] 内的任何单个字符
[^] 不在指定的范围:[^a-f]内的任何单个字符


b) 对查询的结果排序:
 使用ORDER BY 子句:在order by 子句中可以使用一个或多个排序要求,优先级次序从左到右;使用asc 和desc 规定排序的方式:asc 升序 desc:降序; null 值被默认的为最小的值;
 例如:select * from t_User where name=’xiao’ order by age desc,id asc

c) 对查询结果计算:
 使用sum函数计算字段的累加和:sum函数用于统计数值型字段的综合,它只能用于数值型字段,而且null值将被忽略;              select sum(age) from t_user
 使用avg 函数计算字段的平均值:avg函数用于计算一个数值型字段的平均值,null值在计算过程中忽略;
 使用max 和 min 函数计算字段的最大值和最小值:
 使用count 函数用于统计字段中选取的项数或查询输出记录行数;

d) 对查询结果进行分组:
 使用group by 子句:将结果集内的记录分成若干个组来输出,每个组中记录的记录在指定的字段中具有相同的值;
i. 注意:当指定group by 时,字段列表中任一非聚合表达式内的所有字段都应包含在GROUP BY 列表中,或者group by  表达式必须与字段列表表达式完全匹配;
ii. 分组表达式是执行分组时所依据的一个表达式,通常是一个字段名。在字段列表中指定的字段别名不能作为分组表达式来使用;另外,text ,ntext ,image 以及bit数据类型的字段也不能在分组表达式中;
 使用having 子句:having 子句用于指定组或聚合的搜索条件,该子句通常与group by 子句一起使用,如果不使用group by 子句,则having 子句的行为与where 子句一样;不同的是,where 子句搜索条件在进行分组操作之前应用,而having 搜索条件在进行分组操作之后应用;
i. 特点:having 子句可以包含聚合函数;
ii. Having 子句可以引用字段表中出现的任意项;
iii. Having 是运算聚合后的数据进行条件筛选;
iv. 例如:统计平均成绩大于75分的科目

Select subject ,avg(score) from t_user group by subject having avg(score)>75
六、 第六章 联接查询
1. 内部联接查询:联接查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系型数据库的主要特征;
 内部联接基本语法:select 列 from 表1inner join 表2 on 条件表达式
 带条件的内部联接:select 列 from 表1inner join 表2 on 条件表达式 where 条件表达式
 Inner join—类似where子句:使用where实现内部联接查询:select 列 from 表1,表2 where 条件表达式
 更复杂的链接查询:select 字段列表 from 表1 inner join 表2 on 条件表达式1 inner join 表3 on 条件表达式2…..

2. 外部联接查询:分为左外部联接和右外部联接两种。以主表所在的方向区分外部联接,主表在join的左边,则称为左外部联接,反之..;
 外部联接语法:select 字段列表 from 表1 <left/right>[outer] join 表2 on 条件表达式

3. 使用union 和 union all 进行并集运算:对两组查询进行并集运算
 Union 是一个特殊的运算符,用于将两个或两个以上的查询产生一个结果集;;
 联合并不是真正的联接,作用更像是将一个查询返回的数据附加到另一个查询结果的末尾;join 将信息水平连接,而union 将数据垂直连接;
 使用union注意事项:
a) 两个查询select 必须有相同的列数;
b) 查询中对应列的数据类型必须隐士一致;
c) Union 查询默认返回选项为:distinct ,如需返回所有则使用:union all

4. 使用intersect 进行交集运算:将两个结果集中相同记录取出来形成一个新的集合;
5. 使用EXCEPT 进行减集运算:比较两个结果集,将except 关键字前的结果集除去交集部分而组成的新的集合;
 注意:减集的最后获得的结果与2个结果集放的顺序有密切的关系;
6. 提示:联接不仅可以在表之间进行,也可以使一个表同其自身进行联接,这种联接称为自联接,相应的查询称为自联接查询;
0
2
分享到:
评论

相关推荐

    22级sqlserver开发复习大纲.sql

    22级sqlserver开发复习大纲.sql

    SQL_SERVER复习提纲

    SQL_SERVER2005 复习提纲 考试必备 一、 数据库操作 表操作 视图操作 存储过程

    SQL Server复习

    Sql Server 2008复习资料《SQL Server数据库技术》2014总复习提纲

    使用SQL Server管理数据复习大纲.docx

    使用SQL Server管理数据复习大纲.docx

    高级软件架构师复习提纲

    //主-主行级同步模式 //使用SQL Server的主-主行级同步模式//主-从快照复制模式//捕捉事务细节模式 //主-从事务增量复制模式 60、 在收尾阶段应该进行哪些工作?//调查客户满意度 //准备收尾报告 //进行项目回顾 //...

    java复习20题

    在com.skeyedu.db 包中,连接sqlserver数据库,对数据库进行增删改查。写出类中全部代码 打印菱形的代码 package com.skeyedu.test; public class test02 { public static void main(String[] args) { for(int i=...

    数据挖掘的复习总结( APRIORI算法 ,OLAP操作)

    21SQL Server Analysis Services来建立一个数据仓库 22强关联规则一定是有趣的吗 ?看P172例题 23通过面向属性的归纳后得到的训练样本集合,要求用信息增益的办法判断其某些属性是否为强相关属性

    大三下学期期末复习.zip

    大三下学期期末复习: 卷 64G 的文件夹 PATH 列表 卷序列号为 364D-CC52 G:. │ ..txt │ ├─jsp课件 │ 1.ppt │ 2.ppt │ 3.ppt │ 4.ppt │ 5.ppt │ 6.ppt │ 7.ppt │ 8.ppt │ ├─matlab课件 │ 数字图像...

    软件测试资料汇总(个人经验汇总)

    测 试 基 础 软 件 质 量 测 试 方 法 V&V模型(测试过程) 单 元 测 试 集 成 测 试 系 统 测 试 测 试 覆 盖 率 测 试 用 例 举 例 ...SQL SERVER 测试工具总结 第一阶段英语单词总结 复习问题总结

Global site tag (gtag.js) - Google Analytics