zoukankan      html  css  js  c++  java
  • 数据库系列之数据库管理(1)

    数据库分类

    1 系统数据库:Master, model, tempdb, msdb

    Master数据库:存储SQL Server系统的所有系统级信息。包括:登录帐户、连接服务器和系统配置设置;master数据库记录所有其他数据库及这些数据库文件位置、大小、数据表的相关信息;还记录SQL Server的初始化信息。如果master数据库不可用,则SQL Server无法启动。

    Model数据库:提供了SQL Server创建所有数据库的模板。

    Msdb数据库:主要被SQL Server代理用于进行复制、作业调度以及管理警报等活动,该数据库通常用于调度任务或排除故障。

    Tempdb数据库:为SQL Server所有用户提供可共用的全局资源,它保存所有临时表和临时存储过程。每次启动SQL Server是都会重新创建tempdb数据库。

    2 用户数据库

    数据库文件


    主数据文件 master data file(.mdf):包含数据库的启动信息,并指向数据库中的其他文件。用户数据和对象存储在该文件中。
    次(节点)数据文件 node data file(.ndf):可选文件,用于保存数据。用于将数据分散存储到多个磁盘中,每个数据库可以有多个次数据文件。
    事务日志文件log data file(.ldf):用于记录对数据库的各种操作情况。

    一个数据库至少应该有一个主数据文件和一个事务日志文件,可以有多个节点数据文件和多个日志文件。
    逻辑名称:指定数据库文件和事务日志文件,默认情况下数据库文件的文件名与数据库名称一样,而事务日志文件的文件名默认是一个“_log”,但是这两个文件的文件名都可以直接修改。
    文件类型:区别当前文件是数据文件还是日志文件。
    文件组:显示当前数据库文件所属文件组,一个数据库文件只能存在一个文件组中。
    初始化:指定文件的初始化大小,数据库文件默认为3MB,日志文件默认1MB,也可以根据实际情况修改。
    自动增长:随着时间的推移,数据内容越来越多,就需要不断的分配空间。可设置不同的自动增长方式。(讲解两者的区别)
    路径:指定文件存放位置。默认情况下,SQL Server将存放路径设置为安装目录下的data子目录

    数据库管理方式

    • SQL Server Management studio
    • SQL语句

    数据库管理

    1 创建

    --创建语法格式
    CREATE  DATABASE  databasesName
    ONprimary ]
    (
          name ='databases_data',--表示数据库文件的逻辑名
          filename =‘路径databases_data.mdf’,--表示数据库文件的物理文件名
          size =XXmb,--表示数据库文件的初始大小
          maxsize=XXmb,--表示数据库文件的最大大小
          filegrowth=xx--表示数据库文件的增长速度
    )
    [ log on ]
    (
          name ='databases_log',--表示日志文件的逻辑名
          filename =‘路径databases_log.ldf’,--表示日志文件的物理文件名
          size =XXmb,--表示日志文件的初始大小
          maxsize=XXmb,--表示日志文件的最大大小
          filegrowth=xx--表示日志文件的增长速度
     )
    --创建实例一:主数据文件+日志文件
    create database Systop
    on  primary
    (  /*以下是主数据文件的属性*/
       name=‘Systop', --主数据文件的逻辑名称
       filename='E:SystopDBSystop.mdf',--主数据文件的物理路径
       size=3mb, --主数据文件的初始大小
       maxsize=unlimited, --主数据文件的最大值
       filegrowth=10%  --主数据文件的增长率
    )
    log on
    (  /*以下是日志文件的属性*/
       name=‘Systop_log', --日志文件的逻辑名称
       filename= 'E:SystopDBSystop_log.ldf',  --日志文件的物理路径
       size=1mb,  --日志文件的初始大小
       filegrowth=10%  --日志文件的增长率
    )
    go
    
    --创建实例二:主数据文件+次数据文件+日志文件
    create database Systop
    on  primary
    (  /*以下是主数据文件的属性*/
       name=‘Systop', --主数据文件的逻辑名称
       filename='E:SystopDBSystop.mdf',--主数据文件的物理路径
       size=3mb, --主数据文件的初始大小
       maxsize=unlimited, --主数据文件的最大值
       filegrowth=10%  --主数据文件的增长率
    ),
    (/*以下是次要数据文件的属性*/
       name='Systop_sec1’, --次要数据文件的逻辑名称
       filename= 'E:SystopDBSystop_sec1.ndf',  --次要数据文件的物理路径
       size=3mb, --次要数据文件的初始大小
       filegrowth=10% --次要数据文件的增长率
    )
    log on
    (  /*以下是日志文件的属性*/
       name= 'Systop_log', --日志文件的逻辑名称
       filename= 'E:SystopDBSystop_log.ldf‘,  --日志文件的物理路径
       size=1mb,  --日志文件的初始大小
       filegrowth=2MB  --日志文件的增长率
    )
    go

    2 判断数据库是否存在

    系统自带master系统数据库,sysdatabases 是其中一个系统数据表,存放所有数据库的一些信息。
    use master
    Select * from sysdatabases

    3 删除数据库

    --语法
    Drop database 数据库名
    --实例一
    Drop database Systop
    
    --实例二:正确的删除数据库方式 
    use master   --设置当前数据库为master
    go
    if exists (select * from sysdatabases where name='Systop')
       drop database Systop


    使用SQL Server数据库管理系统删除
     无标题
    删除后,数据库文件也一并删除。

    4 修改数据库

    ALTER DATABASE  databasesName
        ADD FILE <文件格式> [TO FILEGROUP 文件组名]
    |   ADD LOG FILE <文件格式>
    |   REMOVE FILE 逻辑文件名
    |   ADD FILEGROUP 文件组名
    |   REMOVE FILEGROUP 文件组名
    |   MODIFY FILE <文件格式>
    |   MODIFY FILEGROUP 文件组名,文件组属性

  • 相关阅读:
    052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序
    051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1
    050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句
    049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句
    048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和
    047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用
    046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项
    045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围
    剑指OFFER----面试题04.二维数组中的查找
    剑指OFFER----面试题03. 数组中重复的数字
  • 原文地址:https://www.cnblogs.com/cmhunter/p/4278738.html
Copyright © 2011-2022 走看看