3.文件组 

  默认情况下,表及其他对象要存储在一个文件中,默认情况下,该文件就是文件组的主要成员。

       用户可以自己创建自定义文件组。

系统数据库

1.master数据库

保存一种特殊的表(系统表)用于系统的总体控制。所有扩展的存储过程和系统存储过程都存储在master
数据库中。

2.model 数据库

可以基于该模型得到一个副本。也就是说,如要想要改变
新建标准数据库的样式,可以根据需要去更改model数据库。但是强烈建议不要修改。

3.msdb 数据库

是 SQL Agent (sql server 代理)进程存储任意系统任务的地方。

4.tempdb数据库

是服务器主要工作区域之一。在执行一个复杂或者大型的查询操作时,sql
server可能会需要创造一些中间表来完成,而这就是在 tempdb中进行的

只要需要临时存储数据,就很可能是把数据存储在tempdb 数据库中。

使用视图
Select * from myview
五.存储过程
5.1系统存储过程
常用系统存储过程
Sp_datadases 列出服务器上的所有数据库
Sp_helpdb 报告有关指定数据库或所有数据库的信息
Sp_renamedb 更改数据库的名称
Sp_tables 返回当前环境下可查询的对象的列表
Sp_columns 返回某个表列的信息
Sp_help 查看某个表的所有信息
Sq_helpconstraint 查看某个表的约束
Sq_helpindex 查看某个表的索引
Sq_stored_procedures 列出当前环境中的所有存储过程
Sp_password 添加或修改登录帐户的密码
Sp_helptext
显示默认值、未加密的存储过程、用户定义的存储过程、触发器或视图的实际文本
5.2自定义存储过程
Ø 不带参存储过程
Ø 带输入参数的存储过程
Ø 带输出参数的存储过程

 

  2.2触发器

  触发器是在操作表的时候(CRUD)自动执行一段逻辑代码。

事务日志

数据从数据库文件中读取,但实际上,任意数据库的更改起初
不进入数据库的更改,而是被不断的写入到事务日志中的。日志是数据进入磁盘的最先位置,然后被传入实际数据库

数据库文件和事务日志一起完成数据库功能。

 

1.3加约束.

 

1.事务日志

  任意数据库的更改起初不进入数据库本身,而是不断地被写入到事务日志。

  日志是数据进入磁盘上的最先位置。

关系数据库管理系统(RDBMS)

exec sp_grantlogin ‘jbtraining/s26301’
–windows用户为jbtraining/s26301,jbtraining 表示域
exec sp_addlogin ‘admin’,’0533131′–SQL登录帐户,帐户:
‘admin’,密码:0533131.

 

6.存储过程

  存储过程是SQL
Service编程功能的基础。存储过程通常是组成一个逻辑单元的Transact-SQL(SQL
Service 数据库查询语言)语句的有序集合。

     存储过程允许使用变量和参数,也可使用选择和循环结构。

 

数据库对象

 

索引  
是仅在特定表或视图架构内存在的对象。是一个或多个键的集合,每个键指向表中的一行。使用索引是快速查找数据库中实际信息的一种方法。

     分为2类
聚集索引—-聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。

            但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。

      
 非聚集索引—-非聚集索引与课本中的目录类似。数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。索引中的项目按索引键值的顺序存储,

             而表中的信息按另一种顺序存储  

 触发器   是在表操作时(插入、更新、删除等)自动执行的一段逻辑代码。

    理解:某个条件成立时,触发器里面所定义的语句就会被自动的执行。触发器不需要去调用,也不能调用。

 约束 
 是在任何业务中,数据通常必须符合特定限制或规则。例如,职员编号必须是
唯一的。数据库管理器提供了约束作为强制实施这种规则的方法。

 数据库关系图   是数据库设计器是一种可视化工具,它允许您对所连接的数据库进行设计和可视化处理。 

       设计数据库时,您可以使用数据库设计器创建、编辑或删除表、列、键、索引、关系和约束。 

       为使数据库可视化,您可创建一个或多个关系图,以显示数据库中的部分或全部表、列、键和关系。

 视图 
 视图是一个虚拟表,其内容由查询定义。视图在数据库中并不是以数据值存储集形式存在,除非是索引视图。视图通常用来集中、简化和自定义每个用户对数据库的不同认识。

 存储过程   是组成一个单元的T-SQL语句的有序集合。

 

复制代码 代码如下:

20.如何实现数据库的移动?

1)分离数据库;2)把数据文件、日志文件移动到其他路径上去;3)在另一台计算机上进行附加。

4.数据库关系图

  数据库关系图是数据库设计的可视表示。

SQL Server 配置管理器

主要分为两个部分 : 服务管理   网络配置

 

服务管理 :安装完整的SQL Server包括9个服务,其中7个服务可以使用sql
server配置管理器这一部分来管理(另外2个 是作为后台支持的服务)

     7个包括:

图片 1

 网络配置 :**

  提供的NetLib包括 4个:

 VIA (硬件存储器供应商可能支持的特殊虚拟接口)

图片 2

 

协议:为了让客户机与服务器进行连接,服务器必须
侦听协议,而客户机使用该协议试图与服务器通信,如果是TCP/IP
协议,则要在相同端口上。

TCP/IP
在这个连接来有介绍到 

 

SQL Server 集成服务

功能很强大,可以从各种数据源取得数据,并将数据输入到SQL
Server数据表。是一种数据转换服务,数据转换本质上是指按照某种逻辑规则处理数据。

 

Bulk Copy Program

老的帮助工具。是命令行程序,其主要目的是将导入导出SQL
Server的数据全部格式化。

 

SQL Server Profiler

实质上是实时跟踪工具,跟踪细节,具有很强的过滤功能。

sqlcmd

控制台应用程序。

PowerShell

它是一个非常健壮的脚本和服务器导航引擎。可以导航服务器上所有的对象。

 

复制代码 代码如下:

 

 2.1索引

  
索引是在特定表或视图框架内存在的对象。索引的功能类似于目录,可以加速信息的查找。

  索引分两类:

    群集索引—每个表只能有一个。群集索引按照其索引进行物理排序。列子:如果为百科全书做索引,群集索引就是页码。

    非群集索引—每个表可以有多个。非群集索引是指用于找到数据的其他一些值。列子:为百科全书做索引,非群集索引就是百科全书后面的关键字索引。

复制代码 代码如下:

8.你能向我简要叙述一下SQL Server 中使用的一些数据库对象吗?

答:表、索引、视图、存储过程、触发器、用户定义函数、数据库关系图、全文索引。

  2.3约束

       约束只能在表中,就是限制表中的数据满足某种条件。

If exists (select name from sysindexes where name=’myindex’)
Drop index 表名.myindex
Create nonclustered index myindex
on
student(id) with fillfactor=30
go

12.什么是触发器?SQL Server 有什么不同类型的触发器?

触发器是一种专用类型的存储过程,它被捆绑到SQL Server
的表格或者视图上。在SQL Server
2000里,有INSTEAD-OF和AFTER两种触发器。INSTEAD-OF触发器是替代数据操控语言(Data
Manipulation Language,DML)语句对表格执行语句的存储过程。例如,如果我有一个用于TableA的INSTEAD-OF-UPDATE触发器,同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。AFTER触发器要在DML语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。

2.表

  数据库中实际的数据都存在表中。表有行有列。

Create trigger trigger_name
On tablae_name
[with encryption]
For(insert,update,delete)
As
SQL 语句
Go

25.事务是什么? 

事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为
ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:
1)原子性
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
2)一致性
事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如
B 树索引或双向链表)都必须是正确的。
3)隔离性
由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。
4)持久性
事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。

 

学习SQL Server 2012编程入门经典(第4版)的笔记

Trigger_name:是触发器的名称。触发器名称必须符合标识符规则,并且在数据库中必须唯一,。可以选择是否指定触发器所有者名称。
Table_name:是在其上执行触发器的表或视图
With encryption:加密syscomments表中包含create
trigger语句文本的条目。使用with
encryption可防止将触发器作为SQLserver复制的部分发布.
Create trigger:必须是批处理中的第一条语句,并且只能应用到一个表中。
触发器只能在当前的数据库中创建,不过触发器可以引用当前数据库的外部对象。

17.什么是相关子查询?如何使用这些查询?

相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。

5.视图

  视图是一种虚拟表(不包含数据,其它与表类似)。

myindex为索引名,with fillfactor=30,指定填充因子为30%
使用索引
Select * from stumarks (myindex) where writtenExam between 60 and 90
Stumarks为表名,myindex为索引名,writtenexam为列名,between 60 and 90
指定查询出writtenexam字段60至90之间的值
建立索引的条件
Ø 该列用于频繁搜索
Ø 该列用于对数据进行排序
禁止使用索引的情况
Ø 列中仅包含几个不同的值
Ø 表中数据仅包含几行,为小型表创建索引可能不太划算,因为SQL
server在索引中搜索数据所花的时间比在表中逐行搜索所花的时间更长
4.3视图
视图的用处
Ø 筛选表中的行
Ø 防止未经许可的用户访问敏感数据
Ø 降低数据库的复杂程度
Ø 将多个物理数据表抽象为一个逻辑数据表
使用视图的好处
ü 对最终用户的好处
l
结果更容易理解。创建视图时,可以将列名改为有意义的名称,使用户更容易理解列所代表的内容。在视图中修改列名不会影响基表的列名
l
获得数据更容易。很多人对SQL不太了解,因此对他们来说创建对多个表的复杂查询很困难。因而可以通过创建视图来方便用户访问多个表中的数据。
ü 对开发人员的好处
l
限制数据检索更容易。开发人员有时需要隐藏某些行或列中的信息。通过使用视图,用户可以灵活地访问他们需要的数据,同时保证同一个表或其他表的其他数据库的安全性。要实现这一目标,可以在创建视图时将要对用户保密码的列排除在外。
l
维护应用程序更方便。调试视图比调试查询更容易。跟踪视图中过程的各个步骤中的错误更为容易,这是因为所有的步骤都是视图的组成部分。
创建视图

21.默认的系统数据库有哪些?

1)master数据库(主);2)tempdb数据库(临时);3)model
数据库(模板);4)msdb数据库(计划任务);

复制代码 代码如下:

16.使用存储过程的经验。

返回参数总是由存储过程返回,它用来表示存储过程是成功还是失败。返回参数总是INT数据类型。

OUTPUT参数明确要求由开发人员来指定,它可以返回其他类型的数据,例如字符型和数值型的值。(可以用作输出参数的数据类型是有一些限制的。)您可以在一个存储过程里使用多个OUTPUT参数,而您只能够使用一个返回参数。

Declare @errorsum int
Set @errorsum=0
Update ……………………….
Set @errorsum=@errorsum+@@error
Update………………………..
Set @errorsum=@errorsum+@@error
If @errorsum<>0
Begin
Rollback transaction–回滚事务
End
Else
Begin
Commit transaction–提交事务
End
Go

22.默认创建一个数据库,会生成哪些文件?

1)主文件(.mdf),2)日志文件(.ldf),无次要文件(.ndf)。

If exists (select * from sysobjects where name-‘myview’)
Drop view myview
Go
Create view myview
As
Select 姓名=stuName,学员=sutInfo from stuInfo left join stuMarks
on stuInfo.stuNO=stuMarks.stuNo
Go

24.什么是索引覆盖(Index Covering)查询? 

索引覆盖(Index Covering)查询是指数据可以只通过索引获取,而不用接触表。

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注