导航

数据库的实现

Posted on 2013-05-05 22:28  好好学习 天天向上  阅读(192)  评论(0编辑  收藏  举报

一.执行存储过程和调用系统命令(EXECUTE)
   利用EXECUTE创建文件夹--启用外围配置
   EXEC SP_configure 'show advanced options',1
   reconfigure
   EXEC SP_configure 'xp_cmd shell',1
   reconfigure
   go

创建数据库 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


二.调用EXECUTE(dos)命令创建文件夹
   EXECUTE XP_cmdshell 'md E:文件夹名',no_output
   go
三.怎么判断数据库与表是否存在
  if DB_ID('数据库名') is not null
     drop database 数据库名
  go

  IF EXISTS(SELECT * FROM sys.sysdatabases WHERE [name]=‘数据库名) 

怎么判断表是否存在 

if object_id('表名') is not null

     drop table 表名

  go

  IF EXISTS(SELECT * FROM sys.sysobjects WHERE [name]=‘表名’)

 

四.切换数据库 

use   数据库名

   go

五.删除数据库

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

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

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

删除语句

  drop database 数据库名称

  如果数据库存在,则删除

两种判断语句

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

        drop database 数据库名称

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

    drop database 数据库名

 六.使用SQL数据管理表

  ( 1.更改表

     1、添加列

    alter table 表名  

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

    alter table 表名 

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

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

     2、删除列

       alter table 表名

         drop column {字段}

         alter table Student    drop column StuSex(列名)

  3、修改列 

    alter table 表名

        drop column 字段 数据类型[null]

        alter table 表名 

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

 ( 2 、删除表

  drop table 表

  1、判断表是否存在

     if object_ID('表名‘,'类型') is not null

       drop table 表名

七.SQL Server的约束:

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

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

  (1、添加约束  

       语法:  alter table 表名      

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

          主键(Primary Key)约束 PK:alter table 表名  

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

             唯一(Unique Key)约束 UQ:alter table 表名 

                 add constraint 约束名称 unique(字段) 

              默认(Default Key)约束 DF:alter table 表名    

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

                 检查(Check Key)约束 CK:alter table 表名    

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

                 外键(Foreign Key)约束FK:alter table 子表表名   

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

    (2、删除约束 

         alter table  表名   

          drop constraint 约束名称

八.数据库的安全管理 

    (1、身份验证模式 

       1、windows 身份验证模式 

       2、混合验证模式 

            SQL Server验证

      (2、登陆账号 

       1、创建账号   

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

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

      2、修改登录账号  

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

      3、删除登录账号  

                        drop login 登录名称

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

                  1、权限的种类 

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

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

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

      2、创建数据库用户  

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

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

       3、删除数据库用户   

          drop user 用户名称 

       4、添加角色   

          A、create role rolename  角色名   

          B、exec Sp_addrole 'rolename'  

                    为角色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

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

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

          EXEC sp_addrolename 'roleName','用户'

 

    2、用户权限管理   

   授予(grant) 收回(revoke)禁用(deny)

         如:    grant select on 表名(字段名) to 用户名
                  revoke all on 表名 to 用户名
                  deny all on 表名 to 用户名