创建和管理表【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> 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() - 引用其他用户的表
模式(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 ...
随机推荐
- Oracle 大数据处理(一)
数据量: 日数据 2000万 月数据 8000万 处理方式:建立父子分区,采用Range+list模式分区,日期作为主分区,地域作为子分区 索引选择: 由于应用于查询比较多,故建立位图索引,效率 ...
- C++ 基本数据结构整理
Hash Map (Unordered_map) Insert #include <unordered_map> using namespace std; unordered_map &l ...
- Java中int和String互相转换的多种方法
1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...
- 解决CentOS 5.8在虚拟机环境下如何桥接上网
1.虚拟机的网卡配置如下图所示: 2.在CentOS 5.8的命令行界面:输入如下指令 然后准备修改里面的网关地址和自己的IP地址 3.同时查看自己的IP地址和网关 4.在第二步里面修改,网关地址应该 ...
- Zepto源码笔记(一)
最近在研究Zepto的源码,这是第一篇分析,欢迎大家继续关注,第一次写源码笔记,希望大家多指点指点,第一篇文章由于首次分析原因不会有太多干货,希望后面的文章能成为各位大大心目中的干货. Zepto是一 ...
- QQ在线客服
css代码: .float0831 { POSITION: fixed; TOP: 180px; RIGHT: 1px; _position: absolute } .float0831 A { CO ...
- R语言学习网站
一个不错的个人R语言博客网站 http://blog.fens.me/r-overview/
- Python学习笔记总结(一)对象和流程语句总结
一.对象类型 1.数字 数字:不可变 2.字符串 字符串:不可原处修改[修改需要创建新的对象],有顺序,支持求长(len),合并(+),重复(*),索引S[0],分片(S[1:3]],成员测试(in) ...
- cf C. Dima and Salad
http://codeforces.com/contest/366/problem/C 转化为背包问题,可以将a[i]-b[i]*k看成重量,a[i]为价值: 因为a[i]-b[i]*k可以为负数,所 ...
- python中的嵌套类(内部类调用外部类中的方法函数)
在为书中版本是3.X的,但2.X不太支持直接调用. 所以,在PYTHON2.X中,要在内部类中调用外部类的方法,就必须得实例化外部类,然后,传入实例进行调用. 花了我两个小时啊,资料没找到,自己一个一 ...