zoukankan      html  css  js  c++  java
  • 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)文件或文件组备份:只备份文件或文件组中的某些文件

    备份操作

    完整备份

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

    差异备份

    先完整备份,再差异备份

    还原操作

    完整备份还原

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

    差异备份还原

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

    再还原差异

    暂时就到这儿

    好记性不如烂笔头,最难不过坚持
  • 相关阅读:
    WCF和Socket
    MBA-数学
    80端口被占用
    linux系统root密码忘了怎么办 三种方法快速找回root密码
    px、em、rem、%、vw、wh、vm等单位有什么区别?
    知道id如何进入
    查询两个时间段间隔多久的数据
    jsp中的判断
    判断手机登陆还是电脑登陆
    配置pom.xml、spring.xml、spring-mvc.xml、spring-mybatis.xml、web.xml
  • 原文地址:https://www.cnblogs.com/dannylinux/p/15724705.html
Copyright © 2011-2022 走看看