zoukankan      html  css  js  c++  java
  • SQL学习中(序)

      从校园中走出来已经两年多了,从最初的企业建站到现在的BPM流程开发,深深的感觉到自己底子很差,因此在园子里记录一下学过的知识,以此自勉。

      废话到此结束,今天就先来看一下CREATE CHEMA 语句。

         尽管大多数数据库操作是基于表结构进行的,但是数据库并不仅仅是数据表的集合。一个完整的数据库除了包含表以外,还要包括存储过程、自定义函数以及游标,这些都是用户创建的,此外还有索引和其他的一些方法,而这些方法是用户不能直接使用的。

        SQL标准将数据库用户划分为普通用户(USER)和管理员用户(ADMIN),模式对象的创建、修改、删除操作需要管理员权限,而普通用户则能够调用及查看模式对象。(权限)。

        概括起来讲,表、视图以及与其相关联的权限便是模式。

    --模式

        通过create chema语句可以一次性的创建一个完整的数据库模式,数据库模式必须包含名称和默认的字符集。

    (在当前数据库中创建架构。CREATE SCHEMA 事务还可以在新架构内创建表和视图,并可对这些对象设置 GRANT、DENY 或 REVOKE 权限。)(MSDN)

    例子:(SQLSERVER中)

    USE xtt_cms --在xtt_cms中创建
    GO
    CREATE SCHEMA PRACTICE --创建了PRACTICE架构
    CREATE TABLE USERS(USERID INT PRIMARY KEY,USERNAME VARCHAR(50))--包含表USERS
    CREATE TABLE NEWS(NEWSID INT PRIMARY KEY,NEWTITLE VARCHAR(200))--包含表USERS
    GRANT SELECT TO admin--为admin授予Select权限
    DENY SELECT TO xuett;--拒绝授予xuett Select权限
    Go

    ——创建包含两个表结构的数据库模式(PRACTICE)

    注意:允许包含 CREATE SCHEMA AUTHORIZATION 但不指定名称的语句存在,目的只是为了向后兼容。

    CREATE SCHEMA 事务是原子级的。如果 CREATE SCHEMA 语句执行期间出现任何错误,则不会创建任何指定的安全对象,也不会授予任何权限。

    由 CREATE SCHEMA 创建的安全对象可以任何顺序列出,但引用其他视图的视图除外。在这种情况下,被引用的视图必须在引用它的视图之前创建。

    因此,GRANT 语句可以在创建某个对象之前对该对象授予权限,CREATE VIEW 语句也可以出现在创建该视图所引用表的 CREATE TABLE 语句之前。同样,CREATE TABLE 语句可以在 CREATE SCHEMA 语句定义表之前声明表的外键。

  • 相关阅读:
    研究生
    linux下C++开发工具
    GCC and G++ install
    linux yum命令详解
    OpenCV:SURF算法浅析
    linux内核(kernel)版本号的意义
    常见排序算法
    bash:command not found
    C++ 面向对象(数据封装)
    HTML5 script 标签的 crossorigin 和integrity属性的作用
  • 原文地址:https://www.cnblogs.com/xtt321/p/3197114.html
Copyright © 2011-2022 走看看