zoukankan      html  css  js  c++  java
  • SQL SERVER 2 数据库实现

    1、创建数据库的语法

    create database 数据库名称

    on[primary]

     (

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

     )

     [LOG ON]

     (

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

     )

    注意:

    其中"[ ]"表示可选部分,而"{ }"表示需要部分

    创建数据库实例:

    create database NetBarDB

    on primary  --默认就属于primary主文件组,可省略

    (

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

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

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

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

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

    )

    创建数据库数据文件和日志文件的语法:

    CREATE     DATABASE   数据库名

    on

    {

      NAME=逻辑名称,

      FILENAME=物理文件名称,

      SIZE=文件大小,

      MAXSIZE=文件可长的最大大小,

      FILEGROWTH=自动增长量

    }

    log on

    {

      ………………………

    }

    2、删除数据库语法:

    drop database 数据库名称;

    删除多个数据库:

     drop database 数据库名称1,数据库名称2,...数据库名称n;

    注意:

    使用drop语句删除数据库将会删除

    磁盘中与将要删除的数据库相关的

    文件,如数据文件和日志文件

    删除数据库示例:

    if  exists (select * from sysdatabases where name='NetBarDB')

        drop database NetBarDB

    go 

    或者:

    if DB_ID('NetBarDB') is not null

      drop database NetBarDB

    go 

    3、创建表语法:

         create table 表名

         (

             字段1  数据类型  字段特征,

             字段2  数据类型  字段特征,

              ... ...

             字段n  数据类型  字段特征,

        )   

    4、修改表语法:

    添加列:

        alter table 表名

             add { 字段  数据类型  字段特征} [,...n]

    删除列:

        alter table 表名

             drop column {字段} [,...n]

    修改列:

        alter table 表名

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

    5、删除表的语法:

    DROP TABLE 表名

    6、SQL Server的约束:

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

    常用的约束类型:

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

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

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

    默认约束(Default Constraint):某列的默认值,如我们的男性学员较多,性别默认为“男”

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

    添加约束语法:

    alter table 表名

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

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

    主键(Primary Key)约束:如 PK_stuNo

    唯一(Unique Key)约束:如 UQ_stuID

    默认(Default Key)约束:如 DF_stuAddress

    检查(Check Key)约束:如 CK_stuAge

    外键(Foreign Key)约束:如 FK_stuNo

    删除约束:

    ALTER TABLE 表名 

          DROP CONSTRAINT 约束名

    7、实例:

    启动外围配置项:

    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

    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

    use UserDB

    go

    判断对象是否存在  对象:

    table trigger view proc

    if OBJECT_ID('Student','table') is not null  

      drop table Student go

    create table Student

    (

     StuNo int identity(1,1) primary key,

     StuName varchar(20) not null,

     ClaNo int not null

    )

    go

    if OBJECT_ID('Class','table') is not null

      drop table Class go

    create table Class

    (

     ClaNo int identity(1,1) primary key,

     ClaName varchar(20) not null,

    )

    新增一列

    alter table Student  

      add StuSex bit null

    go

    删除一列

    alter table Student

       drop column StuSex

    go

    修改一列

    alter table Student

      alter column StuSex int null

    go

    主键约束

    alter table Student

       add constraint PK_Student_StuNo primary key(StuNo)

    go

     唯一约束

    alter table Student  

      add constraint UQ_Student_StuName unique(StuName)

    go

    检查约束

    alter table Student

      add constraint CK_Student_StuName check(len(StuName) > 10)

    go

     默认值约束

    alter table Student

       add constraint DF_Student_StuName default 'zs' for StuName

    go

     外键约束

    alter table Student

      add constraint FK_Student_Class_ClaNo foreign key(ClaNo) references Class(ClaNo)

    go

    主键约束(Primary Key Constraint) PK  :要求主键列数据唯一,并且不允许为空 唯一约束(Unique Constraint) UQ :要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check Constraint)  CK :某列取值范围限制、格式限制等,如有关年龄的约束 默认约束(Default Constraint)DF :某列的默认值,如我们的男性学员较多,性别默认为“男” 外键约束(Foreign Key Constraint) FK  :用于两表间建立关系,需要指定引用主表的那列

    select * from Student insert into Student values('张三',0)

    权限

    create login zhangsan with password = '123456'

    create user zhangsan for login zhangsan

    grant revoke deny

    deny select on Student to zhangsan

    create role username grant select on Student to username

    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

  • 相关阅读:
    分享知识-快乐自己:Maven 相关原理
    分享知识-快乐自己:Struts2 前台日期到后台的日期格式转换
    分享知识-快乐自己:SSH 整合 Demo
    分享知识-快乐自己:Struts2 拦截器 与 过滤器
    是否可以重定向到 WEB-INFO 下的页面?
    分享知识-快乐自己:Caused by: org.hibernate.tool.schema.extract.spi.SchemaExtractionException: More than one table found in namespace (, ) : Dept (XXX)
    分享知识-快乐自己:Struts2 (常用的 constant 总结)
    分享知识-快乐自己:Maven 无法加载 Oracle 数据库驱动源
    Java的不同版本
    用VIM写作
  • 原文地址:https://www.cnblogs.com/yuchengping/p/3045109.html
Copyright © 2011-2022 走看看