失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Oracle中创建和管理表详解

Oracle中创建和管理表详解

时间:2021-01-22 03:52:32

相关推荐

Oracle中创建和管理表详解

数据库|mysql教程

Oracle,中创,建和,管理,详解

数据库-mysql教程

thinkphp登陆源码,Xo硬盘安装ubuntu,github爬虫开源项目,xcode加入php,化工seo技巧lzw

以下是对Oracle中的创建和管理表进行了详细的分析介绍,需要的朋友可以过来参考下 SQL /* SQL 对于表的操作: 创建表,修改表(添加新的列,改变当前某些列,删除列),删除表 SQL 创建表: create table(需要create table的权限) SQL 修改表: alter table tabl

mysql 源码 sln,win远程访问ubuntu,最佳赘婿小爬虫,php -> 符号,seo专用术语lzw

演艺通告 源码,Ubuntu连不上阿里云,中创中间件替换tomcat,python商业爬虫教学,报表可视化工具开源php,seo默认网lzw

以下是对Oracle中的创建和管理表进行了详细的分析介绍,需要的朋友可以过来参考下

SQL> /*

SQL> 对于表的操作: 创建表,修改表(添加新的列,改变当前某些列,删除列),删除表

SQL> 创建表: create table(需要create table的权限)

SQL> 修改表: alter table tablename add/modify/drop

SQL> 删除表:drop table tablename

SQL> */

SQL> show user;

USER 为 “SCOTT”

SQL> –访问hr用户下的表

SQL> select * from hr.employees;

select * from hr.employees

*

第 1 行出现错误:

ORA-00942: 表或视图不存在

SQL> –测试defaul值

SQL> create table test1

2 (tid number,

3 tname varchar(20),

4 hiredate date default sysdate);

表已创建。

SQL> insert into test1(tid,tname) values(1,’Mary’);

已创建 1 行。

SQL> select * from test1;

TID TNAMEHIREDATE

———- ——————– ————–

1 Mary 12-6月 -11

SQL> –rowid rownum都是伪列

SQL> select rowid,rownum,empno from emp;

ROWID ROWNUMEMPNO

—————— ———- ———-

AAANA2AAEAAAAAsAAT1 1122

AAANA2AAEAAAAAsAAO2 1234

AAANA2AAEAAAAAsAAP3 1235

AAANA2AAEAAAAAsAAQ4 2222

AAANA2AAEAAAAAsAAR5 2345

AAANA2AAEAAAAAsAAS6 2346

AAANA2AAEAAAAAsAAA7 7369

AAANA2AAEAAAAAsAAB8 7499

AAANA2AAEAAAAAsAAC9 7521

AAANA2AAEAAAAAsAAD 10 7566

AAANA2AAEAAAAAsAAE 11 7654

ROWID ROWNUMEMPNO

—————— ———- ———-

AAANA2AAEAAAAAsAAF 12 7698

AAANA2AAEAAAAAsAAG 13 7782

AAANA2AAEAAAAAsAAH 14 7788

AAANA2AAEAAAAAsAAI 15 7839

AAANA2AAEAAAAAsAAJ 16 7844

AAANA2AAEAAAAAsAAK 17 7876

AAANA2AAEAAAAAsAAL 18 7900

AAANA2AAEAAAAAsAAM 19 7902

AAANA2AAEAAAAAsAAN 20 7934

已选择20行。

SQL> –rowid:oracle维护一个地址,该地址指向了该行在硬盘上实际存储的位置

SQL> –关于varchar2和char

SQL> create table testchar

2 ( c char(5),

3 v varchar(5));

表已创建。

SQL> insert into testchar values(‘a’,’b’);

已创建 1 行。

SQL> select * from testchar;

CV

—– —–

ab

SQL> select concat(c,’#’),concat(v,’#’) from testchar;

CONCAT CONCAT

—— ——

a # b#

SQL> –添加新列

SQL> alter table testchar

2 add hiredate date;

表已更改。

SQL> desc testchar;

名称 是否为空? 类型

—————————————————————– ——– ——————————————–

CCHAR(5)

VVARCHAR2(5)

HIREDATE DATE

SQL> –修改表

SQL> alter table testchar

2 modify c char(10);

表已更改。

SQL> desc testchar;

名称 是否为空? 类型

—————————————————————– ——– ——————————————–

CCHAR(10)

VVARCHAR2(5)

HIREDATE DATE

SQL> –删除列

SQL> alter table testchar

2 drop hiredate;

drop hiredate

*

第 2 行出现错误:

ORA-00905: 缺失关键字

SQL> ed

已写入 file afiedt.buf

1 alter table testchar

2* drop column hiredate

SQL> /

表已更改。

SQL> desc testchar;

名称 是否为空? 类型

—————————————————————– ——– ——————————————–

CCHAR(10)

VVARCHAR2(5)

SQL> host cls

SQL> –删除表

SQL> select * from tab;

TNAMETABTYPE CLUSTERID

—————————— ——- ———-

DEPT TABLE

EMP TABLE

BONUSTABLE

SALGRADE TABLE

EMP10TABLE

EMP101 TABLE

TEST1TABLE

BIN$gNM24ey8RKW0vjhtZ7ZFsA==$0 TABLE

TESTDELETETABLE

TESTCHAR TABLE

已选择10行。

SQL> drop table testdelete;

表已删除。

SQL> select * from tab;

TNAMETABTYPE CLUSTERID

—————————— ——- ———-

DEPT TABLE

EMP TABLE

BONUSTABLE

SALGRADE TABLE

EMP10TABLE

EMP101 TABLE

TEST1TABLE

BIN$gNM24ey8RKW0vjhtZ7ZFsA==$0 TABLE

TESTCHAR TABLE

BIN$aJrS9iffT4O1GcD0H3fepg==$0 TABLE

已选择10行。

SQL> –使用purge参数彻底删除表

SQL> drop table test1 purge;

表已删除。

SQL> select * from tab;

TNAMETABTYPE CLUSTERID

—————————— ——- ———-

DEPT TABLE

EMP TABLE

BONUSTABLE

SALGRADE TABLE

EMP10TABLE

EMP101 TABLE

BIN$gNM24ey8RKW0vjhtZ7ZFsA==$0 TABLE

TESTCHAR TABLE

BIN$aJrS9iffT4O1GcD0H3fepg==$0 TABLE

已选择9行。

SQL> –oracle的回收站

SQL> –查看回收站

SQL> show recyclebin;

ORIGINAL NAME RECYCLEBIN NAMEOBJECT TYPE DROP TIME

—————- —————————— ———— ——————-

TESTDELETE BIN$aJrS9iffT4O1GcD0H3fepg==$0 TABLE -06-12:15:43:34

TESTDELETE BIN$gNM24ey8RKW0vjhtZ7ZFsA==$0 TABLE -06-12:14:51:43

SQL> –清空回收站

SQL> purge recyclebin;

回收站已清空。

SQL> show recyclebin;

SQL> –关于约束:

SQL> –创建一个表,包含所有约束

SQL> create table myuser

2 ( userID number constraint pk primary key,

3 username varchar2(20) constraint c_name not null,

4 gender varchar2(2) constraint c_gender check (gender in (‘男’,’女’)),

5 email varchar2(20) constraint c_email1 not null

6constraint c_email2 unique

7 deptno number constraint fk refereneces dept(deptno)

8 );

deptno number constraint fk refereneces dept(deptno)

*

第 7 行出现错误:

ORA-00907: 缺失右括号

SQL> create table myuser

2 ( userID number constraint pk primary key,

3 username varchar2(20) constraint c_name not null,

4 gender varchar2(2) constraint c_gender check (gender in (‘男’,’女’)),

5 email varchar2(20) constraint c_email1 not null

6constraint c_email2 unique,

7 deptno number constraint fk refereneces dept(deptno)

8 );

deptno number constraint fk refereneces dept(deptno)

*

第 7 行出现错误:

ORA-02253: 此处不允许约束条件说明

SQL> ed

已写入 file afiedt.buf

1 create table myuser

2 ( userID number constraint pk primary key,

3 username varchar2(20) constraint c_name not null,

4 gender varchar2(2) constraint c_gender check (gender in (‘男’,’女’)),

5 email varchar2(20) constraint c_email1 not null

6constraint c_email2 unique,

7 deptno number constraint fk references dept(deptno)

8* )

SQL> /

表已创建。

SQL> desc myuser;

名称 是否为空? 类型

—————————————————————– ——– ——————————————–

USERID NOT NULL NUMBER

USERNAMENOT NULL VARCHAR2(20)

GENDERVARCHAR2(2)

EMAIL NOT NULL VARCHAR2(20)

DEPTNONUMBER

SQL> insert into myuser values(1,’Tom’,’男’,’ddd@’,10);

已创建 1 行。

SQL> insert into myuser values(1,’Tom’,’男’,’ddd@’,10);

insert into myuser values(1,’Tom’,’男’,’ddd@’,10)

*

第 1 行出现错误:

ORA-00001: 违反唯一约束条件 (SCOTT.PK)

SQL> insert into myuser values(2,’Tom’,’啊’,’ddd@126.coddm’,10);

insert into myuser values(2,’Tom’,’啊’,’ddd@126.coddm’,10)

*

第 1 行出现错误:

ORA-02290: 违反检查约束条件 (SCOTT.C_GENDER)

SQL> –触发器也可以检查数据的正确与否

SQL> spool off

如果觉得《Oracle中创建和管理表详解》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。