• 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-SQLSQL增加了些功能,包括事务控制、异常错误处理和行处理。

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

     

    三、SQL Server存储体系构成

    Ø  数据文件

    后缀为.MDF 文件

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

     

    Ø  数据文件

    后缀为.NDF文件

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

    1.   数据规划(组)

    2.   数据扩展

    3.   文件仿真阵列

     

    Ø  日志文件

    后缀为.LDF文件

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

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

     

    Ø  文件组

    FileGroup

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

    注意:系统默认的组为“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组中至少必须包含一个文件;

    Ø  如果SizeMax 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 (文件参数)

    注意:

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

     2REMOVE 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://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/

  • 相关阅读:
    python基础学习笔记(五)
    python进阶学习笔记(一)
    python基础学习笔记(七)
    LoadRunner 技巧之 脚本设计
    python基础学习笔记(八)
    python基础学习笔记(三)
    python基础学习笔记(十一)
    性能测试知多少性能分析与调优的原理
    python基础学习笔记(十)
    python基础学习笔记(六)
  • 原文地址:https://www.cnblogs.com/wenjl520/p/1324393.html
Copyright © 2020-2023  润新知