广告位联系
返回顶部
分享到

SQL Server使用T-SQL创建数据库的操作

MsSql 来源:互联网 作者:佚名 发布时间:2024-12-14 21:37:22 人浏览
摘要

功能和特性上: SQL server的管理工具(SQL Server Management Studio)功能强大,适合企业级应用。支持更多的数据类型,如 XML、JSON、地理空间数据等。 数据类型上: 虽然MySQL 更加轻量,适合中小型

功能和特性上: 

SQL server的管理工具( SQL Server Management Studio)功能强大,适合企业级应用。支持更多的数据类型,如 XML、JSON、地理空间数据等。
 数据类型上:

虽然MySQL 更加轻量,适合中小型应用,也支持 JSON,但在某些数据类型的实现上可能不如 SQL Server 灵活。

SQL server还有很多其它的优点,等之后做项目的时候就可以更加直观且清晰的感觉到,因此这里先不赘述。

一, 使用T-SQL创建数据库

 T-SQL全称为transact structured query language,事务化的结构查询语言。是对标准SQL语言功能的扩充。可以声明变量,有流程控制语句,支持对流程的控制等。其中,事务的概念如下:

事务transaction是需要一次性完成的操作集合。要么全部执行,要么全部不执行。

1,数据库的存储结构 

通常SQL server数据库包含以下三类物理文件:

主要数据文件(也称主数据文件)。扩展名为.mdf (main data  file)。

在创建数据库时生成,用来存储数据库的启动信息,部分或全部数据及数据库对象,是所有数据文件的起点,包含指向其它数据文件的指针。每个数据库只能有一个主要数据文件。

 次要数据文件。扩展名为.ndf(个人ps:next data file)。

辅助主数据文件存储数据及数据库对象,可以在创建数据库时创建,也可以在创建数据库后添加。当数据库存储的数据量巨大,超过了单个Windows文件的最大值或需要将重要数据与次要数据分开存储以提高数据访问速度和安全时,用户可以自行创建一个或多个次要数据文件。一个数据库可以没有次要数据文件,也可以同时拥有多个次要数据文件。

日志文件。扩展名为.ldf (log data  file)。

在创建数据库时生成,用于记录系统操作事件的记录文件或文件集合,这些记录可以作为恢复数据库的依据。当数据库损坏时,可以使用事务日志恢复数据库。每个数据库至少拥有一个日志文件,而且允许拥有多个日志文件。

2,创建数据库的语法结构 

一开始脑海里面得有下面这4句: 

1

2

3

4

5

6

7

8

9

--1,创数据库

CREATE DATABASE 数据库名

--2,创数据文件(主文件)

ON PRIMARY(),

FILEGROUP 文件组名()

--3,创日志文件

LOG ON()

--4,批处理分隔符,用来提交T-SQL语句(默认提交次数为1,1可省略)

GO                 

可以看到,在主数据文件部分包含一句:FILEGROUP 文件组名(),用来创建文件组。而文件组中存放的文件都是次要数据文件,以.ndf为文件名后缀。

批处理分隔符的设置如下,没有什么特别的要求,一般默认设置成“GO” 。

之后再往里面填充。这里从上至下,先填充主数据文件的部分。

1

2

3

4

5

6

7

ON PRIMARY(

NAME=主数据文件名,  -- 逻辑名

FILENAME='盘符\存储路径\主数据文件名.mdf',  -- 物理名

SIZE=主数据文件的初始大小,

MAXSIZE=主数据文件的最大容量,

FILEGROWTH=主数据文件自动增长的方式(可以是百分比也可以是具体的内存大小)

)

如果要求创建文件组的话,就需要在创建好主数据文件的结束括号后面加上逗号,再写上创文件组的语句:创建文件组和创建主数据文件类似,如下

1

2

3

4

5

6

7

,FILEGROUP 文件组名(

NAME=次要数据文件名,

FILENAME='盘符\存储路径\次要数据文件名.ndf',

SIZE=次要数据文件的初始大小,

MAXSIZE=次要数据文件的最大容量,

FILEGROWTH=次要数据文件自动增长的方式(可以是百分比也可以是具体的内存大小)

)

日志文件的创建也一样:

1

2

3

4

5

6

7

LOG ON(

NAME=日志文件名,

FILENAME='盘符\存储路径\日志文件名.ldf',

SIZE=日志文件的初始大小,

MAXSIZE=日志文件的最大容量,

FILEGROWTH=日志文件自动增长的方式(可以是百分比也可以是具体的内存大小)

)

知道该怎么创建数据库及数据库的3类物理文件之后,上题目:

1)使用T-SQL创建学生成绩管理数据库  

  1.  数据库名:StuScore
  2. 主数据文件:StuScore_data,存储位置'盘符\...\STUSCOREDATA',初始大小10MB,按照10%自动增长,最大容量200MB
  3. 日志文件:StuScore_log,存储位置'盘符\...\STUSCORELOG',初始大小3MB,自动增长方式为每次增长1MB,最大容量60MB

首先电脑上得事先创建好文件夹 STUSCOREDATA和STUSCORELOG。

之后按照题目要求编写语句: 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

--1,创数据库

CREATE DATABASE StuScore

--2,创数据文件(主文件)

ON PRIMARY(

NAME=StuScore_data,

FILENAME='D:\mySqlserver\STUSCOREDATA\StuScore_data.mdf',

SIZE=10MB,

MAXSIZE=200MB,

FILEGROWTH=5%)

--3,创日志文件

LOG ON(

NAME=StuScore_log,

FILENAME='D:\mySqlserver\STUSCORELOG\StuScore_log.ldf',

SIZE=3MB,

MAXSIZE=60MB,

FILEGROWTH=1MB)

--4,批处理分隔符,用来提交T-SQL语句(默认提交次数为1,1可省略)

GO                 

创建的主数据文件和日志文件如下:

二,使用T-SQL修改数据库

1,修改数据库的语法结构

通过ALTER DATABASE语句,可以进行如下操作:

  • 更改数据库名称,不能更改数据库的存储位置。
  • 添加,删除数据库文件及文件组,
  • 更改文件或文件组的属性,如名称,容量等。

 基本语法如下:

1

2

3

4

5

6

7

8

9

10

11

ALTER DATABASE 数据库名

-- 重命名数据库

MODIFY NAME<新的数据库名>

-- 添加/修改数据文件

ADD/MODIFY FILE<filespec>  

-- 删除指定文件

REMOVE FILE<文件逻辑名>

-- 添加/修改/删除文件组

ADD/MODIFY/REMOVE FILEGROUP<文件组名>

-- 添加日志文件

ADD LOG FILE<filespec>

其中,filespec指代如下:

1

2

3

4

5

6

<filespec> ::=

NAME=文件逻辑名,

FILENAME='盘符\存储路径\文件逻辑名.mdf/ndf/ldf',  -- 文件的物理名

SIZE=文件的初始大小,

MAXSIZE=文件的最大容量,

FILEGROWTH=文件自动增长的方式(可以是百分比也可以是具体的内存大小)

1)修改学生成绩管理数据库

①增加文件组及次要数据文件 

 要求:

修改数据库StuScore增加次要文件StuScore_data2,存储位置'盘符\...\STUSCOREDATA',初始大小20MB,最大容量2GB,按照10%自动增长,放到StuScoreGroup文件组中。

 之后按照要求编写语句:

1

2

3

4

5

6

7

8

9

10

ALTER DATABASE StuScore

ADD FILEGROUP StuScoreGroup

ALTER DATABASE StuScore

ADD FILE(

NAME=StuScore_data2,

FILENAME='D:\mySqlserver\STUSCOREDATA\StuScore_data2.ndf',

SIZE=20MB,

MAXSIZE=2GB,

FILEGROWTH=10%

) TO FILEGROUP StuScoreGroup

文件组StuScoreGroup中的次要数据文件StuScore_data2.ndf在磁盘上的存储位置????: 

 ②增加日志文件

 要求:

日志文件名:StuScore_log2,存储位置'盘符\...\STUSCORELOG',初始大小10MB,不限制最大容量(UNLIMITED,不限制),按照1MB自动增长。

 按照要求编写语句:

1

2

3

4

5

6

7

8

ALTER DATABASE StuScore

ADD LOG FILE(

NAME=StuScore_log2,

FILENAME='D:\mySqlserver\STUSCORELOG\StuScore_log2.ldf',

SIZE=10MB,

MAXSIZE=UNLIMITED,

FILEGROWTH=1MB

)

 ③修改主数据文件最大容量

要求:将主数据文件StuScore_data的最大容量设置为500MB。

按照要求编写语句:

1

2

3

4

5

ALTER DATABASE StuScore

MODIFY FILE(

NAME=StuScore_data,

MAXSIZE=500MB

)

如下,修改成功 

2)使用T-SQL备份数据库

1

2

3

4

5

BACKUP DATABASE StuScore

TO DISK = 'D:\mySqlserver\Backups\StuScore.bak'

WITH FORMAT,

     MEDIANAME = 'StuScoreBackup',

     NAME = 'Full Backup of StuScore';

 3)使用T-SQL删除数据库

1

DROP DATABASE StuScore

①无法删除数据库 "xxx",因为该数据库当前正在使用

 如果点击执行之后提示“无法删除数据库 "xxx",因为该数据库当前正在使用。”,先简单排除:

  • 是否用该数据库来新建查询。
  • 建议退出关闭当前的查询,重新开一个查询。

我就是用上面两种方法删除数据库StuScore,如果使用上述两种方法还是无法删除数据库,接下来就需要将数据库设置为单用户模式,断开所有连接,并删除数据库

1

2

ALTER DATABASE 需要删除的数据库名 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

DROP DATABASE 要删除的数据库名;

4)重新加载数据库

1

2

3

4

RESTORE DATABASE StuScore

FROM DISK = 'D:\mySqlserver\Backups\StuScore.bak'

WITH NORECOVERY;  -- 多个备份文件还原

SELECT NAME FROM sys.databases

如果两三分钟后,数据库依旧显示“正在还原”,可以输入如下语句,完成还原操作:

1

RESTORE DATABASE StuScore WITH RECOVERY;

之后到磁盘下,可以看到相关的数据文件和日志文件


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 怎么安装SQL Server 2016及SQL Server Management Studio安装

    怎么安装SQL Server 2016及SQL Server Management Studio安装
    一、安装SQL Server 2016 1.准备SQL Server 2016的安装包 SQL Server 2016可在官网上进行下载; 2.解压安装包 将下载的SQL Server2016的安装包解压,找到
  • SQL中的partition分区功能使用

    SQL中的partition分区功能使用
    需求来源 今天甲方这边要查看一个机车的周时数据(就是一个机车从到我的管辖范围内,到出我的管辖内所用的时间),那这个它会跑很多
  • SQL Server使用Windows身份验证与JDBC连接数据库的操
    什么是 Windows 身份验证 Windows 身份验证(也称为集成安全性)是 SQL Server 提供的一种身份验证方式,它允许 SQL Server 使用 Windows 用户账户来
  • SQL Server使用T-SQL创建数据库的操作

    SQL Server使用T-SQL创建数据库的操作
    功能和特性上: SQL server的管理工具(SQL Server Management Studio)功能强大,适合企业级应用。支持更多的数据类型,如 XML、JSON、地理空间数据
  • sql中的regexp与like区别实现介绍
    1、REGEXP 用途:高级字符串匹配,使用正则表达式。 特点:灵活性强,能进行复杂模式匹配(如开头、结尾、字符集等)。 基本语法: 1
  • SQLServer日志收缩的两种方法

    SQLServer日志收缩的两种方法
    在日常运维中,有时会遇到The transaction log for database xxxx is full due to ACTIVE_TRANSACTION.这样的报错信息。 此错误消息表明:数据库的事务日志文
  • Sql Server查询卡顿的排查方法

    Sql Server查询卡顿的排查方法
    本篇为理论知识的分析以及对症下药,前阵子发生过Bug,后通过迁移服务器以及数据库最终才解决问题,但是细想当时可能是因为碎片或者
  • sql server安装及使用全流程

    sql server安装及使用全流程
    一、安装SQL Server 1.到微软官网下载SQL Server Developer版本,现在的最新版本是SQL Server 2019 Developer。微软官网传送门:点击此处直达 2.下载完成
  • SQL Povit函数使用及实例

    SQL Povit函数使用及实例
    PIVOT函数常用于数据的行转列,同时也可以用此函数实现类似于Excel中的数据透视表的效果。 PIVOT函数 PIVOT 函数的基本语法如下: 1 2 3 4 5
  • Navicat连接SQL server出现:[IM002] [Microsoft][ODBC 驱动

    Navicat连接SQL server出现:[IM002] [Microsoft][ODBC 驱动
    问题 解决方法 一 找到Navicat的安装路径,然后找到sqlncli_x64.msi文件并安装,安装成功后重启Navicat重新进行连接,看是否成功。 解决方法 二
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计