创建emp表 oracle,Oracle中创建和管理表详解
Oracle中創建和管理表詳解
更新時間:2013年08月01日 15:44:16 ? 作者:
以下是對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 TNAME??????????????? HIREDATE
---------- -------------------- --------------
1 Mary???????????????? 12-6月 -11
SQL> --rowid rownum都是偽列
SQL> select rowid,rownum,empno from emp;
ROWID????????????????? ROWNUM????? EMPNO
------------------ ---------- ----------
AAANA2AAEAAAAAsAAT????????? 1?????? 1122
AAANA2AAEAAAAAsAAO????????? 2?????? 1234
AAANA2AAEAAAAAsAAP????????? 3?????? 1235
AAANA2AAEAAAAAsAAQ????????? 4?????? 2222
AAANA2AAEAAAAAsAAR????????? 5?????? 2345
AAANA2AAEAAAAAsAAS????????? 6?????? 2346
AAANA2AAEAAAAAsAAA????????? 7?????? 7369
AAANA2AAEAAAAAsAAB????????? 8?????? 7499
AAANA2AAEAAAAAsAAC????????? 9?????? 7521
AAANA2AAEAAAAAsAAD???????? 10?????? 7566
AAANA2AAEAAAAAsAAE???????? 11?????? 7654
ROWID????????????????? ROWNUM????? EMPNO
------------------ ---------- ----------
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;
C???? V
----- -----
a???? b
SQL> select concat(c,'#'),concat(v,'#') from testchar;
CONCAT CONCAT
------ ------
a??? # b#
SQL> --添加新列
SQL> alter table testchar
2? add? hiredate date;
表已更改。
SQL> desc testchar;
名稱????????????????????????????????????????????????????????????? 是否為空? 類型
----------------------------------------------------------------- -------- --------------------------------------------
C????????????????????????????????????????????????????????????????????????? CHAR(5)
V????????????????????????????????????????????????????????????????????????? VARCHAR2(5)
HIREDATE?????????????????????????????????????????????????????????????????? DATE
SQL> --修改表
SQL> alter table testchar
2? modify c char(10);
表已更改。
SQL> desc testchar;
名稱????????????????????????????????????????????????????????????? 是否為空? 類型
----------------------------------------------------------------- -------- --------------------------------------------
C????????????????????????????????????????????????????????????????????????? CHAR(10)
V????????????????????????????????????????????????????????????????????????? VARCHAR2(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;
名稱????????????????????????????????????????????????????????????? 是否為空? 類型
----------------------------------------------------------------- -------- --------------------------------------------
C????????????????????????????????????????????????????????????????????????? CHAR(10)
V????????????????????????????????????????????????????????????????????????? VARCHAR2(5)
SQL> host cls
SQL> --刪除表
SQL> select * from tab;
TNAME????????????????????????? TABTYPE? CLUSTERID
------------------------------ ------- ----------
DEPT?????????????????????????? TABLE
EMP??????????????????????????? TABLE
BONUS????????????????????????? TABLE
SALGRADE?????????????????????? TABLE
EMP10????????????????????????? TABLE
EMP101???????????????????????? TABLE
TEST1????????????????????????? TABLE
BIN$gNM24ey8RKW0vjhtZ7ZFsA==$0 TABLE
TESTDELETE???????????????????? TABLE
TESTCHAR?????????????????????? TABLE
已選擇10行。
SQL> drop table testdelete;
表已刪除。
SQL> select * from tab;
TNAME????????????????????????? TABTYPE? CLUSTERID
------------------------------ ------- ----------
DEPT?????????????????????????? TABLE
EMP??????????????????????????? TABLE
BONUS????????????????????????? TABLE
SALGRADE?????????????????????? TABLE
EMP10????????????????????????? TABLE
EMP101???????????????????????? TABLE
TEST1????????????????????????? TABLE
BIN$gNM24ey8RKW0vjhtZ7ZFsA==$0 TABLE
TESTCHAR?????????????????????? TABLE
BIN$aJrS9iffT4O1GcD0H3fepg==$0 TABLE
已選擇10行。
SQL> --使用purge參數徹底刪除表
SQL> drop table test1 purge;
表已刪除。
SQL> select * from tab;
TNAME????????????????????????? TABTYPE? CLUSTERID
------------------------------ ------- ----------
DEPT?????????????????????????? TABLE
EMP??????????????????????????? TABLE
BONUS????????????????????????? TABLE
SALGRADE?????????????????????? TABLE
EMP10????????????????????????? TABLE
EMP101???????????????????????? TABLE
BIN$gNM24ey8RKW0vjhtZ7ZFsA==$0 TABLE
TESTCHAR?????????????????????? TABLE
BIN$aJrS9iffT4O1GcD0H3fepg==$0 TABLE
已選擇9行。
SQL> --oracle的回收站
SQL> --查看回收站
SQL> show recyclebin;
ORIGINAL NAME??? RECYCLEBIN NAME??????????????? OBJECT TYPE? DROP TIME
---------------- ------------------------------ ------------ -------------------
TESTDELETE?????? BIN$aJrS9iffT4O1GcD0H3fepg==$0 TABLE??????? 2011-06-12:15:43:34
TESTDELETE?????? BIN$gNM24ey8RKW0vjhtZ7ZFsA==$0 TABLE??????? 2011-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
6????????????????????????? constraint 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
6????????????????????????? constraint 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
6????????????????????????? constraint c_email2 unique,
7??? deptno?? number constraint fk references dept(deptno)
8* )
SQL> /
表已創建。
SQL> desc myuser;
名稱????????????????????????????????????????????????????????????? 是否為空? 類型
----------------------------------------------------------------- -------- --------------------------------------------
USERID??????????????????????????????????????????????????????????? NOT NULL NUMBER
USERNAME????????????????????????????????????????????????????????? NOT NULL VARCHAR2(20)
GENDER???????????????????????????????????????????????????????????????????? VARCHAR2(2)
EMAIL???????????????????????????????????????????????????????????? NOT NULL VARCHAR2(20)
DEPTNO???????????????????????????????????????????????????????????????????? NUMBER
SQL> insert into myuser values(1,'Tom','男','ddd@126.com',10);
已創建 1 行。
SQL> insert into myuser values(1,'Tom','男','ddd@126.com',10);
insert into myuser values(1,'Tom','男','ddd@126.com',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修改字段類型方法總結,小編覺得不錯,非常具有實用價值,有興趣的可以了解一下。2016-12-12
數據庫表分割技術包含以下內容:水平分割/垂直分割/庫表散列.接下來將對以上分割進行詳細介紹,感興趣的朋友可以了解下,對你日后維護數據庫是很有幫助的2013-01-01
Oracle 數據庫下 查詢當前用戶下所有表的記錄總數2009-07-07
這篇文章主要介紹了ORA-00392ORA-00312日志正在清除故障的相關資料,需要的朋友可以參考下2016-03-03
這篇文章主要介紹了Oracle的out參數實例詳解的相關資料,這里提供實例幫助大家理解這部分內容,需要的朋友可以參考下2017-08-08
如果你不小心覆蓋了之前的存儲過程,那得趕緊閃回,時長越長閃回的可能性越小,下面為大家介紹下恢復原理2014-05-05
長時間沒寫這類語句了,今天一寫,就發現自己忘記了很多格式。ORACLE的語法方式一定要注意。2009-07-07
今天小編就為大家分享一篇關于oracle常用分析函數與聚合函數的用法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01
這篇文章主要介紹了Oracle自動備份及自動備份步驟的相關資料,需要的朋友可以參考下2016-02-02
今天配置虛擬機中設計了下ip,使虛擬機和主機處在同一網段,然后使用webservice就成功了就來了,oracle連接不上了,接下來講提供詳細的解決方法2012-11-11
最新評論
總結
以上是生活随笔為你收集整理的创建emp表 oracle,Oracle中创建和管理表详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab做TSP,基于matlab
- 下一篇: oracle shutdown 默认,O