`
胡杨大爷
  • 浏览: 4726 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Oracle学习笔记(四)DCL和Transaction

阅读更多

1.delete和truncate的区别:

 

DELETE语句和TRUNCATE TABLE语句都可以删除表中的所有数据,但前者删除表的所有数据时,不会释放所占用的空间,并且操作可以撤销(ROLLBACK);后者删除表的所有数据时,执行速度更快,而且还会释放表,段所占用的空间,并且操作不能撤销(ROLLBACK)。

 2.设置保存点并且回滚。

 

SQL> savepoint sp1;

保存点已创建。

SQL> update stu_grade set score=300 where cid=10201;

已更新 1 行。

SQL> select * from stu_grade;

       SID        CID      SCORE
---------- ---------- ----------
     10101      10101         87
     10101      10201        300
     10101      10301         79
SQL> rollback to  sp1;

回退已完成。

SQL> select * from stu_grade;

       SID        CID      SCORE
---------- ---------- ----------
     10101      10101         87
     10101      10201        100
     10101      10301         79

 3.数据库的权限:

  CREATE SESSION:连接到数据库

  CREATE SEQUENCE:创建序列。序列是一些列数字用来自动填充主键列

  CREATE SYNONYM:创建同名对象,同名对象可以用于引用其他模式中的表。

  CREATE TABLE:创建表。

  CREATE ANY TABLE:在任何模式中创建表。

  DROP TABLE:删除表。

  DROP ANY TABLE:删除任何模式中的表。

  CREATE PROCEDURE:创建存储过程。

  EXECUTE ANY PROCEDURE:执行任何存储过程。

  CREATE USER:创建用户。

  CREATE VIEW:创建视图。

  DROP USER:删除用户。

 4.实例

 

1.建立用户,默认没有登录的权限,必须赋予create session的权限。
 SQL> create user test identified by test;

用户已创建。

SQL> conn test/test;
ERROR:
ORA-01045: user TEST lacks CREATE SESSION privilege; logon denied
警告: 您不再连接到 ORACLE。
-----------------------------------------------------
赋权限之后:
SQL> grant create session to test;

授权成功。

SQL> conn test/test;
已连接。

2.修改用户密码
 SQL> alter user test identified by mytest;
用户已更改。
SQL> conn test/mytest;
已连接。

3.删除用户
 SQL> drop user test;
 用户已删除。

4.查看授予用户scott的系统权限
  SQL> select * from user_sys_privs;

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
SCOTT                          UNLIMITED TABLESPACE                     NO

5.收回scott的用户权限
  SQL>revoke user_sys_privs from scott;

6.授予用户scott在表teachers上wage、bonus的update权限
  SQL>grant update  (wage,bonus) on teachers to scott with grant option;
  SQL> select * from user_tab_privs_recd;

OWNER                          TABLE_NAME
------------------------------ ------------------------------
GRANTOR                        PRIVILEGE                                GRA HIE
------------------------------ ---------------------------------------- --- ---
SYSTEM                         MVIEW_WORKLOAD
SYSTEM                         SELECT                                   YES NO

SYSTEM                         MVIEW_FILTER
SYSTEM                         SELECT                                   YES NO

SYSTEM                         MVIEW_LOG
SYSTEM                         SELECT                                   YES NO

SYSTEM                         MVIEW_FILTERINSTANCE
SYSTEM                         SELECT                                   YES NO

SYSTEM                         MVIEW_RECOMMENDATIONS
SYSTEM                         SELECT                                   YES NO

SYSTEM                         MVIEW_EVALUATIONS
SYSTEM                         SELECT                                   YES NO

SYSTEM                         MVIEW_EXCEPTIONS
SYSTEM                         SELECT                                   YES NO

SYSTEM                         DEF$_AQCALL
SYSTEM                         SELECT                                   YES NO

SYSTEM                         DEF$_ERROR

7.创建表
 SQL> create table teacher as select * from teachers;

表已创建。

SQL> select * from teacher;

       TID NAME     TITLE  HIREDATE            BONUS       WAGE        DID
---------- -------- ------ -------------- ---------- ---------- ----------
     10101 王彤     教授   01-9月 -90           1000       3000        101
     10104 孔世杰   副教授 06-7月 -94            800       2700        101
     10103 邹人文   讲师   21-1月 -96            600       2400        101
     10106 韩冬梅   助教   01-8月 -02            500       1800        101
     10210 杨文化   教授   03-10月-89           1000       3100        102
     10206 崔天     助教   05-9月 -00            500       1900        102
     10209 孙晴碧   讲师   11-5月 -98            600       2500        102
     10207 张珂     讲师   16-8月 -97            700       2700        102
     10308 齐沈阳   高工   03-10月-89           1000       3100        103
     10306 车东日   助教   05-9月 -01            500       1900        103
     10309 臧海涛   工程师 29-6月 -99            600       2400        103
     10307 赵昆     讲师   18-2月 -96            800       2700        103
     10128 王晓            05-9月 -07                      1000        101
     10328 张笑            29-9月 -07                      1000        103
     10228 赵天宇          18-9月 -07                      1000        102
     11111 林飞            11-10月-07                      1000

已选择16行。 

 5.修改表定义

 

1.添加列
 
SQL> create table test(
  2   tid int primary key,
  3   tname varchar(23)
  4  );

 SQL> alter table test add  tage int;
表已更改。
SQL> alter table test add tsex varchar(2) check (tsex in('男','女'));

表已更改。

SQL> desc test;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ------------------
 TID                                       NOT NULL NUMBER(38)
 TNAME                                              VARCHAR2(23)
 TAGE                                               NUMBER(38)
 TSEX                                               VARCHAR2(2)

2.修改列
 
SQL> alter table test modify tsex varchar(2) default '男' check (tsex in('男','女'));
表已更改。
SQL> insert into test(tid) values(23423);

已创建 1 行。

SQL> select * from test;

       TID TNAME                         TAGE TS
---------- ----------------------- ---------- --
     23423                                    男

3.删除列
SQL> alter table test drop column tsex;

表已更改。

SQL> desc test;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- -------------
 TID                                       NOT NULL NUMBER(38)
 TNAME                                              VARCHAR2(23)
 TAGE                                               NUMBER(38)

4.添加NOT NULL约束,使用alter。。。。modified,不能使用alter....add constraint。
  alter table student name not null;

5.添加/删除约束
 alter table student add/drop constraint student_pk primary key (sid);

6.禁止/允许约束的使用
 alter table student disable/enable  constraint student_pk;

7.修改表名
 rename <table_old_name> to <table_new_name>;
  
8.修改索引名称
 alter index <index_old_name> rename to <index_new_name>;

 

分享到:
评论

相关推荐

    成功之路Oracle11g学习笔记

    SQL语言分为DDL(Data Definition Language)、DML(Data Manipulation Language)、DCL(Data Control Language)和TCL(Transaction Control Language)四部分,分别用于定义数据库对象、操作数据、控制权限和管理...

    Oracle学习笔记——day04

    在Oracle学习笔记的第四天,我们探讨了数据库管理和操作的一些核心概念,主要集中在DDL(数据定义语言)、DML(数据操作语言)、DCL(数据控制语言)以及事务管理。以下是对这些内容的详细阐述: 首先,我们看到了...

    ORACLE数据库学习笔记

    本文主要针对ORACLE数据库的学习笔记进行深入解析。 首先,SQL是Structured Query Language的缩写,即结构化查询语言,它是用于管理关系数据库的标准语言。SQL主要包括五种类型的子语言:DDL(Data Definition ...

    oracle学习及使用笔记

    ### Oracle学习及使用笔记 #### 一、Oracle学习资源网站推荐 在学习Oracle的过程中,有以下几个网站是非常有价值的: 1. **itpub.net**:itpub是Oracle社区中非常活跃的一个平台,提供了大量的技术文章、博客以及...

    tarena根笔记oracle

    本笔记主要涵盖了在达内教育机构学习Oracle数据库的一些基础知识点,包括SQLPLUS的使用、SQL语句的结构与操作,以及一些实用的数据库管理技巧。 1. SQLPLUS的命令 SQLPLUS是Oracle提供的一种命令行接口,用于与...

    达内学习oracle 笔记

    ### 达内学习Oracle笔记知识点总结 #### 一、Oracle数据库概述 - **数据库与关系数据库**:数据库是用来存储和管理数据的一种系统。关系数据库通过使用关系或二维表来存储数据,这种表由行(row/record)和列...

    老方块ORACLE 内部培训.zip

    "老方块ORACLE 内部培训.zip"可能是一个包含了深入Oracle学习资料的压缩包,旨在帮助用户掌握Oracle数据库的核心技术和管理实践。以下是根据这个主题可能涵盖的一些关键知识点: 1. **Oracle数据库体系结构**:...

    世界上最全的oracle笔记 oracle 资料

    #### 描述:本文档提供了全面的Oracle笔记与资源,旨在帮助读者掌握Oracle数据库的核心概念和技术。 #### 标签:Oracle笔记、Oracle资料 #### 知识点总结: ##### 1. Oracle SQL 基础 - **SQL (Structured Query ...

    Oracle笔记

    Oracle笔记是针对数据库管理系统Oracle的一份综合学习资料,旨在帮助用户深入理解和掌握Oracle的核心概念、功能以及在实际工作中的应用。这份笔记包含了丰富的知识点,既适用于初学者进行系统学习,也适合作为专业...

    Oracle实用笔记集合

    ### Oracle实用笔记集合 在本篇内容中,我们将围绕Oracle数据库中的SQL语句进行详细的解析与探讨。Oracle作为全球领先的关系型数据库管理系统之一,在企业级应用中占据着举足轻重的地位。对于Oracle数据库的学习与...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    oracle教学1笔记

    ### Oracle 教学1笔记概览 #### 一、数据库基础概述 1. **数据库(DB)的概念**:数据库可以理解为一个存储数据的仓库,它按照一定的数据结构组织和管理数据,并确保数据能够被持久化地保存。这种数据管理方式提高了...

    SQL 数据库语言学习笔记

    本篇“SQL数据库语言学习笔记”将深入探讨SQL的基本概念、语法和常用操作,帮助你掌握这个强大的工具。 一、SQL简介 SQL起源于1970年代,由IBM的研究员开发,其设计目标是为了解决日益复杂的数据查询和管理问题。...

    Oracle数据库笔记

    ### Oracle数据库基础知识与应用 #### 一、存储方式与数据库概念 - **存储方式对比**: - **内存**:存取速度快,但数据易丢失。 - **文件**:可永久存储,...随着学习的深入,还可以探索更多高级功能和技术细节。

    SQL最基本的知识,学习笔记

    一个事务包括一组操作,要么全部执行,要么全部回滚,用`BEGIN TRANSACTION`、`COMMIT`和`ROLLBACK`来控制。 10. **存储过程和触发器**:存储过程是预编译的SQL语句集合,可以提高性能并简化代码管理。触发器则是在...

    SQL学习笔记,数据库操作详情解析

    ### SQL学习笔记,数据库操作详情解析 #### 一、SQL简介与重要性 SQL(Structured Query Language),即结构化查询语言,是一种专为数据库而设计的语言。它被广泛应用于管理和处理存储在关系型数据库管理系统...

    数据库:数据库学习笔记

    数据库学习笔记主要涵盖了数据库的基本概念、设计原理、常用类型以及操作技巧。以下是一些核心知识点的详细阐述: 1. 数据库基本概念: - 数据:数据是数据库中的基本元素,可以是数字、文字、图像等各种形式。 -...

    计算机三级数据库笔记(全)

    这份笔记的全面性使得学习者能够系统地理解和掌握数据库的基础知识,以便在考试中应对各种题型,包括选择题、应用题以及设计与应用题。 一、数据库基础 1. 数据库定义:数据库是一个组织有序的数据集合,它提供了...

    笔记_sql_

    在SQL(Structured Query Language)数据库基础的视频教程中,我们通常会接触到一系列核心概念和操作,这些内容在课堂笔记及课后练习中会被详细讲解。SQL是用于管理和处理关系数据库的强大语言,它允许用户创建、...

Global site tag (gtag.js) - Google Analytics