设为首页 收藏本站
查看: 439|回复: 0

[经验分享] 2008 SQL Server 基础复习大纲

[复制链接]

尚未签到

发表于 2016-5-22 11:40:22 | 显示全部楼层 |阅读模式
一、数据库基础
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.提示:联接不仅可以在表之间进行,也可以使一个表同其自身进行联接,这种联接称为自联接,相应的查询称为自联接查询;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-220308-1-1.html 上篇帖子: 体验 Visual Studio 2008 和.NET 3.5 下篇帖子: 杂乱无章-1 2008-08-29
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表