SQL SERVER 数据库设计与实现 2

                    第二章(数据库的实现)

使用SQL语句管理数据库

一、创建数据库 create database  数据库名称

 on

(   

   <数据文件参数> [,…n]  [<文件组参数>]

)

log on

(   

<日志文件参数> [,…n]

)

举例:

create database NetBarDB

on 

(  

   name='NetBar_data',         --主数据文件的逻辑名  

   filename='e:\NetBar_mdf.mdf',    --主数据文件的物理名

   size=3mb,               --主数据文件初始大小  

   maxsize=100mb,           --主数据文件增长的最大值  

   filegrowth=15%           --主数据文件的增长率

)

log on

(  

    name='NetBar_ldf',

    filename='e:\NetBar_ldf.ldf',  

   size=100mb,    

   filegrowth=1MB

)

go

EXEC 命令  

  1、调用存储过程

  2、调用系统命令    eg:dos命令

启用外围配置  

  exec sp_configure 'show advanced option',1   是否开启高级选项  

  reconfigure

   exec sp_configure 'xp_cmdshell',1

   reconfigure

   go  

  调用dos命令创建文件夹

   exec xp_cmdshell 'md E:\文件名', no_output   不输出

注:1表示开启

二、删除数据库  

  drop database 数据库名称  

  eg:如果数据库存在,则删除

   1、 if DB_ID('数据库名') is not null   drop database 数据库名

   2、if  exists (select * from sysdatabases where name='数据库名')     

  drop database 数据库名

使用SQL数据管理表

   一、更改表

     1、添加列  

       alter table 表名    

        add {字段  数据类型 字段特征}  

    eg:   alter table 表名   

           add StuSex(列的名称) varchar(20) null  

        注意:当表中有数据时,约束不能是 not null

   2、删除列  

       alter table 表名  

         drop column {字段}  

        eg: alter table Student    drop column StuSex(列的名称)

   3、修改列   

    alter table 表名  

        drop column 字段 数据类型[null/not null]

        eg:   修改列的数据类型、长度、精度

        alter table 表名   

       alter column StuSex(列的名称) int null   修改列的可空性

二、删除表  

  drop table 表  

  1、判断表是否存在

     if object_ID('表明','对象类型') is not null  

       drop table 表名  

      对象名:表名,约束名,存储过程名,视图名  对象类型:u(用户自定义类型) ,v(视图),c(check约束)

数据完整性  

   一、概念:   是确保数据正确性和一致性的机制

    二、类型

     1、域完整性:列(check、默认、非空、数据类型)

     2、实体完整性:行(主键、唯一键、标识列)

     3、参照完整性:引用(外键)  

    4、自定义完整性:(check)

约束

   一、约束的目的:   确保表中数据的完整型。

   二、添加约束   

       语法:  alter table 表名       

             add constraint 约束名称  约束类型  约束内容  

  eg:   主键约束 PK:alter table 表名   

                 add constraint PK_cardinfo_cardid(约束名称) primary key(cardid)  

        唯一约束 UQ:alter table 表名  

                 add constraint 约束名称 unique(字段)  

        默认值约束 DF:alter table 表名     

                add constraint 约束名称 default 默认值 for 字段  

        检查约束 CK:alter table 表名     

                add constraint 约束名称 check(逻辑表达式)  

        外键约束 FK:alter table 字表表名    

               add constraint 约束名称      foreign key(字表字段) references 主表表名(主表字段表)

    三、删除约束  

         alter table  表名    

          drop constraint 约束名称

数据库的安全管理  

    一、身份验证模式  

       1、windows 身份验证模式  

       2、混合验证模式  

            SQL Server验证

    二、登陆账号  

       1、创建账号    

          A、create login 登录名称 with password='登录密码'  

            B、exec SP_addlogin '登录名称','密码'   

      2、修改登录账号   

           alter login 原登录名称 with name='新的登录名称'   

      3、删除登录账号    drop login 登录名称

   三、创建具有操作权限的用户  

       1、创建数据库用户   

           A、create user 用户名 for login  登录名   

           B、exec Sp_adduser '登录名','用户名'  

       2、修改数据库用户   

           alter user 原用户名 with name=新用户名  

       3、删除数据库用户    

          drop user 用户名称  

       4、添加角色    

          A、create role rolename  角色名    

          B、exec Sp_addrole 'rolename'   

      5、把角色拥有的权限赋给用户   

          EXEC sp_adduser '登录名','用户名','角色'   

          EXEC sp_addrolename 'roleName','用户'

   四、授权   

      1、权限的种类   

         数据对象权限: 用户对数据对象的操作权限  DML语句权限    

        语句权限: 用户对某一语句的执行权限  DDL的语句    

        隐含权限; SQL Server内置的或在创建对象是自动生成的权限   

    2、用户权限管理    

      授予(grant):对用户授予某种权限    

          eg:grant all on 表 to 角色或用户    

      收回(revoke):对用户收回(即删除)已授予的权限    

          eg:revoke all on 表 to 用户    

      禁用(deny):禁止用户拥有某种权限    

         eg:deny all on 表 to 用户

原文地址:https://www.cnblogs.com/yuxiaoyanran/p/3060380.html