三、数据库层面上的操作

1.   数据库的文件组成:

       a. 数据库包含两种文件:

           数据文件:用于存放数据库中的数据;

           日志文件:记录对数据库进行过的操作(一个数据库可以包含多个日志文件);

       b. 数据文件:

            i.   一个数据库可以有多个数据文件;

            ii.  和C程序只能包含一个含有main函数的程序一样,数据文件中也只能包含一个主数据文件,其余都是次数据文件;

            iii. 主数据文件是整个数据库的核心,包含数据库的启动信息,并里面含有指向其它各次数据文件的指针,一般不用来存放用户数据;

            iv. 次数据文件可以有多个,专门用来存放用户的数据信息;

       

2.   创建数据库:

       a. 一般规则:使用CREATE关键字,CREATE DATABASE XXX即创建了一个名为XXX的数据库;

       b. 直接创建(裸奔式):CREATE DATABASE XXX    该种方式虽然创建了数据库但是没有指定数据库在文件系统(即操作系统)中的存放路径以及增长方式、大小等信息;

       c. 指定一个主文件:

           CREATE DATABASE XXX

           ON

           PRIMARY (

                     NAME = 文件的逻辑名称(即在数据库系统层面上可见的名称),

                     FILENAME = '主文件所在的路径(必须是绝对路径)\主文件名.mdf', 

                     SIZE = XX,

                     MAXSIZE = XX,

                     FILEGROWTH = XX

           )

           这里建立一个名叫XXX的数据库;

           ON表示该数据库建立在某文件之上,而文件将在ON后面进行描述;

           PRIMARY表示主文件,由于一个数据库可以建立在多个文件之上,而主文件只能有一个,因此PRIMARY关键字也只能使用一次,加了PRIMARY关键字的才是主文件,否则都是次文件;

           括号表示一个文件定义的定义体;

           数据库管理系统中的文件具有两种不同的观察角度,一种是站在数据库管理系统的层面上看,就是逻辑名(不带后缀),类似程序中的变量名,另一种是站在文件系统(即操作系统)的层面上看,就是所谓的逻辑名(是带后缀的);

           mdf是main data file的缩写,即主数据文件的意思;

           SIZE指文件的初始大小,这就说明文件时可增长的,而MAXSIZE显然是指文件的最大容量,单位都是MB,可以省略单位MB而直接写数字;

           FILEGROWTH是指文件的单位增长量,当对数据库中的数据进行扩增时,如果超过了当前的SIZE就需要文件扩增,它指定了每次进行扩增的单位大小,可以使用两种方式表示:一种是按大小增长(直接填写数字),另一种是按百分比增长(填写XX%,表示按照当前大小的百分之几进行增长);

           例子:

           CREATE DATABASE Student_Course

           ON

           PRIMARY (

                  NAME = SC_MDATA,

                  FILENAME = 'm:\Database\sc_mdata.mdf',

                  SIZE = 4,

                  MAXSIZE = 10,

                  FILEGROWTH = 1 //也可以为10%

           )

           注:文件体中每条属性定义之间用逗号隔开,最后一条定义之后不用加逗号,加了逗号就认为后面还有定义没写!!

       d. 文件组:

            i.   一个数据库可以包含多个文件组;

            ii.  文件组相当于文件系统中的文件夹,可以对各种数据文件(.ndf、.mdf)进行组织和管理;

            iii. 文件组只能存放数据文件,日志文件没有文件组的概念;

            iv. 每个文件组只能有一个主文件组,其名字默认为PRIMARY,即组名为PRIMARY,不能改变,是系统决定的;

            v.  主文件组中必须包含主文件(即.mdf);

       e. 创建文件组:

            CREATE DATABASE XXX

            ON

        

            PRIMARY (           //定义了一个主文件

                      ...............

            ),  //各文件体之间要用逗号隔开

            

            (      //定义了一个次文件,其中FILENAME以.ndf为后缀,即nth data file的缩写

                      ..............

            ),  //各个文件组之间也要用逗号隔开

            //以上文件都是定义在主文件组PRIMARY中的


            FILEGROUP XXX    //定义了一个新的文件组


            //在新的文件组中可以定义多个文件

            (      

                      ..............

            ),


            (      

                      ..............

            )

       f.  创建日志文件:

           LOG

           ON


           (

                   ...........

           ),


           (

                    .........

           )

           日志文件可以创建多个;

           ON之前没有任何东西就表示创建的数据文件,如果前面有LOG表示创建的是日志文件;

           日志文件的FILENAME的后缀为.ldf,即log data file的缩写;

           一般日志文件的定义写在最后,在第一个日志文件之前定义的一个文件体后不要加逗号,否则会报错!!!

       g. 向某个数据库添加文件:

           ALTER DATABASE XXX    //表示对XXX数据库进行修改,因为后面的语句都是在数据库层面上的修改

           ADD FILE   //可以添加多个文件,这里添加的是数据文件,添加日志文件使用ADD LOG FILE

           (

                     .........

           ),


           (

                     ...........

           )

           TO FILEGROUP GGG //将文件添加到名为GGG的文件组中,如果不写这句话就表示将上述文件添加到PRIMARY文建组中;

           数据库层面上的修改是指对数据库的存储形式进行修改,特别指对数据库文件进行修改,这类修改必须使用ALTER DATABASE语句;

           对象层面上的修改是指对某个数据库中的对象修改(比如删除某个数据库中的表,或者对表中的某个属性进行修改等),这类修改不是数据库层面上的(修改数据库文件),此类修改必须使用USE语句,接下来再使用ALTER TABLE等语句;


3.   数据库的删除:

       i.   规则为:DROP DATABASE  XXX    将XXX数据库删除;

       ii.  执行该删除语句时不会有提示,因此一定要谨慎操作,数据无价!!!


4.   删除数据库中的文件:

      规则为:ALTER DATABASE XXX

                           REMOVE FILE XXX, XXX, XXX

            


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值