sqlserver数据库文件相关知识

在SQL Server 数据库中

文件有三大类:

  主数据文件:扩展名为.mdf。

    主数据文件是数据库的关键文件,是所有数据文件的起点,包含指向其他数据库文件的指针,每个数据库都必须有且仅有一个主文件

  辅数据文件:扩展名为.ndf。

     辅助主文件存储数据,包含不在主文件内的其他数据,一个数据库可以有0~n个辅文件

  日志文件:扩展名为.ldf。

    记录存放恢复数据库时所需要的所有日志信息,一个数据库可有1~n个日志文件

 一个数据库必须至少包含一个主数据文件和一个日志文件。

文件组分为两种:

主文件组(PRIMARY)

  存放主数据库文件和任何没有明确指定文件组的其他文件。

用户定义文件组

  在创建火修改数据库时,用FileGroup关键字定义的文件组,存放辅数据文件。

文件组的特性:

(1)一个文件只能属于一个文件组;

(2)只有数据文件才能归属于某个文件组,日志文件不属于任何文件组;

(3)每个数据库中都有一个默认的文件组在运行,可以指定默认文件组,没有指定的话,则默认为主文件组;

(4)若没有用户定义文件组,则所有的数据文件都存放在主文件组中。

 查看文件存放位置

选择对应的数据库文件,右击属性,选择文件,即可查找文件存放的位置;

 使用命令的方式查询文件存放位置

select database_id,name,physical_name AS CurrentLocation,state_desc,size
from sys.master_files 
where database_id=db_id(N'master');

修改存放位置

alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径');
alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径');

alter database testDb modify file ( name = testDb, filename = 'D:Program FilesSQL_DATA	estDb	estDb.mdf');
alter database testDb modify file ( name = testDb_log, filename = 'D:Program FilesSQL_DATA	estDb	estdb_log.ldf');

后续其他文件也统一存放,需要修改默认配置:

EXEC xp_instance_regwrite 
@rootkey='HKEY_LOCAL_MACHINE', 
@key='SoftwareMicrosoftMSSQLServerMSSQLServer', 
@value_name='DefaultData', 
@type=REG_SZ, 
@value='D:Program FilesMSSQL_MDFData' 
GO 
EXEC master..xp_instance_regwrite 
@rootkey='HKEY_LOCAL_MACHINE', 
@key='SoftwareMicrosoftMSSQLServerMSSQLServer', 
@value_name='DefaultLog', 
@type=REG_SZ, 
@value='D:Program FilesMSSQL_MDFData' 
GO

Management studio的使用

参考官方文档

https://docs.microsoft.com/zh-cn/sql/ssms/tutorials/connect-query-sql-server?view=sql-server-ver15

创建一个名为 TutorialDB 的数据库:

USE master
GO
IF NOT EXISTS (
   SELECT name
   FROM sys.databases
   WHERE name = N'TutorialDB'
)
CREATE DATABASE [TutorialDB]
GO

执行查询,请选择“执行”(或选择键盘上的 F5)

在新创建的 TutorialDB 数据库中创建一个表。

USE [TutorialDB]
-- Create a new table called 'Customers' in schema 'dbo'
-- Drop the table if it already exists
IF OBJECT_ID('dbo.Customers', 'U') IS NOT NULL
DROP TABLE dbo.Customers
GO
-- Create the table in the specified schema
CREATE TABLE dbo.Customers
(
   CustomerId        INT    NOT NULL   PRIMARY KEY, -- primary key column
   Name      [NVARCHAR](50)  NOT NULL,
   Location  [NVARCHAR](50)  NOT NULL,
   Email     [NVARCHAR](50)  NOT NULL
);
GO
原文地址:https://www.cnblogs.com/zxh06820/p/13343039.html