精华内容
下载资源
问答
  • MySQL中,在两个或者以上的基本创建视图 在student表和stu_info上,创建stu_class视图,查询出s_id号、姓名班级 首先,创建stu_info,并向中插入数据 查看中的数据 创建stu_class视图 查看视图 ...
  • 创建视图 视图包含应用的 HTML 代码,并将应用的控制器逻辑表现逻辑进行分离。视图文件存放在 resources/views 目录中。下面是一个简单的视图示例: <!-- resources/views/greeting.blade.php 视图文件 -->...
  • 创建视图 视图包含应用的 HTML 代码,并将应用的控制器逻辑表现逻辑进行分离。视图文件存放在 resources/views 目录中。下面是一个简单的视图示例: &lt;!-- resources/views/greeting.blade.php 视图文件 ...

    创建视图

    视图包含应用的 HTML 代码,并将应用的控制器逻辑和表现逻辑进行分离。视图文件存放在 resources/views 目录中。下面是一个简单的视图示例:

    <!--  resources/views/greeting.blade.php 视图文件 -->
    
    <html>
        <body>
            <h1>Hello, {{ $name }}</h1>
        </body>
    </html>
    

    可以通过辅助函数 view ,返回这个视图响应:

    Route::get('/', function () {
        return view('greeting', ['name' => 'jack']);
    });
    

    view 方法的第一个参数是 resources/views 目录下相应的视图文件的名称,第二个参数是一个数组,表示传递给视图文件的数据。

    在这个例子中,我们传递了一个 name 变量,在视图中通过使用 Blade 语法将其显示出来。

    当然,视图还可以存放在 resources/views 的子目录中,用“.”号来引用子目录中的视图。

    例如,如果视图存放路径是 resources/views/admin/profile.blade.php,那么我们可以这样引用它:

    return view('admin.profile', $data);
    

    判断视图是否存在

    如果需要判断视图是否存在,可调用 View 门面上的 exists 方法,如果视图存在则返回 true:

    use Illuminate\Support\Facades\View;
    
    if (View::exists('emails.customer')) {
        //
    }
    

    创建第一个有效视图

    调用 View 门面上的 first 方法,可以用于创建给定视图数组中的第一个存在的视图:

    use Illuminate\Support\Facades\View;
    
    return View::first(['custom.admin', 'admin'], $data);
    

    这个功能在应用或扩展包允许视图被自定义或覆盖时很有用。

    传递数据到视图

    可以简单通过数组方式将数据传递到视图:

    return view('greeting', ['name' => 'jack']);
    

    除此之外,还可以通过 with 方法传递独立的数据片段到视图:

    $view = view('greeting')->with('name', 'jack');
    

    在视图间共享数据

    有时候,我们需要在所有视图之间共享数据片段,这时可以使用视图门面的 share 方法,通常,需要在某个服务提供者的 boot 方法中调用 share 方法,你可以将其添加到 AppServiceProvider 或生成独立的服务提供者来存放这段代码逻辑:

    <?php
    
    namespace App\Providers;
    
    use View;
    
    class AppServiceProvider extends ServiceProvider
    {
        /**
         * 启动所有应用服务
         *
         * @return void
         */
        public function boot()
        {
            View::share('key', 'value');
        }
    
        /**
         * 注册服务提供者
         *
         * @return void
         */
        public function register()
        {
            //
        }
    }
    

    视图 Composer

    视图 Composer 是当视图被渲染时的回调函数或类方法。

    如果你有一些数据需要在视图每次渲染时都做绑定,可以使用视图 Composer 将逻辑组织到一个单独的地方。

    在本例中,首先要在某个服务提供者中注册视图 Composer,我们将会使用 View 门面来访问 Illuminate\Contracts\View\Factory 的底层实现,记住,Laravel 不会包含默认的视图 Composer 目录,我们可以按照自己的喜好组织其路径,例如可以创建一个 app/Http/ViewComposers 目录:

    <?php
    
    namespace App\Providers;
    
    use Illuminate\Support\Facades\View;
    use Illuminate\Support\ServiceProvider;
    
    class ComposerServiceProvider extends ServiceProvider
    {
        /**
         * 在容器中注册绑定.
         *
         * @return void
         */
        public function boot()
        {
            // 使用基于类方法的 composers...
            View::composer(
                'profile', 'App\Http\ViewComposers\ProfileComposer'
            );
    
            // 使用基于回调函数的 composers...
            View::composer('dashboard', function ($view) {});
        }
    
        /**
         * 注册服务提供者.
         *
         * @return void
         */
        public function register()
        {
            //
        }
    }
    

    注:如果创建一个新的服务提供者来包含视图 Composer 注册,需要添加该服务提供者到配置文件 config/app.php 的 providers 数组中。

    现在我们已经注册了视图 Composer,每次 profile 视图被渲染时都会执行 ProfileComposer@compose 方法,接下来我们来定义该 Composer 类:

    <?php
    
    namespace App\Http\ViewComposers;
    
    use Illuminate\View\View;
    use Illuminate\Repositories\UserRepository;
    
    class ProfileComposer
    {
        /**
         * 用户仓库实现.
         *
         * @var UserRepository
         */
        protected $users;
    
        /**
         * 创建一个新的属性composer.
         *
         * @param UserRepository $users
         * @return void
         */
        public function __construct(UserRepository $users)
        {
            // 依赖注入通过服务容器自动解析...
            $this->users = $users;
        }
    
        /**
         * 绑定数据到视图.
         *
         * @param View $view
         * @return void
         */
        public function compose(View $view)
        {
            $view->with('count', $this->users->count());
        }
    }
    

    视图被渲染前,Composer 类的 compose 方法被调用,同时 Illuminate\View\View 实例被注入该方法,从而可以使用其 with 方法来绑定数据到视图。

    注:所有视图 Composer 都通过服务容器被解析,所以你可以在 Composer 类的构造函数中声明任何你需要的依赖。

    添加 Composer 到多个视图

    你可以传递视图数组作为 composer 方法的第一个参数来一次性将视图 Composer 添加到多个视图:

    View::composer(
        ['profile', 'dashboard'],
        'App\Http\ViewComposers\MyViewComposer'
    );
    

    composer 方法还支持 * 通配符,允许将一个 Composer 添加到所有视图:

    View::composer('*', function ($view) {
        //
    });
    

    视图创建器

    视图创建器和视图 Composer 非常类似,不同之处在于前者在视图实例化之后立即失效而不是等到视图即将渲染。

    使用 View 门面的 creator 方法即可注册一个视图创建器:

    View::creator('profile', 'App\Http\ViewCreators\ProfileCreator');
    展开全文
  • 视图 视图定义: 基于多的预定义查询,这些称为基表 可以通过视图对基表进行DML操作 在视图中检索信息与从基表中检索信息方法完全相同注意...限制用户只能访问基表的部分数据,实现安全性创建视图 create

    视图
    视图定义:
    基于多表的预定义查询,这些表称为基表
    可以通过视图对基表进行DML操作
    在视图中检索信息与从基表中检索信息方法完全相同

    注意:视图不存在数据,算是个虚表,视图只会访问基表的行

    适用于:检查检索数据

    优点:
    限制用户只能通过视图检索数据,使用户看不到底层基表
    将复杂查询编写为视图,降低sql的复杂性
    限制用户只能访问基表的部分数据,实现安全性

    创建视图
    create [or replace] [force| noforcce] view 视图名【(别名,【别名】….)】
    as
    子查询(不能包含order by)
    【with {check option | read only }【constraint 约束名】】

    force:如果基表不存在,创建视图就会失败。但是可以使用force选项强制创建视图

    noforcce:基表存在,才能创建视图

    with check option :所插入的数据或者修改的数据行必须满足视图定义的约束条件,也就是说子查询的数据在插入视图中时,必须满足视图定义的约束条件
    约束条件为子查询定义的where 条件
    这里写图片描述
    这里写图片描述

    with read only :保证该视图不能进行任何的DML操作

    replace:如果有视图存在,就替换

    案列

    这里写图片描述

    这里写图片描述

    注意:子查询可以多表连接,返回的结果作为视图的数据

    视图的表结构
    desc + 视图名
    这里写图片描述

    创建视图的语句
    select view_name,text from user_views;
    view_name:视图名
    text :创建视图的语句
    这里写图片描述

    查看视图哪些列是可以进行DML操作
    select column_name,updatable,insertable,deletable from user_updatable_columns
    where table_name=upper(‘vstu’);
    table_name:视图名称

    这里写图片描述

    展开全文
  •  2、视图中被修改的列必须直接引用列中的基础数据。不能通过任何其他方式对这些列进行派生,如通过以下方式:  1)聚合函数:AVG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、VAR VARP。  2)计算...
  • MySQL入门 SQL语言之十七:视图的使用、创建、修改、删除,视图更新数据视图和表的对比 #视图 /*含义:虚拟,和普通一样使用,数据来自定义视图的使用的原始,并且是动态生成的,只保存sql逻辑,不保存查询...

    MySQL入门 SQL语言之十七:视图的使用、创建、修改、删除,视图更新数据,视图和表的对比

    #视图
    /*

    含义:虚拟表,和普通表一样使用,数据来自定义视图的使用的原始表,并且是动态生成的,只保存sql逻辑,不保存查询结果。
    mysql5.1版本出现的新特性,是通过表动态生成的数据

    应用场景:
    多个地方用到了相同的查询结果
    该查询结果使用的sql语句较为复杂

    比如:舞蹈班和普通班的对比,舞蹈班来自于普通班,在MySQL中就是查询普通班的结果集,可以把这个结果集变为一个动态的表,下次来查询的时候,可以直接查结果集。

    使用视图的好处:
    1.重用sql语句
    2.简化复杂的sql操作,不必知道查询细节
    3.保护数据,提高安全性(只能看视图,却不知道视图的原始表(数据)来自于哪里,或者有哪些列字段,只提供关键信息供其他人调用)

    视图和表的对比

     创建语法的关键字 是否实际占用物理空间  使用上
    视图create view 只是保存sql逻辑   增删改查(一般不能增删改)
    表 create table保存了数据 增删改查


    */
    DESC stuinfo;
    #案例:查询性张的学生名和专业名
    SELECT stuName,majorName
    FROM stuinfo s
    INNER JOIN major m ON s.`marjorId` = m.`id`
    WHERE s.`stuName` LIKE '张%';

    CREATE VIEW v1
    AS
    SELECT stuName,majorName
    FROM stuinfo s
    INNER JOIN major m ON s.`marjorId` = m.`id`
    WHERE s.`stuName` LIKE '张%';

    SELECT * FROM v1 WHERE stuName LIKE '张%';

    #一、创建视图
    /*

    语法:
    create view 视图名
    as 查询语句;(一般是一个比较复杂语句)
    */
    #1.查询姓名中中包含a字符的员工名、部门名和工种信息
    #①创建

    CREATE VIEW myv1
    AS
    SELECT last_name,department_name,job_title
    FROM employees e
    LEFT JOIN departments d ON e.department_id = d.department_id
    LEFT JOIN jobs j ON j.job_id = e.job_id;
    #②使用
    SELECT * FROM myv1 WHERE last_name LIKE '%a%';

    #2.查询各部门的平均工资级别
    #创建视图查看每个部门的平均工资

    CREATE VIEW myv2
    AS 
    SELECT AVG(salary) ag,department_id
    FROM employees e
    GROUP BY department_id
    #②使用
    SELECT myv2.`ag`,g.grade_level
    FROM myv2 
    LEFT JOIN job_grades g ON myv2.`ag` 
    BETWEEN  g.`lowest_sal` AND g.`highest_sal`;

    #3.查询平均工资最低的部门信息
    SELECT * FROM myv2
    ORDER BY ag LIMIT 1;

    #4.查询平均工资最低的部门名和工资
    CREATE VIEW myv3
    AS
    SELECT * FROM myv2 ORDER BY ag LIMIT 1;

    SELECT d.*,m.ag
    FROM myv3 m
    LEFT JOIN departments d ON d.`department_id` = m.`department_id`


    #二、视图的修改
    #方式一:
    /*
    create or replace view 视图名
    as
    查询语句;
    */

    CREATE OR REPLACE VIEW myv3
    AS
    SELECT AVG(salary),job_id
    FROM employees
    GROUP BY job_id;

    #方式二:
    /*
    alter view 视图名
    as
    查询语句;
    */

    ALTER VIEW myv3
    AS
    SELECT * FROM employees;

    #三、删除视图
    /*
    语法:drop view 视图名,视图名,...;
    */

    DROP VIEW myv1,myv2,myv3;

    #四、查看视图结构
    DESC myv3;
    SHOW CREATE VIEW myv3;

    #视图的更新(更改视图中的数据)

    CREATE OR REPLACE VIEW myv1
    AS
    SELECT last_name,email
    FROM employees;

    SELECT * FROM myv1;
    SELECT * FROM employees;
    #1.插入数据
    INSERT INTO myv1 VALUES('张飞','zf@qq.com');

     

    #2.修改数据
    UPDATE myv1 SET last_name = '张无忌' WHERE last_name = '张飞';

    #3.删除
    DELETE FROM myv1 WHERE last_name = '张无忌';

    /*
    视图可更新性和视图中查询的定义有关系,一下类型的视图是不能更新的。
    1.包含一下关键字的sql语句:分组函数、distinct、group by、having、union或union all
    2.常量视图
    3.select中包含子查询
    4.join
    5.from一个不能更新的视图
    6.where子句的子查询引用了from子句的表

    */
    #1
    CREATE OR REPLACE VIEW myv1
    AS
    SELECT MAX(salary) m,department_id
    FROM employees
    GROUP BY department_id;
    #更新
    UPDATE myv1 SET m = 9000 WHERE department_id=1;#更新失败:The target table myv1 of the UPDATE is not updatable

    #2.常量视图
    CREATE OR REPLACE VIEW myv2
    AS
    SELECT
    'john' NAME;
    #更新
    UPDATE myv2 SET NAME = '11';

    #3.select 中包含子查询
    CREATE OR REPLACE VIEW myv3
    AS
    SELECT (SELECT MAX(salary) FROM employees) 最高工资;
    #更新
    UPDATE myv3 SET 最高工资 = 10000;

    #4.join.注:不一定要用到join,只要是链接就算。
    CREATE OR REPLACE VIEW myv4
    AS
    SELECT last_name,department_name
    FROM employees e
    JOIN departments d
    ON e.department_id  = d.department_id

    #更新
    UPDATE myv4  SET last_name = '张飞' WHERE last_name = 'Whalen'
    INSERT INTO myv4 VALUES('陈真','dddd');
    #可以updatea,但不能插入和删除

    #5.from一个不能更新视图
    CREATE OR REPLACE VIEW myv5
    AS
    SELECT * FROM myv3;
    #更新
    UPDATE myv5 SET 最高工资 = 10000;

    #6.where子句的子查询引用了from子句中的表
    CREATE OR REPLACE VIEW myv6
    AS
    SELECT last_name,email,salary
    FROM employees
    WHERE employee_id IN (
        SELECT DISTINCT manager_id 
        FROM employees
        WHERE manager_id IS NOT     NULL
    );

    #更新
    UPDATE myv6 SET salary = 10000 WHERE last_name = 'K_ing';

    展开全文
  • Oracle之数据字典、空间、的操作、视图

    知识点引用:

    http://www.2cto.com/database/201207/142874.html
    http://blog.csdn.net/haiross/article/details/11772847

    一. 彻底卸载Oracle

    方式1、重装操作系统

    方式2、

    2.1 DBCA删除数据库
       开始 → 程序 → Oracle → 开发与移植工具 → Database Configuration Assistant → 下一步 → 删除数据库(系统会同时删除OracleService+SID)
    
    2.2 Oracle Universal Installer 删除Oracle一部分组件
       开始 → 程序 → Oracle →  Oracle Installation Products → Universal Installer → 卸载产品
    
    2.3 手动删除Oracle的其他组件
        2.3.1 Oracle注册表
           运行 → regedit → 搜索(ctrl + F) → 删除以以下单词开头的文件inst_loc、ora、oracle、orcl、enumora
        2.3.2 环境变量
           path、classpath、oracle_home、oracle_sid、tns_admin等
        2.3.3 重启操作系统
        2.3.4 删除安装目录
           inst_loc 所在位置
           C:\Users\user\AppData\Local\Temp
        2.3.5 删除启动菜单
    

    二. 数据字典(Data Dactionary)

    存放于system表空间,Oracle数据库的核心组成部分,主要作用是存放数据库相关的信息,存储的信息主要包括:用户信息、表空间、数据文件信息、数据库对象(表、视图、序列、存储过程等)、权限、角色信息、完整性约束信息、以及其他与数据库相关的信息。数据字典的组成部分主要有一些表和一些视图,创建数据库是Oracle会自动创建。

    其中表是真正存放数据的地方。数据以加密的形式存在,数据不需要用户维护,用户也无权操作,由Oracle自己维护。

    视图是在表的基础上创建的,数据来源于表,加工处理后形成自己的数据。当表中的数据信息发生改变时,视图数据会自动发生改变。下面列举一些常用的视图:

    视图的名称规律如下:
        user_xxx 当前用户可以访问,当前用户相关的数据
        dba_xxx 只有dba用户可以访问,所有用户相关的数据
        all_xxx 有权限访问的用户可以访问,有权限访问的用户相关的数据
    
    常用的视图
         user_tables 当前用户的表信息
         dba_tables 所有用户的表信息
         user_sys_privs 当前用户的系统权限
         user_role_privs 当前用户的角色
         role_sys_privs 角色权限信息
         dictionary | dict 提供了数据字典中所有视图的描述
         dba_sys_privs 所有用户的系统权限
         dba_role_privs 所有用户的角色
         user_users 当前用户的信息
         dba_users 所有用户的信息
    
    oracle中,创建视图的基本方式是:
        create or replace view  视图名称  as  + 查询语句
    
    用sql语句查看oracle视图创建语句:
    
        1.查看所有视图的名字
        select view_name from all_views; 或者select view_name from user_views;
    
        2.查看某视图名为“某某视图”的创建语句
        select text from all_views where view_name = '某某视图';
    

    对象本身的信息都是存放在数据字典中,表的结构信息是放在数据字典中的,表的数据放在默认或指定的表空间下的数据文件中。

    附录一:Oracle语句练习

    三、表空间(tablespace)

    代码实例详见附录二

    数据库指的就是一些文件,文件在硬盘上,一个数据库由若干个表空间组成,一个表空间由若干个数据文件组成,一个数据文件由若干个分区组成。其中分区(extend)为逻辑结构,人为虚构的,一个分区是数据我文件中一段连续的存储空间。数据文件(datafiles)是数据的物理载体,后缀名为.dbf,数据库中的所有数据都存放在数据文件中,数据文件不可以过大,过大会影响数据的存取性能。

    表空间是逻辑结构,并不是物理分割成的,数据库创建的时候,自动创建:
    系统表空间system:数据字典使用的就是该表空间
    零食表空间temp:主要用于排序

    创建自定义表空间
        create tablespace 表空间名 datafile 'D://myfile.dbf(数据文件路径)' size xM(文件大小),… extent management local uniform size yM(容量大小);
        datafile 用于指定创建的表空间下的数据文件
        extent manager local 用于指定表空间的管理为本地管理,要求分区,大小一致
        uniform 用于指定分区的统一大小
    
    查找某张表使用的表空间
       select tablespace_name from user_tables where table_name = '表名';
       select tablespace_name from dba_tables where table_name = '表名';
    
    查找默认表空间'USERS'有哪些文件
       select file_name from dba_data_files where tablespace_name = 'USERS';
    
    查找用户的默认表空间
       select default_tablespace from user_users; 当前用户
       select default_tablespace from dba_users; 所有dba用户
    
    扩充表空间
       alter tablespace 表空间名 add datafile '数据文件路径' size xxM(大小);
    
    创建用户的时指定表空间
       create user username identified by password [account lock | unlock][password expire(设置密码过期)][default tablespace 表空间名];
    default tablespace 表空间名:该用户创建的所有对象的数据都将存放在该表空间下
    表空间中的文件
       *.dbf DatabaseFile :数据文件 
       *.ctl Control :控制文件
       *.log :重做日志文件

    四、SQL(Structured Query Language)

    SQL(Structured Query Language)即结构化查询语句,应用程序与数据库交互的接口,集数据操作、数据定义、数据控制等功能于一体,ANSI先后制定推出了SQL-89、SQL-92、SQL-99标准。
    Oracle SQL 语句主要分为一下四类:
    DML(Data Mannipulation Language)数据操纵语言:查询、操纵数据表资料行

          SELECT : 检索数据库表或视图数据 
    
          INSERT :  将数据行新增至数据库表或视图中
    
          UPDATE : 修改表或视图中现有的数据行
    
          DELETE : 删除表或视图中现有的数据行
    

    注意:DML语句不会自动提交事务!

    DDL(Data Definition Language)数据定义语言:建立、修改、删除数据库中数据表对象

         CREATE TABLE : 创建表 
    
         ALTER TABLE : 修改表
    
         DROP TABLE : 删除表
    

    注意:DLL语句会自动提交事务!所以:DML语句事务提交之前可以回滚,DDL语句不能回滚事务

    DCL(Data Control Language)数据控制语言:用于执行权限授予与收回操作

        GRANT : 给用户或角色授予权限
    
        REVOKE : 收回用户或角色的所有权限
    

    TCL(Transactional Control Language)事物控制语言:维护数据的一致性

       COMMIT :提交已经进行的数据库改变
    
       ROLLBACK : 回滚已经进行的数据改变
    
       SAVEPOINT : 设置保存点,用于部分数据改变的取消
    
      其中SQL关键字不区分大小写,对象名与列名不区分大小写,字符串值区分大小写,即''里面的内容区分大小写
    
      注意:数据字典自动将数据转换成大写
    
      SQL语句运行的过程:
          客户端把SQL语句发送到服务端,服务器对SQL进行编译,执行,服务器把执行结果再发挥给客户端
    
    
    

    五、表的创建

    Oracle数据库中创建表语句(Create table)语法详解及示例详见:http://blog.csdn.net/haiross/article/details/11772847

    1、创建表基本语法:
    create table 表名(列定义列表) [tablespace 表空间名];
    列表定义: 至少要有一列定义(列名 类型)

    创建表:
    CREATE TABLE DEPT(
    EPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
    DNAME VARCHAR2(14),
    LOC VARCHAR2(13)) ;
    CREATE TABLE region(
    ID number(2) NOT NULL PRIMARY KEY,
    postcode number(6) default '0' NOT NULL,
    areaname varchar2(30) default ' ' NOT NULL);

    2、创建表时的命名规则和注意事项

        1)表名和字段名的命名规则:必须以字母开头,可以含符号A-Z,a-z,0-9,_,$,#
        2)大小写不区分
        3)不用SQL里的保留字, 一定要用时可用双引号把字符串括起来.
        4)用和实体或属性相关的英文符号长度有一定的限制
        注意事项:
        1)建表时可以用中文的字段名, 但最好还是用英文的字段名
        2)创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面
        3)建表时如果有唯一关键字或者唯一的约束条件,建表时自动建了索引
        4)一个表的最多字段个数也是有限制的,254个.
    

    3、Oracle常用的字段类型

    ORACLE常用的字段类型:
    
        VARCHAR2 (size) 可变长度的字符串, 必须规定长度
    
        CHAR(size) 固定长度的字符串, 不规定长度默认值为1
    
        NUMBER(p,s) 数字型p是位数总长度, s是小数的长度, 可存负数最长38位. 不够位时会四舍五入.
    
        DATE 日期和时间类型
    
        LOB 超长字符, 最大可达4G
    
        CLOB 超长文本字符串
    
        BLOB 超长二进制字符串
    
        BFILE 超长二进制字符串, 保存在数据库外的文件里是只读的.
    
        数字字段类型位数及其四舍五入的结果
    
        数字字段类型位数 存储的值
    
     Oracle内置类型
    
          varchar2 长度可变的字符串,且使用时必须指定长度varchar2(n),长度单位为字节,最大长度为4000字节;
    
          char 固定长度的字符串,默认长度为1,单位:字节,最大长度2000字节;
    
          number 数值类型,既可以表示整数,也可以表示浮点数,
             number(p,s):
             p表示整个数值的长度,不包含小数点
             s表示小数占的长度
             注意:
                没有指定小数的长度,插入的数据如果带小数,则小数位四舍五入
                如果小数长度不足以保存插入的数据,在精度允许的下一位开始四舍五入
                如果指定的小数长度是负数,则表示整数,整数长度为p-s
    
          date 时间和日期数据:
             select to_char(列名,'yy-mm-dd hh24:mi:ss') from 表名
             timestamp 时间和日期数据,包含了上下午标识,6位的微秒,时区
    

    附录一:

    一、 Oracle常用数据字典表
    
    1、 查看当前用户的缺省表空间
    SQL>select username,default_tablespace from user_users; 
    2、 查看当前用户的角色
    SQL>select * from user_role_privs;
    3、 查看当前用户的系统权限和表级权限
    SQL>select * from user_sys_privs;
    SQL>select * from user_tab_privs;
    4、 查看用户下所有的表
    SQL>select * from user_tables;
    5、 查看用户下所有的表的列属性
    SQL>select * from USER_TAB_COLUMNS where table_name=:table_Name;
    6、 显示用户信息(所属表空间)
    select default_tablespace, temporary_tablespace
      from dba_users  www.2cto.com  
     where username = 'GAME';
    7、 显示当前会话所具有的权限
    SQL>select * from session_privs;
    8、 显示指定用户所具有的系统权限
    SQL>select * from dba_sys_privs where grantee='GAME';
    9、 显示特权用户
    select * from v$pwfile_users;
    10、 显示用户信息(所属表空间)
    select default_tablespace,temporary_tablespace 
    from dba_users where username='GAME';
    11、 显示用户的PROFILE
    select profile from dba_users where username='GAME'; 
    
    二、表
    
    1、 查看用户下所有的表
    SQL>select * from user_tables;
    2、 查看名称包含log字符的表
    SQL>select object_name,object_id from user_objects
    where instr(object_name,'LOG')>0;
    3、 查看某表的创建时间
    SQL>select object_name,created from user_objects where object_name=upper('&table_name');
    4、 查看某表的大小
    SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
    where segment_name=upper('&table_name');
    5、 查看放在Oracle的内存区里的表
    SQL>select table_name,cache from user_tables where instr(cache,'Y')>0; 
    
    三、索引
    
    1、 查看索引个数和类别
    SQL>select index_name,index_type,table_name from user_indexes order by table_name;
    2、 查看索引被索引的字段
    SQL>select * from user_ind_columns where index_name=upper('&index_name');
    3、 查看索引的大小
    SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
    where segment_name=upper('&index_name');
    
    四、序列号
    
    1、 查看序列号,last_number是当前值
    SQL>select * from user_sequences;
    
    五、视图
    
    1、 查看视图的名称
    SQL>select view_name from user_views;
    2、 查看创建视图的select语句
    SQL>set view_name,text_length from user_views;
    SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的大小
    SQL>select text from user_views where view_name=upper('&view_name'); 
    
    六、同义词
    
    1、 查看同义词的名称
    SQL>select * from user_synonyms; 
    
    七、约束条件
    
    1、 查看某表的约束条件
        SQL>select constraint_name, constraint_type,search_condition, r_constraint_name
        from user_constraints where table_name = upper('&table_name');
        SQL>select c.constraint_name,c.constraint_type,cc.column_name
        from user_constraints c,user_cons_columns cc
        where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')
        and c.owner = cc.owner and c.constraint_name = cc.constraint_name
        order by cc.position;
    
    八、存储函数和过程
    
    1、 查看函数和过程的状态
    SQL>select object_name,status from user_objects where object_type='FUNCTION';
    SQL>select object_name,status from user_objects where object_type='PROCEDURE';
    2、 查看函数和过程的源代码
    SQL>select text from all_source where owner=user and name=upper('&plsql_name'); 
    
    九、常用的数据字典
    
    dba_data_files:通常用来查询关于数据库文件的信息
    dba_db_links:包括数据库中的所有数据库链路,也就是databaselinks。
    dba_extents:数据库中所有分区的信息
    dba_free_space:所有表空间中的自由分区
    dba_indexs:关于数据库中所有索引的描述
    dba_ind_columns:在所有表及聚集上压缩索引的列
    dba_objects:数据库中所有的对象
    dba_rollback_segs:回滚段的描述
    dba_segments:所有数据库段分段的存储空间
    dba_synonyms:关于同义词的信息查询
    dba_tables:数据库中所有数据表的描述
    dba_tabespaces:关于表空间的信息
    dba_tab_columns:所有表描述、视图以及聚集的列
    dba_tab_grants/privs:对象所授予的权限
    dba_ts_quotas:所有用户表空间限额
    dba_users:关于数据的所有用户的信息
    dba_views:数据库中所有视图的文本
    
    十、常用的动态性能视图
    
    v$datafile:数据库使用的数据文件信息
    v$librarycache:共享池中SQL语句的管理信息
    v$lock:通过访问数据库会话,设置对象锁的所有信息
    v$log:从控制文件中提取有关重做日志组的信息
    v$logfile有关实例重置日志组文件名及其位置的信息
    v$parameter:初始化参数文件中所有项的值
    v$process:当前进程的信息  www.2cto.com  
    v$rollname:回滚段信息
    v$rollstat:联机回滚段统计信息
    v$rowcache:内存中数据字典活动/性能信息
    v$session:有关会话的信息
    v$sesstat:在v$session中报告当前会话的统计信息
    v$sqlarea:共享池中使用当前光标的统计信息,光标是一块内存区域,有Oracle处理SQL语句时打开。
    v$statname:在v$sesstat中报告各个统计的含义
    v$sysstat:基于当前操作会话进行的系统统计
    v$waitstat:出现一个以上会话访问数据库的数据时的详细情况。当有一个以上的会话访问同一信息时,可出现等待情况。
    总结了一下这些,彻底区别了视图与数据字典,也不那么容易混淆。嘿嘿!!!
    
    十一、常用SQL查询
    
    1、查看表空间的名称及大小
    select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
    from dba_tablespaces t, dba_data_files d
    where t.tablespace_name = d.tablespace_name
    group by t.tablespace_name;
    
    2、查看表空间物理文件的名称及大小
    select tablespace_name, file_id, file_name,
    round(bytes/(1024*1024),0) total_space
    from dba_data_files
    order by tablespace_name;
    
    3、查看回滚段名称及大小
    select segment_name, tablespace_name, r.status, 
    (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent, 
    max_extents, v.curext CurExtent
    From dba_rollback_segs r, v$rollstat v
    Where r.segment_id = v.usn(+)
    order by segment_name;
    
    4、查看控制文件
    select name from v$controlfile;
    
    5、查看日志文件
    select member from v$logfile;
    
    6、查看表空间的使用情况
    select sum(bytes)/(1024*1024) as free_space,tablespace_name 
    from dba_free_space
    group by tablespace_name;
    SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
    (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
    FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
    WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME; 
    
    7、查看数据库库对象
    select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;
    
    8、查看数据库的版本 
    Select version FROM Product_component_version 
    Where SUBSTR(PRODUCT,1,6)='Oracle';
    
    9、查看数据库的创建日期和归档方式
    Select Created, Log_Mode, Log_Mode From V$Database; 
    
    10、捕捉运行很久的SQL
    column username format a12 
    column opname format a16 
    column progress format a8 
    select username,sid,opname, 
    round(sofar*100 / totalwork,0) || '%' as progress, 
    time_remaining,sql_text 
    from v$session_longops , v$sql 
    where time_remaining <> 0 
    and sql_address = address 
    and sql_hash_value = hash_value 
    
    11、查看数据表的参数信息
    SELECT   partition_name, high_value, high_value_length, tablespace_name,
    pct_free, pct_used, ini_trans, max_trans, initial_extent,
    next_extent, min_extent, max_extent, pct_increase, FREELISTS,
    freelist_groups, LOGGING, BUFFER_POOL, num_rows, blocks,
    empty_blocks, avg_space, chain_cnt, avg_row_len, sample_size,
    last_analyzed
    FROM dba_tab_partitions
    --WHERE table_name = :tname AND table_owner = :towner
    ORDER BY partition_position
    
    12、查看还没提交的事务
    select * from v$locked_object;
    select * from v$transaction; 

    附录二、

    
    C:\Users\Administrator>sqlplus
    
    SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 10月 5 11:23:58 2016
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    请输入用户名:  scott
    输入口令:
    
    连接到:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    
    SQL> connect sys/root as sysdba;
    已连接。
    SQL> show user;
    USER 为 "SYS"
    SQL> select username from dba_users;
    
    USERNAME
    ------------------------------
    MGMT_VIEW
    SYS
    SYSTEM
    DBSNMP
    SYSMAN
    ZHANGSAN
    SCOTT
    TEST
    TEST_USER
    ROBINSON
    OUTLN
    
    USERNAME
    ------------------------------
    MDSYS
    ORDSYS
    EXFSYS
    DMSYS
    WMSYS
    CTXSYS
    ANONYMOUS
    XDB
    ORDPLUGINS
    SI_INFORMTN_SCHEMA
    OLAPSYS
    
    USERNAME
    ------------------------------
    TSMSYS
    BI
    PM
    MDDATA
    IX
    SH
    DIP
    OE
    HR
    
    已选择31行。
    
    SQL> --上述是利用dba_users数据字典
    SQL> drop user mary cascade;
    drop user mary cascade
              *
    第 1 行出现错误:
    ORA-01918: 用户 'MARY' 不存在
    
    
    SQL> create user jack identified by jack;
    
    用户已创建。
    
    SQL> frant dba to jack;
    SP2-0734: 未知的命令开头 "frant dba ..." - 忽略了剩余的行。
    SQL> grant dba to jack;
    
    授权成功。
    
    SQL> select tablespace_name from dba_tablespaces;
    
    TABLESPACE_NAME
    ------------------------------
    SYSTEM
    UNDOTBS1
    SYSAUX
    TEMP
    USERS
    EXAMPLE
    FUND
    
    已选择7行。
    
    SQL> select tablespaces_name from user_tablespaces;
    select tablespaces_name from user_tablespaces
           *
    第 1 行出现错误:
    ORA-00904: "TABLESPACES_NAME": 标识符无效
    
    
    SQL> select tablespace_name from user_tablespaces;
    
    TABLESPACE_NAME
    ------------------------------
    SYSTEM
    UNDOTBS1
    SYSAUX
    TEMP
    USERS
    EXAMPLE
    FUND
    
    已选择7行。
    
    SQL> create tablespace test1_tablespace datafile 'test1file.dbf' size 10M;
    
    表空间已创建。
    
    SQL> --上面是创建永久表空间
    SQL> --下面是创建临时表空间
    SQL> create temporary tablespace temptest1_tablespace tempfile 'tempfile1.dbf' size 10M;
    
    表空间已创建。
    
    SQL> select file_name from dba_dta_files where tablespace_name 'TEST1_TABLESPACE';
    select file_name from dba_dta_files where tablespace_name 'TEST1_TABLESPACE'
                                                              *
    第 1 行出现错误:
    ORA-00920: 无效的关系运算符
    
    
    SQL> select file_name from dba_data_files where tablespace_name = 'TEST1_TABLESPACE';
    
    FILE_NAME
    --------------------------------------------------------------------------------
    E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\TEST1FILE.DBF
    
    SQL> select file_name from dba_temp_file where tablespace_name = 'TEMPTEST1_TABLESPACE';
    select file_name from dba_temp_file where tablespace_name = 'TEMPTEST1_TABLESPACE'
                          *
    第 1 行出现错误:
    ORA-00942: 表或视图不存在
    
    
    SQL> select file_name from dba_temp_files where tablespace_name = 'TEMPTEST1_TABLESPACE';
    
    FILE_NAME
    --------------------------------------------------------------------------------
    E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\TEMPFILE1.DBF
    
    SQL> alter tablespace test1_tablespace read only;
    
    表空间已更改。
    
    SQL> select status from dba_tablespaces where tablespace_name = 'TEST1_TABLESPACE';
    
    STATUS
    ---------
    READ ONLY
    
    SQL> alter tablespace test1_tablespace read write;
    
    表空间已更改。
    
    SQL> select status from dba_tablespaces where tablespace_name = 'TEST1_TABLESPACE';
    
    STATUS
    ---------
    ONLINE
    
    SQL> alter tablespace test1_tablespace add datafile 'test2_file.dbf' size 10M;
    
    表空间已更改。
    
    SQL> select file_name from dba_date_files where tablespace_name = 'TEST_TABLESPACE';
    select file_name from dba_date_files where tablespace_name = 'TEST_TABLESPACE'
                          *
    第 1 行出现错误:
    ORA-00942: 表或视图不存在
    
    
    SQL> select file_name from dba_data_files where tablespace_name = 'TEST1_TABLESPACE';
    
    FILE_NAME
    --------------------------------------------------------------------------------
    E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\TEST1FILE.DBF
    E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\TEST2_FILE.DBF
    
    SQL> alter tablespace tablespace_name drop datefile 'test2_file.dbf';
    alter tablespace tablespace_name drop datefile 'test2_file.dbf'
                                          *
    第 1 行出现错误:
    ORA-00905: 缺失关键字
    
    
    SQL> alter tablespace tablespace_name drop datafile 'test2_file.dbf';
    alter tablespace tablespace_name drop datafile 'test2_file.dbf'
    *
    第 1 行出现错误:
    ORA-00959: 表空间 'TABLESPACE_NAME' 不存在
    
    
    SQL> alter tablespace test1_tablespace drop datafile 'test2_file.dbf';
    
    表空间已更改。
    
    SQL> select file_name from dba_data_files where tablespace_name = 'TEST1_TABLESPACE';
    
    FILE_NAME
    --------------------------------------------------------------------------------
    E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\TEST1FILE.DBF
    
    SQL> drop tablespace test1_tablespace including contents;
    
    表空间已删除。
    展开全文
  • MySQL在多创建视图

    万次阅读 2017-07-29 23:40:43
    首先,创建stu_info,并向中插入数据查看中的数据创建stu_class视图查看视图可以看出,创建的视图包含id、nameclass字段 其中,id字段对应student中的s_id字段,name字段对应student中的name字段,
  • 使用Phoenix映射hbase表创建表和视图

    千次阅读 2020-05-11 17:38:50
    本篇内容介绍一下如何使用Phoenix映射hbase创建表和视图以及注意事项。 1. 进入命令行模式 首先进入命令行模式,使用!tables查看当前的,效果等同于hbase里的listrdbms里的show tables; /opt/clou
  • MySQL数据库视图:视图定义、创建视图、修改视图

    万次阅读 多人点赞 2017-03-20 11:54:15
    视图不直接存储数据,不知真正的。 关系型数据库中的数据是由一张一张的二维关系所组成,简单的单查询只需要遍历一个,而复杂的多查询需要将多个连接起来进行查询任务。对于复杂的查询事件,每次查询...
  • 一、视图 1、视图:view。视图是一种有结构(有行有列的二维结构)但没结果(结构...二、创建视图 1、基本语法 -- 创建视图 -- select语句:可以是 普通查询|连接查询|联合查询|子查询 create view 视图名...
  • PostgreSQL创建视图

    千次阅读 2020-06-28 18:24:03
    它可以包含表的所有行或来自一个或多个的所选行。 视图便于用户执行以下操作: 它以自然直观的方式构建数据,并使其易于查找。 它限制对数据的访问,使得用户只能看到有限的数据而不是完整的数据。 它归总来自...
  • 第3章 表和视图创建修改 数据库实际上是数据表的集合。在关系数据库中,数据库通常包含多个数据表,数据库中的数据信息都是存储在数据表当中的。数据表是对数据进行存储操作的一种逻辑结构,对于用户而言,一个...
  • 它是展示数据到终端用户的代码,在网页应用中,根据视图模板来创建视图,视图模板为PHP脚本文件, 主要包含HTML代码展示类PHP代码,通过yii\web\View应用组件来管理, 该组件主要提供通用方法帮助视图构造渲染...
  • 第3章 表和视图创建修改 数据库实际上是数据表的集合。在关系数据库中,数据库通常包含多个数据表,数据库中的数据信息都是存储在数据表当中的。数据表是对数据进行存储操作的一种逻辑结构,对于用户而言,一...
  •  使用视图,可以定制用户数据,聚焦特定的数据。    解释:  在实际过程中,公司有不同角色的工作人员,我们以销售公司为例的话,  采购人员,可以需要一些与其有关的数据,而与他无关的数据,对他没 ...
  • 创建视图

    2013-04-28 11:12:57
    简单视图视图数据仅来自一个,在视图的SELECT语句中不包含函数或数据分组,总是可以通过视图来执行DML操作。 复杂视图视图数据来自多个,可以包含函数或数据分组,并不总是可以通过视图进行DML操作。 ...
  • Oracle创建视图

    2018-11-30 17:14:00
    视图的优点: 1.对数据库的访问,因为视图可以有选择性的选取... 视图分为简单视图和复杂视图: 1、简单视图只从单表里获取数据,复杂视图从多; 2、简单视图不包含函数和数据组,复杂视图包含; 3、简单视...
  • ![图片说明](https://img-ask.csdn.net/upload/201905/30/1559219289_511359.png) 创建数据库, 包含三张表, 含有索引,视图,存储过程,触发器。 求大佬帮助啊,数据库新手,做不来。。。
  • MySQL创建视图

    2018-08-19 22:26:08
    视图中,包含SELECT查询的结果,因此,视图的创建基于SELECT语句,和已经存在的数据表,视图可以建立在一张上,也可以建立在多张表上  MySQL中,使用CREATE VIEW语句,创建视图 语法格式 CREATE [OR REPLACE] ...
  • Oracle 数据字典和数据字典视图

    千次阅读 2019-02-15 10:17:55
    Oracle 数据字典和数据字典视图
  • Oracle之创建表、序列、索引和视图

    千次阅读 2014-11-30 22:09:06
     · 创建、修改删除  · 如何创建并使用序列:序列可以生成一系列数字  · 如何创建并使用索引:索引可以提高查询的性能  · 如何创建并使用视图视图是预定义的查询  · 闪回数据归档将一段时间内对表所...
  • ORACLE的数据字典表和动态性能视图

    千次阅读 2016-07-25 22:52:48
    Oracle提供了大量的内部,它们记录了数据库对象的更改修正。可以将这些内部划分为两种主要类型:静态的数据字典表和动态的性能。这些内部是由oracle维护的,可以说它们是只读。用户包括sys都不能修改。
  • 在mydb数据库中创建student数据表中有id、name(学生...然后创建视图view_score,视图中包含math、chinese、englishtotal(总分数)字段。 USE mydb; CREATE TABLE student ( id INT UNSIGNED PRIMARY KEY ...
  • 表视图创建

    千次阅读 2010-11-08 17:05:00
    表视图(UITableView)是一种极其常见的视图,在各种含选择功能的程序中用到,如本次的实验室之家中大量运用表视图。运用表视图可以轻松的进行选择。... 在创建表视图的时候,可以选择两种风格的表视图:UIT
  • 1. 插入数据1.1 数据插入插入有几种方式: 插入完整的行(建议表名后的括号里明确给出列名与后面的值进行分); insert into 表名 values(字段值,字段值…………..); 插入行的一部分; 直接在表名后面的列名...
  • 为镶嵌数据集批量创建视图

    千次阅读 2013-05-16 15:54:37
    我们经常需要访问影像数据的快视图,本文将为您介绍如何批量地为镶嵌数据创建视图文件。 环境说明:本例采用的是File Geodatabase,即文件地理数据库来存储镶嵌数据集;使用ArcObjects开发,以ArcGIS Add-In的...
  • Oracle视图创建和使用

    千次阅读 2018-10-17 17:55:54
    视图其实是一张虚,是基于已存在的...首先要有创建视图的权限,没有权限的可以切换到sys或者system账号,赋权以后再创建,我将sql语句放在下面: --切换登陆用户 conn system/密码; --赋权,我这里将创建视图的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 400,414
精华内容 160,165
关键字:

包含数据表和已经创建的视图