用alter database语句修改数据库
--1将名为"例二数据库"的数据库改名为"例七数据库"
显示代码打印
alter database 例二数据库
modify name = 例七数据库
或
显示代码打印1 exec sp_renamedb '例二数据库','例七数据库'
--2为"例六数据库"增加一个数据文件
显示代码打印
alter database 例六数据库
add file (
name=增加的数据文件,
filename='c:\dbtest\例六数据库增加的数据文件ndf'
)
--3为"例六数据库"增加一个日志文件
显示代码打印
alter database 例六数据库
add log file (
name=例六增加的日志文件,
filename='c:\dbtest\例六增加的日志文件ldf',
size=3MB,
maxsize=50MB,
filegrowth=10%
)
--4将"例六数据库"名为"增加的数据文件"的数据库文件改名
显示代码打印
alter database 例六数据库
modify file (
name=增加的数据文件,
newname=例六数据文件,
filename='c:\dbtest\例六数据文件ndf'
)
--5修改"例六数据库"的排序规则
显示代码打印
alter database 例六数据库
collate Chinese_PRC_CI_AS_KS
--6在"例六数据库"里删除一个数据文件
显示代码打印
alter database 例六数据库
remove file 例六数据文件
--7在"例六数据库"里添加一个文件组
显示代码打印
alter database 例六数据库
add filegroup 例十三文件组
--8在"例六数据库"里为一个文件组改名
显示代码打印
alter database 例六数据库
modify filegroup 例十三文件组
name=例十四文件组
--9在"例六数据库"里添加一个数据文件到一个文件组,并将该文件祖设为默认文件组。
显示代码打印
--alter database一次只能修改数据库的一个属性
alter database 例六数据库
add file (
name=例十五数据文件,
filename='c:\dbtest\例十五数据文件ndf'
)
to filegroup 例十四文件组
go
alter database 例六数据库
modify filegroup 例十四文件组 default
go
--10在"例六数据库"里删除"例十四文件组"。
显示代码打印
alter database 例六数据库
modify filegroup [primary] default
--将primary文件组设为默认文件组
go
alter database 例六数据库
remove file 例十五数据文件
--删除"例十四文件组"中包含的"例十五数据文件"
go
alter database 例六数据库
remove filegroup 例十四文件组
--删除"例十四文件组"
go
--11将"例六数据库"里一个文件组设为只读的。
显示代码打印
alter database 例六数据库
add filegroup 例十七文件组
--先添加一个文件组,因为primary文件组不能设为只读
go
alter database 例六数据库
add file (name=例十七数据文件,
filename='c:\dbtest\例十七数据文件ndf')
to filegroup 例十七文件组
--添加一个文件到文件组中,因为空文件组不能设为只读
go
alter database 例六数据库
modify filegroup 例十七文件组 read_only
--将文件组设为只读
go
--12将"例六数据库"设为只有一个用户可访问
显示代码打印
alter database 例六数据库
set single_user
--13设置"例六数据库"可自动收缩
显示代码打印
alter database 例六数据库
set auto_shrink on
添加方法如下:
1、打开SQL,在身份验证中选择“windows身份验证”后,点击下方的"连接“按钮。连接后选择数据库-新建数据库,建立名为”test“的数据库。
2、在数据库下找到新建的”test“,点击”+“找到表--新建,在这个表里可以看到列名,数据类型和允许null值。
3、添加完表后,系统会出现添加表名的对话框,在输入表名称中输入表名后,点击”确定“按钮。
4、找到刚刚新建的表,右键点击找到“编辑”,就可以在里面编辑内容了。
5、添加好数据后,在”新建查询“出现的空白框中输入SQL语句即可。
SQLServer中文件组是将多个数据库文件集合起来形成一个整体,每个文件组有一个,与数据库文件一样,文件组也分为文件主文件组,和次文件组。一个文件只能存在一个文件组中,一个文件组也只能被一个数据库使用。
create database Library
on primary
(name='Library_data',
filename='d:\data\Librarymdf',
size=10mb,
maxsize=UNLIMITED,
filegrowth=10%)
log on(name='Librarylog',
filename='d:\data\Libraryldf',
size=3mb,
maxsize=5mb,
filegrowth=1mb
)
类似这样
文件组就是一堆文件的一个总称,就像黑种人,白种人,黄种人,是一堆人的总称,但以颜色来标识,这就是逻辑上的分类,文件组也是一样只是逻辑上的分组,一个数据库可以看成很多个文件构成一个逻辑空间,它的数据越存越多,加入新的文件就越来越多,这些文件就可以作为一个组来管理。
文件和文件组的含义与关系:
每个数据库有一个主数据文件和若干个从文件。文件是数据库的物理体现。 文件组可以包括分布在多个逻辑分区的文件,实现负载平衡。文件组允许对文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在三个硬盘驱动器上创建三个文件(Data1ndf、Data2ndf和Data3ndf),并将这三个文件指派到文件组 fgroup1 中。然后,可以明确地在文件组fgroup1 上创建一个表。对表中数据的查询将分散到三个磁盘上,因而性能得以提高。在RAID(磁盘冗余阵列)条带集上创建单个文件也可以获得相同的性能改善。然而,文件和文件组使您得以在新磁盘上轻易地添加新文件。另外,如果数据库超过单个Microsoft Windows 文件的最大大小,则可以使用次要数据文件允许数据库继续增长。
文件、文件组在实践应用中常见的问题:
1、容易导致文件过大。
我们知道,mdf文件是数据库文件,这样的话也就意味着随着数据库的增大mdf就会相应的增大,显然在现在的应用中数据膨胀是太常见的事情了,当你的应用变大后,mdf文件也会变大,然而windows对文件的大小是有要求的,这样的话很容易导致mdf文件达到windows所允许的文件大小的界限(于是数据库就崩溃了)。
2、没有利用到磁盘阵列。
大型的服务器好多都有磁盘阵列,你可以把磁盘阵列简单的假象成n个一块转动的磁盘,磁盘阵列的设计是希望通过多个磁盘的串联来得到更大的读写效率。但是如果你的数据库只有一个mdf文件(ldf文件暂时不考虑),那么你总是只能够利用这个磁盘阵列里面的一个磁盘而已。那样的话昂贵的磁盘阵列的效率就由并联变成串联了。试想如果我们能够让mdf分散成多个文件,比如说磁盘阵列上的每个磁盘中都分配一个文件,然后把mdf中的数据分散到各个文件中,我在读取的时候就是串联的读取了,这样就充分的利用了磁盘阵的存取效能。
使用数据库文件组应注意以下问题:
我们可以出于分配和管理的目的将数据库文件分为多个组。在某些情况下,我们可以通过控制将数据和索引放置到专用磁盘上的专门文件组来改善性能。包含主数据文件的文件组被称为主文件组。只有一个主文件组,如果在创建数据库时不明确地指示将文件放到某个其他的文件组,所有的数据文件都会被放在主文件组中。
除了主文件组,数据库还可以有一个或多个用户定义的文件组。我们可以在CREATE DATABASE或ALTER DATABASE语句中使用FILEGROUP关键字来创建用户定义的文件组。
注意不要混淆主文件组和主文件。
主文件总是在创建数据库时第一个列出的文件,并且它的文件扩展名一般为mdf。主文件的一个特点就是它指向master数据库中的一张称为sysfiles1的表,该表包含属于这个数据库的所有文件的信息。
主文件组是包含主文件的文件组。该文件组包含主数据文件和所有没有放在其他专门文件组里的文件。系统表里的所有页面总是从主文件组里的文件中分配。
默认文件组
一个文件组总是会有一个DEFAULT属性。注意DEFAULT是文件组的一个属性而不是名字。在每个数据库中只有一个文件组是默认文件组。默认情况下,主文件组同时也是默认文件组。数据库所有者能够使用ALTER DATABASE语句改变默认文件组。默认文件组包含没有放在一个专门文件组里的全部的表和索引。
大多数SQL Server数据库只有一个单独的数据文件,该文件就在一个(默认的)文件组中。实际上,大多数用户都对SQL Server是如何工作的了解不够多,从而不知道文件组是什么。用户获得了对数据库更为精密的了解后,她也许会决定使用多个装置来将一个数据库的I/O分散开来。实现它最简单的方法就是在一个RAID装置上创建一个数据库文件。不过那样一来还是不需要使用文件组。随着用户对数据库的精密性和复杂度的了解达到更高的水平,她也许会发现非常需要使用多个文件——也许是为了创建一个单个装置不能提供足够空间的数据库。在这种情况下,她还是不需要使用文件组——她能够使用一个CREATE DATABASE语句来完成这个目标,该语句带的参数是一组位于不同驱动器上文件的列表。
更为资深的数据库管理员也许会决定将不同的表分配到不同的驱动器上,或者使用SQL Server 2005的表和索引分区特性,只有这时才会用到文件组。他们可以使用SQL Server Management Studio中的对象浏览器来创建位于多个文件组上的数据库。然后他们能够右击对象浏览器中的数据库名称并创建一个CREATE DATABASE命令脚本,该脚本包含所有文件组中的所有文件。它们能够保存该脚本并在需要重建这个数据库或创建一个类似的数据库时重用该脚本。
你也许想知道为什么会需要创建位于一个物理驱动器的多个文件之上的数据库。
通常这样做并不会对性能有所改善,但是它为我们在两个重要的方面增加了灵活性。
首先,如果我们需要在磁盘损坏时从备份还原一个数据库,那么新的数据库必须包
含与原来数据库同样数目的文件。例如,如果原来的数据库由一个12GB的大型文件
组成,我们就需要将它还原到有着同样大小文件的数据库中。如果这时没有另外一个
12GB的驱动器马上可供使用,那么我们就不能还原数据库!然而,如果最初创建的
数据库是在几个较小的文件上的,那么实际上我们就增加了还原期间的灵活性。我们
更可能找到几个4GB的可用驱动器而不是一个大型的12GB驱动器。
其次,将数据库分布到多个文件上,即使这些文件是在同一个驱动器上,也能够为
我们带来可以很方便地将数据库迁移到不同驱动器上的灵活性。如果我们在将来改
变硬件配置,就可能会有这种需要。
分配有空间的对象(也就是表和索引)被创建在一个特殊的文件组之上。如果没有指定文件组,它们会被创建在默认的文件组之上。当我们向存储在某个特定的文件组上的对象增加空间时,数据会以按比例填充(proportional fill)的方式被存储,这意味着如果在一个文件组中有一个文件的自由空间是另一个文件的两倍,那么每当从第二个文件分配一个区(extent)时,将会从第一个文件分配两个区。在本章后面部分会有对区的更多讨论。
我们也可以使用文件组来备份数据库的一些部分。因为一张表是被创建在单个的文件组之上的,所以可以通过备份放置了一些表的文件组来选择备份某一批关键表。我们也可以通过两种方式来还原单个的文件或文件组。首先,我们可以对数据库进行部分还原并且只是还原文件组的一个子集,该子集必须包括主文件组。一旦主文件组还原完毕,数据库就马上可用,但是只有在已还原的文件组上的对象才会可用。部分还原文件组的一个子集是对一个问题的解决方案。该问题就是如何允许非常大型的数据库(VLDB,very large database)在限定的时间窗口内可用。
以上就是关于MySQL中修改数据库 ALTER DATABASE 语法的使用全部的内容,包括:MySQL中修改数据库 ALTER DATABASE 语法的使用、怎样往 sqlserver数据库添加一个数据、数据库中,什么是文件组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)