创建和管理表【weber出品必属精品】
- 创建表
必须有 :
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' 无权限
- SQL> conn /as sysdba
- 拥有存储空间
- 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()
- SQL> conn /as sysdba
- 引用其他用户的表
模式(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"
- 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月 -
- 文字值,表达式,或者SQL函数是合法值
- 其他列的名或者伪列是非法的
- 伪列:不是真正的列,比如: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
- 默认的数据类型必须匹配列的数据类型
- Oracle数据库中的表
- 用户表
由用户创建和维护的一系列表的集合
包含用户的信息数据字典
由Oracle 服务器创建和维护的一系列表的集合
包含数据库的信息 - 数据类型
表示字符的数据类型: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 上午
- 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月 -
- 约束
约束是强加到表中的列上的规则
oracle中提供了五种约束:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK约束规则:
创建约束时,可以对约束进行命名,也可以使用SYS_Cn的格式自定义命名
可以在以下时候创建约束:
在表创建时同时创建约束
在表创建以后创建约束在表或者列级别创建约束
在数据字典中查看约束
定义约束:
列级别:
创建和管理表【weber出品必属精品】的更多相关文章
- 全世界最详细的图形化VMware中linux环境下oracle安装(二)【weber出品必属精品】
<ORACLE 10.2.05版本的升级补丁安装> 首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入D ...
- 全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】
安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装 ...
- 创建存储过程和函数【weber出品必属精品】
一.什么是存储过程和函数 1. 是被命名的pl/sql块 2. 被称之为pl/sql子程序 3. 与匿名块类似,有块结构: 声明部分是可选的(没有declare关键字) 必须有执行部分 可选的异常处理 ...
- 控制用户的访问之权限、角色【weber出品必属精品】
权限的作用 限制用户对数据的访问 权限的分类 1. 系统权限:能够存取数据库的权限 2. 对象权限:操作数据库对象的内容 系统权限 1.1 如何创建用户: SQL> create user t ...
- 使用DML语句【weber出品必属精品】
DML语句包含以下语法: INSERT:往一个表中增加新行 DELETE:从一个表中删除掉现有的行 UPDATE:更改一个表中现有的行 INSERT语句语法:INSERT INTO TABLE(COL ...
- 静默安装ORACLE【weber出品必属精品】
安装配置系统环境安装linux ,所有服务都不选择,只是选择安装开发工具,不要安装防火墙(当然也可以在后面关闭) 打开终端,执行如下命令,检查安装包,没有的都要安装 make, glibc, liba ...
- 初识数据字典【weber出品必属精品】
数据字典结构 有两部分组成: 1. 基表:以$结尾的系统表,在创建数据库的时候,oracle自动创建的表 2. 用户可以访问的视图 数据字典的种类 DICTIONARY:简称DICT,所有的数据字典, ...
- 数据库对象(视图,序列,索引,同义词)【weber出品必属精品】
视图视图的定义:视图就是一个查询的别名为什么使用视图限制数据的存取 SQL> conn /as sysdba 已连接. SQL> grant create view to scott; 授 ...
- 高级子查询【weber出品必属精品】
多列子查询 where条件中出现多列与子查询进行比较 多列子查询分为:成对比较和非成对比较 成对比较: SQL> select ename,sal,job from emp where (dep ...
随机推荐
- channel c3 disabled, job failed on it will be run on another channel
今天执行备份时,报错: allocated channel: c3 channel c3: sid=131 instance=orcl2 devtype=DISK RMAN-03009: fail ...
- INVALID_USER_SCODE问题的解决办法
在用高德地图API的时候,还会遇见一个为题,就是总是提示:INVALID_USER_SCODE.当遇见这个问题的时候,一般的问题都是,注册key之后没有十分钟就开始使用这个key值了.另外一种情况就是 ...
- 在OC中调用Swift类中定义delegate出现:Property 'delegate' not found on object of type ...
找了许久没找到答案, 在下面的链接中, 我解决了这个问题: http://stackoverflow.com/questions/26366082/cannot-access-property-of- ...
- shell中对于命令的搜寻顺序
当你在shell命令行输入一条命令时,shell的搜寻顺序是如何的呢?当你的脚本名字和shell中的函数名字重名,shell是如何决定运行哪一个的? 在shell中,shell对于命令的搜寻优先级为: ...
- webpack,react,babel
window搭建webpack,react,babel傻瓜教程 首先现在的webpack教程已经很多了,写这篇的原因是因为自己在从小白开始的搭建过程中,并没有找到比较好的教程,花费了很多的时间,s ...
- 解决gradle:download特别慢的问题
使用AndroidStudio 2.2.2 新增加了一个dependencies,需要下载jar包,此时就会卡在 gradle:download https://….. 这个状态中. 原因就是因为我们 ...
- mysql常用查询归纳
一.mysql查询的五种子句 where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数) .where常用运算符: 比较运算符 > ...
- AzCopy – 跨帐户复制 Blob
您可以随时从 aka.ms/AzCopy 下载最新版本. 去年4月发布的版本中的新增功能 支持跨帐户复制 Blob:AzCopy 允许您在相同存储帐户内或不同存储帐户之间复制 Blob(有关跨帐户 B ...
- HDU3564 --- Another LIS (线段树维护最值问题)
Another LIS Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- c语言结构体在内存中存储,字节对齐
注意: 出于效率的考虑,C语言引入了字节对齐机制,一般来说,不同的编译器字节对齐机制有所不同,但还是有以下3条通用准则: (1)结构体变量的大小能够被其最宽基本类型成员的大小所整除: (2)结构体每个 ...