sqlserver数据库使用

特点:真正的客户机/服务器体系结构

      图形化用户界面

      丰富的编程接口工具

      与Windows NT完全集成

      具有很好的伸缩性

应用场景:

主机为Windows系统,主要应用于web网站的建设,承载中小型web后台数据。

 

一、启动方式:

三种

1.后台启动

 

 

 

 

2.sqlserver配置管理器启动

 

 

 

3.在运行窗口使用命令启动

net start mssqlserver

net stop mssqlserver

 

二、登录验证

 

 1.windows验证

 

2.账号密码验证

需要先使用windows验证登录后在安全性栏对应角色属性中创建密码,然后就可以使用密码登录了

 

 

 

 

 启动账户

 

 

用户映射

 

允许远程访问 

    1 右击自己数据库的连接名

      选择 “方面”
    2 在右上侧 方面框中, 选择“服务器配置”
    3 在下面的方面属性列表中,向下滚动找到以下两项,均设置为  true 
     RemoteAccessEnabled    True
     RemoteDacEnabled      True

 

 

三、数据库管理

数据库文件在磁盘上的存储形式

主数据文件:*.mdf (一个库只能有一个)

辅数据文件:*.ndf

日志文件:*.ldf

 

 

创建数据库

1.视图创建数据库(默认工具创建)--略

2.sql语句创建

复制代码
USE master --指向当前使用的数据库
GO --批处理的标志

IF EXISTS(SELECT * FROM sysdatabases WHERE name='E_Market')
DROP DATABASE E_Market

CREATE DATABASE E_Market --创建E_Market数据库
ON PRIMARY --主文件组
(       
    NAME='E_Market_data', --主文件逻辑文件名
    --主文件物理文件名
    FILENAME='D:\project\E_Market_data.mdf',
    SIZE=5MB, --主文件初始大小
    MAXSIZE=100MB, --主文件增长的最大值
    FILEGROWTH=15% --主文件的增长率
)
LOG ON --日志文件
(
    NAME='E_Market_log', --日志文件逻辑文件名
    FILENAME='D:\project\E_Market_log.ldf', --日志物理文件名
    SIZE=5MB, --日志文件初始大小
    FILEGROWTH=0 --未启用自动增长
)
GO
复制代码

 

创建多个数据文件和多个日志文件

复制代码
USE master
GO
CREATE DATABASE E_Market
ON PRIMARY --主文件组
(
    NAME='E_Market_data',
    FILENAME='D:\project\E_Market_data.mdf',
    SIZE=10MB,
    FILEGROWTH=10%,
    MAXSIZE=500MB
), --第一个文件组结束
FILEGROUP FG --第二个文件组,组名:FG
(
    NAME='FG_E_Market_data',
    FILENAME='D:\project\FG_E_Market_data.ndf',
    SIZE=10MB,
    FILEGROWTH=0
)

--日志文件不属于任何文件组
LOG ON
(
    NAME='E_Market_log',
    FILENAME='D:\project\E_Market_log.ldf',
    SIZE=5MB,
    FILEGROWTH=0
),
--日志2的具体描述
(
    NAME='E_Market_log1',
    FILENAME='D:\project\E_Market_log1.ldf',
    SIZE=5MB,
    FILEGROWTH=0
)
GO
复制代码

 

向现有数据库中添加文件组和数据文件

方法一:

在视图下添加文件组和数据文件

数据库-->属性-->文件组-->添加

数据库-->属性-->文件-->添加

 

方法二:

使用SQL语句添加文件组和数据文件

复制代码
USE E_Market
--添加文件组FG1
ALTER DATABASE E_Market ADD FILEGROUP FG1
GO
--为新建的文件组FG1添加数据文件
ALTER DATABASE E_Market ADD FILE
(
    NAME='FG1_E_Market_data',
    FILENAME='D:\project\FG1_E_Market_data.ndf',
    SIZE=5MB,
    FILEGROWTH=10%
)TO FILEGROUP FG1
GO
--将文件组FG1设为默认文件组
ALTER DATABASE E_Market
MODIFY FILEGROUP FG1 DEFAULT
GO
复制代码

 

删除数据库(谨慎)

方法一:

在视图下删除数据库

数据库-->删除-->勾选删除数据库备份和还原历史记录信息和关闭现有连接

 

方法二:

SQL语句删除数据库

USE master --指向当前所操作的数据库
--删除数据库
DROP DATABASE E_Market
GO

IF EXISTS(SELECT * FROM sysdatabases WHERE name='E_Market')
DROP DATABASE E_Market
GO

 

 

四、数据库用户管理

1、视图方式

创建数据库登录名

安全性-->右键新建登录名

 

创建数据库用户

每一个用来登录sqlserver的登录名都是一个用户

数据库-->安全性-->新建用户

用户名再与登录名关联

 

步骤:

先建登录名

再创建数据库用户

 

也可以在创建登录名的时候关联到数据库用户(使用用户映射)

 

 

为数据库用户赋权

要操作的数据库-->安全性-->用户-->右键属性-->安全对象-->搜索--添加对象、赋权

 

 

2、SQL方式创建登录名及为用户赋予权限

#创建登录名
CREATE LOGIN <登录名> WITH PASSWORD=<'密码'>

#创建数据库用户
CREATE USER 数据库用户 FOR LOGIN 登录名

#为数据库用户赋予权限
GRANT 操作权限 ON 表名 TO 用户名

 

示例:

复制代码
--创建登录名
USE master
GO
CREATE LOGIN PbMaster WITH PASSWORD='123456'
GO


--创建数据库用户
USE E_Market
GO
CREATE USER MasterDBUser FOR LOGIN PbMaster
GO


--为数据库用户赋权(查看、新增、修改)
USE E_Market
GO
GRANT SELECT,INSERT,UPDATE ON UserInfo_table TO MasterDBUser
GO


--回收UPDATE权限
USE E_Market
GO
REVOKE UPDATE ON UserInfo_table TO MasterDBUser
GO
复制代码

 

 

角色

 

 

服务器角色

 

 

使用自定义登录名登录后,默认只有Pubic服务器角色,初始状态时没有权限,所有数据库用户都是其成员。

给数据库用户赋予创建和修改数据库的角色

安全性-->登录名-->右键属性-->服务器角色-->勾选dbcreator角色

 

 

数据库用户角色

 

还有个默认的Pubic数据库角色,特殊的固定的数据库用户,每个数据库用户都数据pubic数据库角色

 

给自定义数据库用户赋予db_owner数据库角色

要操作的数据库-->安全性-->用户-->右键属性-->常规-->数据库角色成员身份

 

也可以自定义数据库角色--略

 

 

五、数据库的维护

 

 1.数据库状态

  1)使用sql语句查看数据库状态

select state_desc from sys.databases where name='E_Market'

  2)使用DATABASEPROPERTYEX(database,property)函数

select DATABASEPROPERTYEX('E_Market','status')

  3)将数据库设为"脱机"状态(然后就可以复制该数据库文件了)

  要操作的数据库-->右键任务-->脱机

 

 2.分离与附加数据库

  1)分离数据库

    在视图下:

     要操作的数据库-->右键任务-->分离

    

 

     使用存储过程(SQL方式):      

EXEC sp_detach_db @dbname=E_Market
GO

  

2)附加数据库

    在视图下:

    数据库-->右键附加-->添加-->指定主数据文件的名称

   

 

      使用存储过程(SQL方式): 

EXEC  sp_attach_db  @dbname=E_Market,
@filename1='H:\project\E_Market_data.mdf',
@filename2='H:\project\E_Market2_data.ndf',
@filename3='H:\project\E_Market_log.ldf',
@filename4='H:\project\E_Market2_log.ldf'
GO

 

脱机与分离数据库的异同点

  相同点:

    都可以对数据库文件进行复制

  不同点:

    脱机:与数据库服务断开连接,但在数据库节点上还存在脱机的数据库名称。

    分离:将数据库从服务器上分离出去,数据库不存在,只存在对应的数据文件和日志文件。

 

 

3.收缩数据库

  删除数据库的每个文件中已经分配但还没有使用的页,收缩后数据库空间自动减少

收缩方式

  自动收缩数据库

  要操作的数据库-->属性-->选项

 

 

  手动收缩数据库

要操作的数据库-->右键任务-->收缩数据库

 

要操作的数据库-->右键任务-->收缩文件

 

 

 

4.数据库的备份与还原

sqlserver提供四种数据库备份方式

  1)完整备份:备份整个数据库的所有内容包括事务日志

  2)差异备份:只备份上次完整备份后更改的数据部分

  3)事务日志备份:只备份事务日志里的内容

  4)文件或文件组备份:只备份文件或文件组中的某些文件

 

备份操作

完整备份

要操作的数据库-->右键任务-->备份

 

 

差异备份

先完整备份,再差异备份

 

 

 

还原操作

完整备份还原

数据库-->右键还原数据库

 

 

差异备份还原

先还原完整备份(需要做设置,先不回滚)

再还原差异

 

 

暂时就到这儿

 

posted @   叮伱格斐呃  阅读(878)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
Live2D
欢迎阅读『sqlserver数据库使用』
点击右上角即可分享
微信分享提示