日志是数据进入磁盘上的最先位置,新葡京32450网址:关系数据库管理系统(RDBMS)

发布时间:2019-10-14  栏目:数据  评论:0 Comments

  2.2触发器

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

系统数据库

1.master数据库

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

2.model 数据库

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

3.msdb 数据库

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

4.tempdb数据库

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

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

1.触发器的作用?

答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。

 

use master
go
if exists (select * from sysdatabases where
name=’MyDatabase’)—判断master数据库sysdatagbases表中是否存在将要创建的数据库名
drop database MyDatabase—如果sysdatabases表中存在该数据库名,则将它删除
go
exec xp_cmdshell ‘md
D:/MyDatabases’—利用存储过程创建一个文件夹用于存储数据物理文件(数据文件,日志文件),DOS命令(mkdir=md)
go
create database MyDatabase—创建数据库
on
(
name=’MyDatabase_data’,–指定逻辑文件名
filename=’D:/MyDatabases/MyDatabase_data.mdf’,–指定物理文件名
size=5mb,–初始大小
maxsize=50mb,–指定物理文件最大容量,可选
filegrowth=20%–增长量
)
log on
(
name=’MyDatabase_log’,–指定逻辑日志文件名
filename=’D:/MyDatabases/MyDatabase_log.ldf’,–指定日志物理文件名
size=5mb,–初始大小
maxsize=50mb,–指定日志物理文件最大容量,可选
filegrowth=20%–增长量
)
go
use MyDatabase
go

表结构的修改

在xscj表中增加一个新列—学分。

Alter  table  xscj Add 学分  tinyint  null

在xscj表中删除名为“学分”的列。

ALTER TABLE xscj DROP COLUMN 学分

将xsda表中“姓名”列的长度由原来的8改为10

ALTER TABLE xsda ALTER COLUMN 姓名 CHAR (10)

将xsda表中名为“出生日期”列的数据类型由原来的smalldatatime改为datatime

ALTER TABLE xsda ALTER COLUMN 出生日期 datatime

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

事务日志

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

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

 

 

一. 建库,建表,加约束.
1.1建库

(1) master数据库:

master数据库是记录了SQL
Server系统的所有系统信息的数据库。这包括实例范围的元数据、端点、链接服务器和系统配置设置。master数据库还记录了其他数据库是否存在以及这些数据库文件的位置。(记录所有系统级的信息)

3.文件组 

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

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

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

14.对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑?

 对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。

Create proc procedureName
@number int output,
@name char(20)
As
SQL 语句
Set @number=1000
Go
调用语法
Declare @dd int
Exec procedureName @dd output,’lyh’

数据文件(类型)

主数据文件扩展名为.mdf,数据库只能有一个主数据文件。数据库还可以包括零个或对个次数据文件,扩展名为.ndf

5.视图

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

SQL Server 配置管理器

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

 

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

     7个包括:

新葡京32450网址 1

 网络配置 :**

  提供的NetLib包括 4个:

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

新葡京32450网址 2

 

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

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

 

SQL Server 集成服务

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

 

Bulk Copy Program

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

 

SQL Server Profiler

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

sqlcmd

控制台应用程序。

PowerShell

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

 

 

5.2.1不带参数的存储过程

(2)model数据库:

Model数据库是所有用户数据库和tempdb数据库的模板数据库。当创建数据库时,系统将model数据库的内容复制到新建的数据库中作为新建数据库的基础,因此,新建的数据库都与model数据库的内容基本相同。(模板数据库)

  2.3约束

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

数据库对象

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

1.2建表.

修改数据

UPDATE 表名称
SET 列名称 = 新值
WHERE
    列名称 = 某值

 2.1索引

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

  索引分两类:

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

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

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

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

5.2.3带输出参数的存储过程

增加数据

INSERT INTO table_name (列1, 列2)
VALUES
    (值1, 值2)

2.表

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

25.事务是什么? 

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

 

Exec procedureName

函数

 1系统内置函数
常用的。函数名称、作用、结果、计算。
(1) 数学函数
作用:数学函数用于对数字表达式进行数学运算并返回运算结果
Abs函数:返回给定数字表达式的绝对值
Round函数:返回数字表达式并四舍五入为指定的长度或精度
Rand函数:返回0~1的随机float值
(2)字符串函数
作用:字符串函数用于对字符串进行操作,并返回一个字符串或数字值。
Ascll函数:返回字符表达式最左端字符的ascll码值
Char函数:将ascll码转换为字符。
Left函数:返回从字符串左边开始指定个数的字符
Right函数:返回字符串从右边开始指定个数的字符
Substring函数:返回expression中指定的部分函数
Replace函数:用第三个字符串表达式替换第一个字符串表达式中包含的所有第二个字符串表达式,并返回替换后的表达式
Str函数:将数字数据转换为字符数据
Len函数:返回给定字符串表达式string_expression的字符个数,不计算尾部空格
(3)日期和时间函数
Getdate函数:返回当前系统日期和时间
Day函数:返回指定日期的天数
Month函数:返回指定日期的月份
Year函数:返回指定日期的年份
(5) 聚合函数
作用:聚合函数用于计算表中的数据,返回单个计算结果。
Max、min,sum,avg,count
(6)系统函数
作用:系统函数用于对SQL Server中的值,对象和设置进行操作并返回有关信息
Case函数:
Cast函数:转换数据类型
Convert函数:将expression表达式的类型转换为data_type所指定的类型
 2用户定义函数的创建及使用
创建、调用。
标量函数、表函数。(填空)
(1)
标量函数:标量函数返回一个确定类型的标量值,函数体语句定义在begin…end语句内。可在select语句中调用用户定义标量函数,也可以利用execute语句调用用户定义标量函数。
创建:create function average(@num char(10))

RETURNS INT AS
BEGIN

DECLARE @avg INT SELECT
    @avg = avg(成绩)
FROM
    xscj
WHERE
    学号 =@num RETURN @aver
END

调用:

DECLARE @num1 CHAR (6)
DECLARE @aver1 INT SELECT
    @num = ’200801’ SELECT
        @aver1 = dbo.average (@num1) SELECT
            @aver1 AS ‘学号为200801的学生的平均成绩’

(2)
内嵌表值函数返回可更新表,没有由begin…end语句括起来的函数体。内嵌表值函数可用于实现参数化的视图,内嵌表值函数只能通过select语句调用
定义:

CREATE FUNCTION fn_view1 (@para VARCHAR(10)) RETURNS TABLE AS RETURN (
    SELECT
        学号,姓名,系名
    FROM
        xs.dbo.xsda
    WHERE
        系名 =@para
)

调用:

SELECT
    *
FROM
    fn_view1 (‘信息’)

游标

 1游标的创建及使用
游标概念。
游标是可以每次处理结果集中的一行或一部分行的结果集扩展。
游标可以定位在结果集的特定行。从结果集的当前位置检索一行或多行。支持对结果集中当前位置的行进行数据修改。为由其他用户对显示在结果集中数据库数据所做的更改提供不同级别的可见性支持。提供脚本、存储过程和触发器中使用的访问结果集中的数据的T-SQL语句。
使用步骤、各步骤动词。注意事项。
(1) 声明游标:sql declare cursor
(2) 打开游标:open。声明游标后,要使用游标从中提取数据,就必须打开游标
(3) 数据处理:读取数据(fetch)、修改数据(update)、删除数据(delete)。
(4)
关闭游标:close。游标关闭后,其定义仍在,需要时可用open语句打开它再使用
(5)
释放游标:deallocate。释放游标之后不可以用open语句重新打开,必须使用declare语句重建游标
相关全局变量。
@@CURSOR_ROWS:打开游标后,可以通过全局变量@@CURSOR_ROWS来获取游标中的记录行数。

存储过程

 1存储过程
概念、优点、特点。
概念:存储过程就是在SQL
Server数据库中存放的查询,是存储在服务器中的一组预编译过的T_SQL语句,而不是在客户机上的前端代码中存放的查询。
优点:(1)存储过程在服务器端运行,执行速度快(2)简化数据库管理(3)提供安全机制,增强数据库安全性(4)减少网络流量
缺点:(1)增加了数据库服务器的负担(2)难以移植(3)业务逻辑大的时候,封装性不够,难调试难以维护
创建及使用。
(填空)
存储过程又分为系统存储过程(sp_)、扩展存储过程(xp_)、用户自定义存储过程。
系统存储过程主要存储在master数据库中并以sp_为前缀,在任何数据库中都可以调用,在调用时不必子啊存储过程前加上数据库名。
扩展存储过程提供从SQL
Server到外部程序的接口,仪表进行各种维护工作,并以xp_为前缀。
用户自定义存储过程由用户自己根据需要创建,是用来完成某项特定任务的存储过程。
注意事项:(1)存储过程只能定义在当前数据库中(2)存储过程的名称必须遵循标识符的命名规则(3)不要创建任何使用sp_,xp_作为前缀的存储过程
创建:create procedure ***
执行:execute
删除:drop

触发器

 1触发器
概念,作用。
概念:触发器作为一个对象存储在数据库中,是一类特殊的存储过程,触发器是定义在特定的表或视图上的。触发器又分为:DML触发器和DDL触发器
作用:触发器可以保证数据的有效性和完整性
创建及使用(激活)。
(填空)
触发器与表(视图)是紧密相关的。在创建触发器时,需要指定触发器的名称、包含触发器的表、引发触发器的条件以及触发器启动后要执行的语句等。触发器只能在当前的数据库中创建。不能在视图上定义alter触发器。Create
trigger ***
激活:begin ……….end

数据导入与导出

源及目标的常用类型、目标是否事先存在?
 1数据导入
 2数据导出

数据库安全性控制

三级安全机制:由外到内。
登录名(登录账号)与用户账号的区别。
 1登录账号:创建与使用
 2数据库用户:创建与使用
 3对象权限:授予与撤销
相关动词

数据库操作:

 1脱机/联机
 2分离/附加
相关存储过程
 3备份/还原
相关动词
9个
动词
create、数据库、表、对象等的创建
alter、数据库、表、对象等的修改
drop、数据库、表、对象等的删除
select、查询
insert、数据插入
update、数据的修改
delete、数据的删除
grant、revoke。
易混词、同义词

题型:(1)选择(2)填空(存储、函数…….)(3)判断(4)select 53(5)问答 55

文件
主数据库mdf
次数据库ndf
事务日志ldf

对象
数据库关系图

视图
同义词
可编程性(存储过程、函数、数据库触发器、规则、默认值)
Service Broker
存储和安全性

系统数据库
master 数据库是记录了SQL Server系统的所有系统级信息的数据库。
model 数据库是所有用户数据库和tempdb数据库的模板数据库。
msdb 数据库来存储警报信息以及计划信息、备份和恢复相关信息。
resource 数据库是只读数据库,它包含了SQL Server 2008中的所有系统对象。
tempdb数据库是连接到 SQL Server
实例的所有用户都可用的全局资源,它保存所有临时表和临时存储过程。另外,它还用来满足所有其他临时存储要求,例如存储
SQL Server生成的工作表。
tempdb 每次启动 SQL Server 时,都要重新创建
tempdb,系统启动时,该数据库总是空的。在断开连接时会自动删除临时表和存储过程,并且在系统关闭后没有活动连接。

事物之间的联系
(一对一)联系
(一对多)联系
(多对多)联系
反映了(实体集)之间的联系

支持数据库中数据的逻辑独立性和物理独立性的机制是(三级模式、二极映射)

数据库的三级模式结构
外模式有(任意多个)
模式和内模式只有(1个)

三级体系结构
用户数据逻辑结构、数据的物理存储结构和整体逻辑结构。三级模式之间的两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性

数据库系统
是采用了数据库技术的计算机系统,由数据库、数据库管理系统、应用系统和数据库管理员组成

常见的结构数据模型
层次模型、网状模型、关系模型

SQl语言
关系数据库语言, 非过程化语言

SQL语言具有的功能
数据定义、数据操纵、数据控制、数据查询

关系模型
用二维表结构表示实体型,外键实现实体之间联系的模型

存储过程是一组予编译的SQL语句
优点:
1.允许模块化程序设计
2.允许更快执行
3.减少网络流量
4.更好的安全机制

触发器
优点:
以事件方式来处理. 当数据发生变化的时候, 自动作处理。
缺点:
当数据库之间 导出导入的时候, 可能会引起不必要的触发逻辑。

索引:分为聚集索引和非聚集索引;唯一索引;
    优点:大大提高了数据库的检索速度; 
    缺点:增加了系统开销; 
聚集索引:CLUSTERED
    一个表只能建立一个聚集索引;
    聚集索引适用于大量非重复值的列/经常被连续访问的列/经常使用连接或 GROUP BY 子句查询访问的列。
    聚集索引不适用于:频繁更改的列
非聚集索引:NONCLUSTERED
    一个表能建立多个非聚集索引

唯一索引:
    不允许表中任何两行具有相同索引值。
    主键索引是唯一索引的特定类型 在为表定义主键时将自动创建主键索引。
    Create index表名/索引名:创建索引;
    Alter index:修改索引;
    EXEC:查看索引信息
    Drop index 表名/索引名:删除索引

数据完整性:域完整性(又称为列完整性);实体完整性(行的完整性);参照完整性;

触发器的类型:DML触发器,DDL触发器

DLL
数据库模式定义语言,用于描述数据库中要存储的现实世界实体的语言
关键字 唯一标识实体的属性集

go
批处理结束的标志。

ORDER BY
DESC:降序
ASC:升序

Primary key: 主键

Unique:唯一值

Default:默认值

Distinct:用于消除取值重复行

Like:模糊查询

In:在什么什么里面

TOP n子句:在查询结果中输出前n条记录

TOP n PERCENT 子句:在查询结果中输出前n%条记录

create index indexname
CLUSTERED: 建立聚集索引。
NONCLUSTERED: 建立非聚集索引。

DB 数据库
DBS 数据库系统
DBMS 数据库管理系统

CREATE DATABASE 建立数据库
CREATE TABLE 建立表
DROP TABLE 删除表
DROP INDEX 撤消索引
CREATE VIEW 建立视图

1.事务日志

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

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

6.什么是事务?什么是锁?

答:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。

锁:在所以的DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。

复制代码 代码如下:

删除数据

DELETE
FROM
    表名称
WHERE
    列名称 = 值

6.存储过程

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

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

 

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语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。

Create proc procedureName
As
SQL 语句
Go

(3)msdb数据库:

系统使用msdb数据库来存储警报信息以及计划信息,并备份和恢复相关信息。(记录了有关SQL
Server Agent代理服务的信息)

4.数据库关系图

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

2.什么是存储过程?用什么来调用?

答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。

 

使用视图
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自定义存储过程
Ø 不带参存储过程
Ø 带输入参数的存储过程
Ø 带输出参数的存储过程

打开数据库

sql use database

留下评论

网站地图xml地图