SQL SERVER学习笔记(二)数据库管理

第二部分:数据库管理

单词记忆:transact:处理

          create:创建

          execute:执行、完成

           

一、     SQL Server的特性

1、 安装简便:为了便于安装、使用和管理,SQL Server2000提供了一组管理和开发工具。

2、 伸缩性和有效性

3、 支持客户/服务器模式(C/S)

4、 多协议兼容性

5、 数据仓库

6、 遵从ANSI/ISO SQL-92标准:Micrsoft 还对其进行了语言扩展并命名为:“Transact-SQL”

7、 支持数据复制

8、 全文检索

9、 联机丛书

 

二、T-SQL简介

    Transact-SQL(或称为T-SQL)是Micosoft的一个程序扩展集合。T-SQL为SQL增加了些功能,包括事务控制、异常错误处理和行处理。

Transact- SQL允许用户在Transact- SQL对象中声明和使用局部变量和常量,并且有数据类型。

 

三、SQL Server存储体系构成

Ø  数据文件

后缀为.MDF 文件

主数据文件,一个数据库只有一个 MDF文件,存放数据库中各种数据实体的定义(数据字典),也可以存放其他数据,但要注意控制其大小。

 

Ø  数据文件

后缀为.NDF文件

    –扩展数据文件,一个数据库可以有多个NDF文件,存放各种数据

1.   数据规划(组)

2.   数据扩展

3.   文件仿真阵列

 

Ø  日志文件

后缀为.LDF文件

     –日志文件,一个数据库可以有多个LDF文件,存放联机重做日志数据

  注意:如果日志文件已经填满,SQL Server将自动停止运行并等待人工干预,所以要经常监控日志的情况保证系统的稳定运行。

 

Ø  文件组

FileGroup

将MDF和NDF文件在逻辑上进行分组,进行表规划时候,只需要指定表所需存放的组,就可以实现数据分离。

注意:系统默认的组为“PRIMARY”,不指定数据文件所隶属的组,则数据文件自动划分到“PRIMARY”组中;创建的表不指定所在的组,系统也自动分配该表到“PRIMARY”组中。

四、数据库的创建

    示例:

Create Database 数据库名

On

 (Name=‘逻辑名‘,

  FileName=‘物理文件完全路径(*.mdf)’,

  Size=n,

  MaxSize=n,

  FileGrowth=n)

FileGroup 组名字

  (…….)

Log On

  (Name=‘逻辑名‘,

  FileName=‘物理文件完全路径(*.ldf)’,

  Size=n,

  MaxSize=n,

  FileGroup=n)

 

五、创建过程中需要注意的问题:

Ø  只能为一个数据库创建一个MDF文件;

Ø  如果需要进行文件分组,只需要在文件前加上FILEGROUP组名就可以了,但PRIMARY组中至少必须包含一个文件;

Ø  如果Size和Max Size不指定单位,系统默认用“M”为单位;

Ø  如果不指定数据库文件的大小,系统默认为“1M”;

Ø  如果创建时没有使用Log On字句,系统自动创建一个LDF文件,大小为MDF文件的1/4;

Ø  文件的增长率FILEGROWTH应该根据实际需要设置大些,以保证系统不会频繁扩容。

 

六、数据库性能选项配置

Ø  选项设置

    Exec Sp_Dboption ‘数据库名’,‘选项‘,’值’

 如:Exec Sp_Dboption ‘Pubs’,’AutoClose’,’False’

Ø  查询所有可用选项

    Exec Sp_Dboption

Ø  查询数据库已经开启的选项

    Exec Sp_Dboption ‘数据库名’

 如:Exec Sp_Dboption ‘Pubs’

 

七、数据库的调整

1、设置数据库只读取

  Exec Sp_dboption ‘Pubs’,’Read_Only’,’True’

2、设置数据库离线

  Exec Sp_dboption ‘Pubs’,’Offline’,’True’

3、数据库更名(Sp_RenameDb)

  Exec Sp_dboption ‘Pubs’,’Single User’,’True’

  Exec Sp_RenameDb ‘Pubs’,’Pubs_1’

  Exec Sp_dboption ‘Pubs_1’,’Single User’,’False’

 

八、数据库结构调整

1、调整数据库结构

  Alter Database 数据库名

    Add File (文件参数) To FileGroup 文件组

    Add Log File (文件参数)

    Remove File ‘逻辑数据库文件名字’

    Remove FileGroup ‘组名’

    Add FileGroup ‘组名’

    Modify File (文件参数)

注意:

 1、ADD FILE时如果不指定“TO FileGroup 文件组”,系统自动将该文件归到“Primary”组中;

 2、REMOVE FILEGROUP时,如果组中有数据,将无法删除。

 

九、数据规划的实现

表的数据规划的实现

  Create Table Student

  (Stu_Code Varchar(10) Primary Key

   On G_Index,

   Stu_Name Varchar(10) Not Null,

   Stu_Sex Varchar(1) Not Null,

   Stu_Pic Image)

   On G_Normal

   TextImage_On G_Big

规化重点:

 1、将大数据(G_Big)和常规数据(G_Normal)分离;

 2、将索引数据(G_Index)和表数据分离;

 

 

第二部分习题样例

一、创建本班数据库(T607),根据规划原则将四大类数据分组,每组一个数据文件5-100M,按30%增长,日志文件2个,5-100M,按50%增长。

create database T607

on primary

(

    name = 'T607_mdat',

    filename = 'd:" T607_M.mdf ',

    size = 5,

    maxsize = 100,

    filegrowth = 30%

),

filegroup G_Normal

(

    name = 'T607_n1dat',

    filename = 'd:" T607_N1.ndf ',

    size = 5,

    maxsize = 100,

    filegrowth = 30%

),

filegroup G_Change

(

    name = 'T607_n2dat',

    filename = 'd:" T607_N2.ndf ',

    size = 5,

    maxsize = 100,

    filegrowth = 30%

),

filegroup G_Index

(

    name = 'T607_n3dat',

    filename = 'd:" T607_N3.ndf ',

    size = 5,

    maxsize = 100,

    filegrowth = 30%

),

filegroup G_Big

(

    name = 'T607_n4dat',

    filename = 'd:" T607_N4.ndf ',

    size = 5,

    maxsize = 100,

    filegrowth = 30%

)

log on

(

    name = 'T607_log1',

    filename = 'd:" T607_L1.ldf ',

    size = 5,

    maxsize = 100,

    filegrowth = 50%

),

(

    name = 'T607_log2',

    filename = 'd:" T607_L2.ldf ',

    size = 5,

    maxsize = 100,

    filegrowth = 50%

)

 

二、数据库状态属性修改练习

1、 将创建好的数据库设置成自动“文件自动关闭”和自动“文件自动收缩”方式

文件自动关闭:exec Sp_dboption ' T607',' autoclose ',' true '

文件自动收缩:exec Sp_dboption ' T607',' autoshrink ',' true '

 

2、 将创建好的数据库设置成“只读方式”

exec Sp_dboption ' T607',' read only ',' true '

 

3、 将创建好的数据库设置成“离线状态”后恢复

exec sp_dboption ' T607',' offline ',' true '

 

4、 将创建好的数据库名称改名为“T607-2006”

exec sp_dboption ' T607',' single user ',' true '

exec sp_renameDb ' T607',' T607_2006 '

exec sp_dboption ' T607-2006 ',' single user ',' false '

注意事项首先必须把只读属性取消

 

 

三、修改数据库文件属性

将数据库中的一个数据文件属性修改为10—无限大,增长比率为40%;

alter database [T607_2006]

modify file

(

    name = T607_n1dat,

    size = 10,

    maxsize = unlimited,

    filegrowth = 40%

)

注意事项:修改时,请勿指定物理名称。

 

四、收缩数据库文件

将数据库中的一个文件收缩到3M;

dbcc shrinkfile(‘ T607_n2dat ‘, 3)

注意事项:必须先use T607_2006才能收缩

 

五、组的创建和维护

在数据库中创建一个新的组“G_TEST”

alter database [T607_2006]

add filegroup G_TEST

 

六、组中增加一个文件

在数据库中增加一个新的文件“T607_TEST.ndf”,并自动加入到“G_TEST”组中;

alter database [T607-2006]

add file

(

    name = 'T607_TEST',

    filename = 'd:" T607_TEST.ndf'

)

to filegroup G_ TEST

 

七、向数据库中增加日志文件

在数据库中增加一个新的日志文件“T607_LOG_TEST”文件;

alter database [T607-2006]

add log file

(

    name = 'T607_LOG_TEST',

    filename = 'd:" T607_LOG_TEST.log'

)

 

八、数据库的规划方式

创建一个学生资料表,包含字段:

学生编码、

学生名称不允许重复

学生性别、

学生年龄 15—30、

学生生日、

学生地址、

学生国籍、

学生备注大量文本、

学生照片 JPG

根据表规划及优化原则,创建该表:

create table 学生

(

    学生编码 smallint,

    学生名称 varchar(10) unique,

    学生性别 nvarchar(1),

    学生年龄 tinyint check(学生年龄>=15 and 学生年龄<=30),

    学生生日 datetime,

    学生地址 nvarchar(20),

    学生国籍 varchar(10),

    学生备注 text,

    学生照片 image

)

on group1

textimage_on group2

 

九、删除数据库

删除本练习中创建的数据库

    drop database T607-2006

 

本文转自温景良博客园博客,原文链接:http://www.cnblogs.com/wenjl520/archive/2008/11/01/1324393.html,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL——快速定位相关的外键表

转载于:https://www.cnblogs.com/mingle/p/4506422.html

Linux安装glibc(升级版本)

2019独角兽企业重金招聘Python工程师标准>>> glibc下载地址&#xff1a;http://ftp.gnu.org/gnu/glibc/ 这里下载 glibc-2.15&#xff1a; http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz glibc-ports-2.15&#xff1a; http://ftp.gnu.org/gnu/glibc/glibc-ports…

定义列表的特点html,HTML的列表表格表单知识点

无序列表格式 有序列表格式第一项 …

Javascript 获取url参数,hash值 ,cookie

/*** 获取请求参数* param key* returns {*}*/ function getRequestParameter(key){var params getRequestParameters();return params[key]; }/*** 获取请求参数列表* returns {{}}*/ function getRequestParameters(){var arr (location.search || "").replace(/…

C# 中使用 ThoughtWorks.QRCode.dll 生成指定尺寸和边框宽度的二维码

本文介绍在 C# 中使用 ThoughtWorks.QRCode.dll 生成指定尺寸和边框宽度的二维码。网上文章大多只是简单介绍内置参数的设置&#xff0c;根据我的使用目的&#xff0c;增加了自定义目标二维码图片尺寸和白边边框。有需要的朋友们可以试一下&#xff0c;如有bug欢迎指正。 首先&…

html设置百度协议,网站HTML结构SEO要求说明(含移动站)

网页结构一、网页中主体结构标签一一对应。网页头部区域网页底部区域网页边框区域网页导航区域网页章节、页眉、页脚详情页文章区域详情页作者信息详情页中文章的发布日期列表页中文章列表区域二、其他说明1、首页head中标注Meta标签协议&#xff0c;标识对应的网页浏览&#x…

【Fanvas技术解密】HTML5 canvas实现脏区重绘

先说明一下&#xff0c;fanvas是笔者在企鹅公司开发的&#xff0c;即将开源的flash转canvas工具。 脏区重绘(dirty rectangle)并不是一门新鲜的技术了&#xff0c;这在最早2D游戏诞生的时候就已经存在。 复杂的术语或概念就不多说&#xff0c;简单说&#xff0c;脏区重绘就是每…

javascript 学习教程

1&#xff0c;JavaScript 是一种轻量级的编程语言&#xff0c;是可插入 HTML 页面的编程代码。 2,以<script>标签开始&#xff0c;以</script>标签结束。 3,引用放在外部文件的扩展名为.js的脚本文件 <script src"myScript.js"></script> 4&…

我国非按劳分配收入

我国现阶段非按劳分配收入探讨 我国社会主义初级阶段的个人消费品分配&#xff0c;是通过多种分配方式实现的。除了占主体地位的按劳分配方式之外&#xff0c;还存在许多种类的非按劳分配方式。因此&#xff0c;在我国城乡居民个人收入总额中&#xff0c;除了一部分按劳分配收入…

html调用js里面的函数,html如何调用js函数

html调用js函数的方法&#xff1a;1、用控件本身进行调用&#xff1b;2、通过javascript中的时间控件定时执行&#xff1b;3、通过getElementById调用&#xff1b;4、通过document.getElementsByName调用。本文操作环境&#xff1a;Windows7系统、html5&&javascript1.8…

大部分人都会做错的经典JS闭包面试题

2019独角兽企业重金招聘Python工程师标准>>> 由工作中演变而来的面试题 JS中有几种函数 创建函数的几种方式 三个fun函数的关系是什么&#xff1f; 函数作用域链的问题 到底在调用哪个函数&#xff1f; 后话 转载于:https://my.oschina.net/u/3687565/blog/1549046

STM32片上Flash内存映射、页面大小、寄存器映射

转自&#xff1a;http://blog.chinaunix.net/uid-20617446-id-3847242.html 一、怎么看Flash大小 1.1 通过型号 型号会印在MCU表面&#xff0c;可以通过观察获得&#xff0c;我的是STM32F103RBT6(以下分析基于这个型号)&#xff0c;对照下图的STM32产品命名&#xff0c;可知STM…

如何设计实现一个地址反解析服务?

http://www.cnblogs.com/LBSer/p/4507829.html 一、什么是地址反解析 我们都知道手机定位服务&#xff0c;其本质是汇总各种信号得出一个经纬度坐标&#xff08;x,y&#xff09;&#xff08;具体定位原理可以参考&#xff1a;LBS定位技术、基于朴素贝叶斯的定位算法&#xff09…

html5 hr代码缩减比例,HTML HR size用法及代码示例

DOM HR size属性用于设置或返回元素的size属性的vlue。用法:它返回HR大小属性。hrobject.size用于设置HR大小属性。hrobject.size"value"属性值&#xff1a;value:它包含指定HR元素高度的像素值。返回值&#xff1a;它返回一个字符串值&#xff0c;该值代表HR元素的高…

【转】C++标准转换运算符static_cast

static_cast<new_type> (expression) 虽然const_cast是用来去除变量的const限定&#xff0c;但是static_cast却不是用来去除变量的static引用。其实这是很容易理解的&#xff0c;static决定的是一个变量的作用域和生命周期&#xff0c;比如&#xff1a;在一个文件中将变量…

MySQL Binlog Mixed模式记录成Row格式

背景&#xff1a; 一个简单的主从结构&#xff0c;主的binlog format是Mixed模式&#xff0c;在执行一条简单的导入语句时&#xff0c;通过mysqlbinlog导出发现记录的Binlog全部变成了Row的格式&#xff08;明明设置的是Mixed&#xff09;&#xff0c;现在就说说在什么情况下Bi…

update语句中使用子查询

55. 更改 108 员工的信息: 使其工资变为所在部门中的最高工资, job 变为公司中平均工资最低的 job 1). 搭建骨架 update employees set salary (), job_id () where employee_id 108; 2). 所在部门中的最高工资 select max(salary) from employees where department_id ( s…

html后台数据分类管理,细分数据.html

&#xfeff;细分数据$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/reload.html; };…

SpringBoot的配置文件加载顺序和使用方式

1、bootstrap.properties bootstrap.properties 配置文件是由“根”上下文优先加载&#xff0c;程序启动之初就感知 如&#xff1a;Spring Cloud Config指定远程配置中心地址&#xff0c;就要在这个文件中指定。这样才能在启动之初发现远程配置中心&#xff0c;并从远程获取配置…

Get请求

写在前面的话 XMLHttpRequest对象的open方法的第一个参数为request-type,取值可以为get或post.本篇介绍get请求. get请求的目的,主要是为了获取数据.虽然get请求可以传递数据,但传递数据的目的是为了告诉服务器,给我们什么内容. 使用get请求时,参数都是随url进行传递的. 使用ge…