1. 创建表

    必须有 :

    1. CREATE TABLE 的权限

    SQL> conn /as sysdba
    已连接。
    SQL> create user test default tablespace users identified by a; 用户已创建。 SQL> conn test/a
    ERROR:
    ORA-: user TEST lacks CREATE SESSION privilege; logon denied 警告: 您不再连接到 ORACLE。
    SQL> conn /as sysdba
    已连接。
    SQL> grant create session to test; 授权成功。 SQL> conn test/a
    已连接。 SQL> create table t(id number,name varchar2());
    create table t(id number,name varchar2())
    *
    第 行出现错误:
    ORA-: 权限不足 SQL> conn /as sysdba
    已连接。
    SQL> grant create table to test; 授权成功。 SQL> conn test/a
    已连接。
    SQL> create table t(id number,name varchar2());
    create table t(id number,name varchar2())
    *
    第 行出现错误:
    ORA-: 对表空间 'USERS' 无权限
  2. 拥有存储空间
    SQL> conn /as sysdba
    已连接。
    SQL> alter user test quota 10M on users; 用户已更改。 SQL> conn test/a
    已连接。
    SQL> create table t(id number,name varchar2()); 表已创建。 创建一个表D create table d(
    deptno number(),
    dname varchar2(),
    loc varchar2()
    )
    ; 表已创建。 SQL> describe d;
    名称 是否为空? 类型
    ----------------------------------------- -------- ----------------------------
    DEPTNO NUMBER()
    DNAME VARCHAR2()
    LOC VARCHAR2() SQL> desc d;
    名称 是否为空? 类型
    ----------------------------------------- -------- ----------------------------
    DEPTNO NUMBER()
    DNAME VARCHAR2()
    LOC VARCHAR2()
  3. 引用其他用户的表

    模式(schema):是一个用户下一组对象的集合,模式名与用户名是一致的

    SQL> conn hr/hr
    
    SQL> grant select on employees to scott;
    
    conn scott/tiger
    
    SQL> select count(*) from hr.employees;
    
      COUNT(*)
    ---------- SQL> show user
    USER 为 "SCOTT"
    SQL> alter session set current_schema=hr; 会话已更改。 SQL> select count(*) from employees; COUNT(*)
    ---------- SQL> show user
    USER 为 "SCOTT"
  4. DEFAULT选项
    1. 在插入期间可以指定默认值
    SQL> create table e(empno number(),ename varchar2(),hiredate date default sysdate);
    
    表已创建。
    
    SQL> desc e
    名称 是否为空? 类型
    ----------------------------------------- -------- ----------------------------
    EMPNO NUMBER()
    ENAME VARCHAR2()
    HIREDATE DATE SQL> insert into e values(,'SCOTT',default); 已创建 行。 SQL> commit; 提交完成。 SQL> select * from e; EMPNO ENAME HIREDATE
    ----- ------ --------------
    SCOTT -8月 -
  5. 文字值,表达式,或者SQL函数是合法值
  6. 其他列的名或者伪列是非法的
  7. 伪列:不是真正的列,比如:Excel表格的行id。
    SQL> select rownum,ename,sal from emp;
    
        ROWNUM ENAME    SAL
    ---------- ------ -----
    SMITH
    ALLEN
    WARD
    JONES
    MARTIN
    BLAKE
    CLARK
    SCOTT
    KING
    TURNER
    ADAMS
    JAMES
    FORD
    MILLER
  8. 默认的数据类型必须匹配列的数据类型
  9. Oracle数据库中的表
  10. 用户表

    由用户创建和维护的一系列表的集合
    包含用户的信息

    数据字典
    由Oracle 服务器创建和维护的一系列表的集合
    包含数据库的信息

  11. 数据类型

    表示字符的数据类型:CHAR(n),VARCHA2(n),LANG,CLOB

    表示数字的数据类型:NUMBER(p,s):p为精度,s为刻度

    表示二进制的数据类型:RAW或者LONG RAW、BLOB、BFILE

    表示日期的数据类型:DATE、TIMESTAMP、间隔:年到月、天到秒

    SQL> create table t(da1 date,da2 timestamp)'
    
    SQL>
    SQL>
    SQL> create table t(da1 date,da2 timestamp); 表已创建。 SQL> insert into t values(sysdate,sysdate); 已创建 行。 SQL> commit; 提交完成。 SQL> col da2 for a45 SQL> select * from t; DA1 DA2
    -------------- ---------------------------------------------
    -8月 - -8月 - 09.46.51.000000 上午
  12. INTERVAL YEAR TO MONTH 数据类型使用年和月日期字段存储一段时间

    INTERVAL DAY TO SECOND 数据类型使用天,小时,分钟,秒存储一段时间

    SQL> drop table e purge;
    
    表已删除。
    
    SQL> create table e as select * from emp ;
    
    表已创建。
    
    SQL> alter table e add jg interval year to month;
    
    表已更改。
    
    SQL> desc e
    名称 是否为空? 类型
    ----------------------------------------- -------- ----------------------------
    EMPNO NUMBER()
    ENAME VARCHAR2()
    JOB VARCHAR2()
    MGR NUMBER()
    HIREDATE DATE
    SAL NUMBER(,)
    COMM NUMBER(,)
    DEPTNO NUMBER()
    JG INTERVAL YEAR() TO MONTH SQL> select empno,ename,hiredate,hiredate+jg from e; EMPNO ENAME HIREDATE HIREDATE+JG
    ----- ------ -------------- --------------
    SMITH -12月- -5月 -
    ALLEN -2月 - -7月 -
    WARD -2月 - -7月 -
    JONES -4月 - -9月 -
    MARTIN -9月 - -2月 -
    BLAKE -5月 - -10月-
    CLARK -6月 - -11月-
    SCOTT -4月 - -9月 -
    KING -11月- -4月 -
    TURNER -9月 - -2月 -
    ADAMS -5月 - -10月-
    JAMES -12月- -5月 -
    FORD -12月- -5月 -
    MILLER -1月 - -6月 -
  13. 约束

    约束是强加到表中的列上的规则

    oracle中提供了五种约束:

    NOT NULL
    UNIQUE
    PRIMARY KEY
    FOREIGN KEY
    CHECK

    约束规则:

    创建约束时,可以对约束进行命名,也可以使用SYS_Cn的格式自定义命名

    可以在以下时候创建约束:

    在表创建时同时创建约束
    在表创建以后创建约束

    在表或者列级别创建约束

    在数据字典中查看约束

    定义约束:

    列级别:

创建和管理表【weber出品必属精品】的更多相关文章

  1. 全世界最详细的图形化VMware中linux环境下oracle安装(二)【weber出品必属精品】

    <ORACLE 10.2.05版本的升级补丁安装> 首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入D ...

  2. 全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】

    安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装 ...

  3. 创建存储过程和函数【weber出品必属精品】

    一.什么是存储过程和函数 1. 是被命名的pl/sql块 2. 被称之为pl/sql子程序 3. 与匿名块类似,有块结构: 声明部分是可选的(没有declare关键字) 必须有执行部分 可选的异常处理 ...

  4. 控制用户的访问之权限、角色【weber出品必属精品】

    权限的作用 限制用户对数据的访问 权限的分类 1. 系统权限:能够存取数据库的权限 2. 对象权限:操作数据库对象的内容 系统权限  1.1 如何创建用户: SQL> create user t ...

  5. 使用DML语句【weber出品必属精品】

    DML语句包含以下语法: INSERT:往一个表中增加新行 DELETE:从一个表中删除掉现有的行 UPDATE:更改一个表中现有的行 INSERT语句语法:INSERT INTO TABLE(COL ...

  6. 静默安装ORACLE【weber出品必属精品】

    安装配置系统环境安装linux ,所有服务都不选择,只是选择安装开发工具,不要安装防火墙(当然也可以在后面关闭) 打开终端,执行如下命令,检查安装包,没有的都要安装 make, glibc, liba ...

  7. 初识数据字典【weber出品必属精品】

    数据字典结构 有两部分组成: 1. 基表:以$结尾的系统表,在创建数据库的时候,oracle自动创建的表 2. 用户可以访问的视图 数据字典的种类 DICTIONARY:简称DICT,所有的数据字典, ...

  8. 数据库对象(视图,序列,索引,同义词)【weber出品必属精品】

    视图视图的定义:视图就是一个查询的别名为什么使用视图限制数据的存取 SQL> conn /as sysdba 已连接. SQL> grant create view to scott; 授 ...

  9. 高级子查询【weber出品必属精品】

    多列子查询 where条件中出现多列与子查询进行比较 多列子查询分为:成对比较和非成对比较 成对比较: SQL> select ename,sal,job from emp where (dep ...

随机推荐

  1. POJ 1845

    接下来交给大家一个网上查不到的解题方法 题目是酱找出a^b的因子的和答案对9901取模 我们将a可变成这样e1^x1*e2^x2...(ei为素数) 答案就变成这样(e1^0+e1^1...e1^x1 ...

  2. The Suspects

    算法:并查集 严重急性呼吸系统综合症( SARS), 一种原因不明的非典型性肺炎,从2003年3月中旬开始被认为是全球威胁.为了减少传播给别人的机会, 最好的策略是隔离可能的患者. 在Not-Spre ...

  3. POJ2100 Graveyard Design(尺取法)

    POJ2100 Graveyard Design 题目大意:给定一个数n,求出一段连续的正整数的平方和等于n的方案数,并输出这些方案,注意输出格式: 循环判断条件可以适当剪支,提高效率,(1^2+2^ ...

  4. 贪心 CF 332 C 好题 赞

    题目链接: http://codeforces.com/problemset/problem/332/C 题目意思: 有n个命令,要通过p个,某主席要在通过的p个中选择k个接受. 每个任务有两个值ai ...

  5. 复习css3的部分属性

    利用css3实现一个半月形的西瓜,利用queue实现吃西瓜的动画.练习例子 css3: 1.圆角 border-radius:100%; border-top-left-radius:5px; 2.变 ...

  6. 一步步教你css3手风琴效果的实现

    什么是手风琴效果? 首先我们先来看一段动画,如下图所示: 在上面动画中,我们不难发现,一排照片正常排列,当我鼠标移上(:hover)时,照片会变大显示并且把其它照片挤小.那么在鼠标来回移动的过程中,画 ...

  7. Vim光标移动

    最近全面转换开发到Mac OS下,用MacVim作为IDE.记录一些Vim基本操作给自己备忘. 此次所说的都是在common-mode(c-mode,在Vim又名normal-mode,就是刚进入vi ...

  8. Activiti工作流学习-----基于5.19.0版本(4)

    四.使用工作流开发 org.activiti.engine.ProcessEngine提供的Service作用在工作流引擎上面,如果所示是模仿一个公司简单的审批流程,你可以下载这个Demo:Activ ...

  9. jQuery.fn

    DIY一个jQuery 写了一个非常简单的 jQuery.fn.init 方法: jQuery.fn.init = function (selector, context, root) { if (! ...

  10. Caffe : Layer Catalogue(2)

    TanH / Hyperbolic Tangent 类型(type):TanH CPU 实现: ./src/caffe/layers/tanh_layer.cpp CUDA.GPU实现: ./src/ ...