zoukankan      html  css  js  c++  java
  • 数据库的实现

    ---恢复内容开始---

    数据库名称:必须唯一,且长度不能超过128个字符

    --示例

    --启动外围配置项

    exec sp_configure 'show advanced options',1

    reconfigure

    exec sp_configure 'xp_cmdshell',1

    reconfigure

    go

    -- 调用dos命令创建文件夹

    exec xp_cmdshell 'md E:\user',no_output go --不输出

    --判断是否存在数据库

    if DB_ID('UserDB') is not null

     drop database UserDB

    /*

        if exists(select * from sys.sysdatabases where [name]='UserDB')

             drop databse UserDB

    */

    go

    --创建数据库

    create database UserDB

    on

    (

     name = userdb,

     filename = 'E:\user\userdb.mdf',

     size = 10MB,   -- KB  MB GB TB

     maxsize = unlimited, --没有上限

     filegrowth = 1MB  

    )  

    log on --日志文件

    (

     name = userdb_log,

     filename = 'E:\user\userdb_log.ldf',

     size = 3MB,  

    maxsize = 10MB,

     filegrowth = 10%

    )

    go

    常用的约束类型:

    主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空

    唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。

    检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束

    默认约束(Default Constraint):某列的默认值

    外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的那列

    约束名的取名规则推荐采用:约束类型_约束字段

    ALTER  TABLE  表名

    ADD CONTRAINT 约束名称  PRIMARY KEY (字段)

    举例: 外键约束

       alter table Locations   --从表                            

         add constraint FK_Locations_Countries_Country_Id foreign key(Country_Id) references Countries(Country_Id)  --主表

    添加:

       alter table 表

            add 字段(如:name varchar(20) not null)

    删除列:

       alter table 表

            drop  column 列名

    修改列:

       alter table 表

            alter column 字段 数据类型 [null|not null]

    数据完整性: 确保数据完整性和一致性的机制

        域完整性:数据类型检查约束,输入格式,默认值,非空约束

        实体完整性: 主键 (是唯一标识,不为空),唯一索引,表识字段

         参照完整性:引用完整性

         用户自定义完整性:规则,触发器,表约束

    SQLServer 添加用户 添加角色 分配权限

    --创建一个简单的登录,登录名为:newlogin;登录密码:123456;默认数据库:master,默认数据库也可以不指定。

    EXEC sp_addlogin 'newlogin','123456','master'

     

    --创建用户

    --创建一个简单的用户,如果不指定用户名,则添加到当前数据库登录名中,如果不指定角色,则该用户默认属于public角色。下为添加newlogin登录名。

    EXEC sp_adduser 'newlogin'

    --创建一个带用户名的用户,用户可以与登录名相同(同上一种类似),也可以不同,但要设定当前登录名,用户角色可选,默认为public。下为将用户newuser添加到newlogin登录名中。

    EXEC sp_adduser 'newlogin','newuser'

     

    --创建角色

    EXEC sp_addrole 'newrole'

    --下为将用户下为将用户newuser添加到newlogin登录名中。并指定newrole角色。

    EXEC sp_adduser 'newlogin','newuser','newrole'

     

    --为角色newrole赋予jobs表的所有权限

    GRANT ALL ON jobs TO newrole

    --为角色newrole赋予sales表的查、改权限

    GRANT SELECT,UPDATE ON sales TO newrole

    --禁止角色newrole使用employees表的插入权限

    DENY INSERT ON employees TO newrole

     

    另一种创建用户和赋予角色的方式

    --为登录newlogin在数据库中添加安全账户newuser

    EXEC sp_grantdbaccess 'newlogin','newuser'

    --添加newuser为角色newrole的成员

    EXEC sp_addrolemember 'newrole','newuser'

     

    --数据库用户、角色、登录的删除操作

    --删除当前数据库用户

    EXEC sp_revokedbaccess 'newuser';

    --删除数据库登录

    EXEC sp_droplogin 'newlogin'

    --删除数据库角色

    EXEC sp_droprole 'newrole'

    --从数据库角色(newrole)中删除用户(newuser)

    EXEC sp_droprolemember 'newrole', 'newuser'

    --SQL代码新建登录、用户

    --创建带密码的mylogin登录名,MUST_CHANGE 选项需要用户首次连接服务器时更改此密码。

    CREATE LOGIN mylogin WITH PASSWORD = '123456' MUST_CHANGE;

    --创建映射到凭据的登录名。

    --以下示例将创建mylogin登录名。此登录名将映射到mycredential凭据。

    CREATE LOGIN mylogin WITH PASSWORD = '123456',

    CREDENTIAL = mycredential;

    --Windows 域帐户创建登录名

    --如果从Windows 域帐户映射登录名,则登录名必须用方括号([ ]) 括起来。

    CREATE LOGIN [jack\xiangzhao] FROM WINDOWS;

    --如果指定用户名,则不使用默认登录名作为该数据库用户

    CREATE USER myuser FOR LOGIN mylogin

    --以下示例将创建用户myuser拥有的数据库角色myrole

    CREATE ROLE myrole AUTHORIZATION myuser;

    --以下示例将创建db_role固定数据库角色拥有的数据库角色myrole

    CREATE ROLE myrole AUTHORIZATION db_role

     

  • 相关阅读:
    cocos2d-x 3.0rc1 编译cpp-testsproject
    [wxWidgets]_[0基础]_[不常见但有用的类wxStandardPaths]
    教你摆脱低级程序猿 项目中cocopads的安装使用
    Android使用代码模拟HOME键的功能
    UVA 1508
    asp.net mvc5 安装
    Java_并发线程_Semaphore、CountDownLatch、CyclicBarrier、Exchanger
    crm操作产品实体
    BZOJ 3172 [Tjoi2013]单词 AC自己主动机(fail树)
    ADO与ADO.Net
  • 原文地址:https://www.cnblogs.com/shuaif/p/3063959.html
Copyright © 2011-2022 走看看