Oracle資料庫之建立和管理表
Oracle資料庫總結:
建表語法:
create table tablename
(columnname datatype,
..............)
[with option]
[as sql語句];
SQL> create table test3
2 (tid number,
3 tname varchar2(20),
4 hiredate date default sysdate);
表已建立。
SQL> insert into test3(tid,tname) values(1,’sihai’);
已建立 1 行。
SQL> select * from test3;
TID TNAME HIREDATE
---------- -------------------- --------------
1 sihai 11-3月 -15
已選擇 1 行。
SQL> –rowid 行地址 偽列
SQL> select rowid,empno,ename,sal
2 from emp;
ROWID EMPNO ENAME SAL
------------------ ---------- ---------- ----------
AAAMfPAAEAAAAAgAAA 7369 SMITH 800
AAAMfPAAEAAAAAgAAB 7499 ALLEN 1600
AAAMfPAAEAAAAAgAAC 7521 WARD 1250
AAAMfPAAEAAAAAgAAD 7566 JONES 2975
AAAMfPAAEAAAAAgAAE 7654 MARTIN 1250
AAAMfPAAEAAAAAgAAF 7698 BLAKE 2850
AAAMfPAAEAAAAAgAAG 7782 CLARK 2450
AAAMfPAAEAAAAAgAAH 7788 SCOTT 3000
AAAMfPAAEAAAAAgAAI 7839 KING 5000
AAAMfPAAEAAAAAgAAJ 7844 TURNER 1500
AAAMfPAAEAAAAAgAAK 7876 ADAMS 1100
ROWID EMPNO ENAME SAL
------------------ ---------- ---------- ----------
AAAMfPAAEAAAAAgAAL 7900 JAMES 950
AAAMfPAAEAAAAAgAAM 7902 FORD 3000
AAAMfPAAEAAAAAgAAN 7934 MILLER 1300
已選擇 14 行。
SQL> –建立表,儲存20號部門的員工
1 create table emp20
2 as
3* select * from emp where deptno=20
SQL> /
表已建立。
SQL> select * from emp20;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 17-12月-80 800
20
7566 JONES MANAGER 7839 02-4月 -81 2975
20
7788 SCOTT ANALYST 7566 19-4月 -87 3000
20
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7876 ADAMS CLERK 7788 23-5月 -87 1100
20
7902 FORD ANALYST 7566 03-12月-81 3000
20
已選擇 5 行。
SQL> –建立表:員工號 姓名 月薪 年薪 部門名稱
SQL> create table empinfo
2 as
3 select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname
4 from emp e,dept d
5 where e.deptno=d.deptno;
表已建立。
SQL> select * from empinfo;
EMPNO ENAME SAL ANNSAL DNAME
---------- ---------- ---------- ---------- --------------
7369 SMITH 800 9600 RESEARCH
7499 ALLEN 1600 19200 SALES
7521 WARD 1250 15000 SALES
7566 JONES 2975 35700 RESEARCH
7654 MARTIN 1250 15000 SALES
7698 BLAKE 2850 34200 SALES
7782 CLARK 2450 29400 ACCOUNTING
7788 SCOTT 3000 36000 RESEARCH
7839 KING 5000 60000 ACCOUNTING
7844 TURNER 1500 18000 SALES
7876 ADAMS 1100 13200 RESEARCH
EMPNO ENAME SAL ANNSAL DNAME
---------- ---------- ---------- ---------- --------------
7900 JAMES 950 11400 SALES
7902 FORD 3000 36000 RESEARCH
7934 MILLER 1300 15600 ACCOUNTING
已選擇 14 行。
修改表語法;(tablename:表名稱;datatype:資料型別;columnname:列名)
新增列:alter table tablename add columnname datatype;
修改列:alter table tablename modify columnname datatype;
刪除列:alter table tablename drop column columnname;
SQL> – 修改表:追加新列 修改列 刪除列 重新命名列 重命名錶
SQL> desc test3
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
TID NUMBER
TNAME VARCHAR2(20)
HIREDATE DATE
SQL> alter table test3 add photo blob;
表已更改。
SQL> desc sihai10
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
TID NUMBER
TNAME VARCHAR2(20)
HIREDATE DATE
PHOTO BLOB
SQL> alter table test3 modify tname varchar2(40);
表已更改。
SQL> desc test3
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
TID NUMBER
TNAME VARCHAR2(40)
HIREDATE DATE
PHOTO BLOB
SQL> alter table test3 drop column photo;
表已更改。
SQL> alter table test3 rename column tname to username;
表已更改。
SQL> rename test3 to test4;
表已重新命名。
SQL> host cls
SQL> –刪除表
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
TEST2 TABLE
TEST1 TABLE
EMP10 TABLE
TESTSAVEPOINT TABLE
TESTDELETE TABLE
EMP20 TABLE
EMPINFO TABLE
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
TEST4 TABLE
已選擇 12 行。
SQL> drop table test4;
表已刪除。
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
TEST2 TABLE
TEST1 TABLE
EMP10 TABLE
TESTSAVEPOINT TABLE
TESTDELETE TABLE
BIN$614V+lSURJGA1iC0nwlKKg==$0 TABLE
EMP20 TABLE
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
EMPINFO TABLE
已選擇 12 行。
SQL> –Oracle的回收站
SQL> –才查看回收站
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST4 BIN$614V+lSURJGA1iC0nwlKKg==$0 TABLE 2015-03-11:16:05:22
SQL> –清空回收站
SQL> purge recyclebin;
回收站已清空。
SQL> select * from TESTSAVEPOINT;
TID TNAME
---------- --------------------
1 sihai
2 Mary
已選擇 2 行。
SQL> drop table TESTSAVEPOINT;
表已刪除。
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TESTSAVEPOINT BIN$IC4h7QX9Sv2aRY11zR9/hg==$0 TABLE 2015-03-11:16:08:27
SQL> select * from TESTSAVEPOINT;
select * from TESTSAVEPOINT
*
第 1 行出現錯誤:
ORA-00942: 表或檢視不存在
SQL> select * from BIN
select * from BIN
*
第 1 行出現錯誤:
ORA-00933: SQL 命令未正確結束
SQL> select * from “BIN
TID TNAME
---------- --------------------
1 sihai
2 Mary
已選擇 2 行。
約束:
primary key:主鍵
foreign key:外來鍵
unique:唯一
not null:不為空
check
SQL> create table test5
2 (tid number,
3 tname varchar2(20),
4 gender varchar2(2) check (gender in (‘男’,’女’)),
5 sal number check (sal > 0)
6 );
表已建立。
SQL> insert into test5 values(1,’sihai’,’男’,1000);
已建立 1 行。
SQL> insert into test5 values(2,’Mike’,’啊’,1000);
insert into test5 values(2,’Mike’,’啊’,1000)
*
第 1 行出現錯誤:
ORA-02290: 違反檢查約束條件 (SCOTT.SYS_C005393)
SQL> create table student
2 (
3 sid number constraint student_pk primary key,
4 sname varchar2(20) constraint student_name_notnull not null,
5 gender varchar2(2) constraint student_gender check (gender in (‘男’,’女’)),
6 email varchar2(40) constraint student_email_unique unique
7 constraint student_email_notnull not null,
8 deptno number constraint student_fk references dept(deptno) on delete set null
9 );
表已建立。
SQL> insert into student values(1,’sihai’,’男’,’[email protected]’,10);
已建立 1 行。
SQL> insert into student values(2,’Mike’,’男’,’[email protected]’,10);
insert into student values(2,’Mike’,’男’,’[email protected]’,10)
*
第 1 行出現錯誤:
ORA-00001: 違反唯一約束條件 (SCOTT.STUDENT_EMAIL_UNIQUE)
相關推薦
Oracle資料庫之建立和管理表
Oracle資料庫總結: 建表語法: create table tablename (columnname datatype, ..............) [with option] [as sql語句]; SQL> create tab
Oracle 之建立和管理表
Oracle 之建立和管理表 常見的資料庫物件: 物件 描述 表 基本的資料儲存集合,由行和列組成 檢視 重表中抽出的邏輯上相關的資料集合 序列
SQL語法之建立和管理表
一、建立資料庫 # 建立資料庫,選擇具體的庫 #建立資料庫 CREATE DATABASE temp; #顯示當前使用者下的資料庫 SHOW DATABASES; # 使用某個具體的資料庫,”使用
Oracle中用sql語句建立和管理表
建立語法 create table [schema.]tablename (column datatype [default expr] [constaint], ....) 查看錶結構 desc tablename 克隆表 克隆整個表: create table e
Oracle DB 使用DDL語句建立和管理表
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Greenplum建立和管理表空間(Tablespace)
目錄 一、概述 一、概述 表空間(Tablespace)允許資料庫管理員在每個機器上使用多個檔案系統(FileSystem),決定如何更好地使用物理儲存空間來儲存資料庫物件。表空間被命名為在檔案空間(Filespace)裡的位置,在檔案空間裡可以
Oralce-建立和管理表
查詢使用者自己的表、檢視、同義詞和序列 SELECT * FROM user_catalog; 檢視使用者自己定義的表 select table_name from user_tables; 檢視使用者自己定義的資料庫物件 select distinct objec
oracle資料庫中使用hibernate生成表不能正確建立表
最近在專案中使用hibernate的動態生成表,即將hbm2ddl.auto配置成update時,發現hibernate並沒有按照預設的生成規則生成相應的資料表資訊。但奇怪的是,只是部分表沒有生成,而其它的表即生成成功了。重新啟動專案,發現問題依舊。奇怪的是,雖然有些表沒有生成,但它相關聯的關聯表即生成了,而
DB2資料庫的建立和表空間建立更改
1.建立資料庫 create database testdb automatic storage yes on /database using codeset UTF-8 territory cn collate using system PAGESIZE 32768&nbs
Oracle資料庫的建立表全
CREATE TABLE "庫名"."表名" ( "FEE_ID" VARCHAR2(10 BYTE) constraint ABS_FEE_ID primary key,--主鍵,必須要有序列 "BANK_GROUP_ID" VARCHAR2(5 BYTE), "ABS_PRODUCT_ID" VA
KVM虛擬化技術之使用Qemu-kvm建立和管理虛擬機器
一 .KVM 簡介 KVM (名稱來自英語: Kernel-basedVirtual Machine 的縮寫,即基於核心的虛擬機器) , 是一種用於Linux核心中的虛擬化基礎設施,可以將Linux核心轉化為一個hyper
Oracle學習之建立資料庫(新建例項)
出處:http://blog.csdn.net/luiseradl/article/details/6972217 http://wenku.baidu.com/view/864b9b2c453610661ed9f469.html My points: (1)我的頭頭說一般不需要建立資料庫,在Orcl資料庫
修改oracle資料庫預設建立的表空間為小檔案表空間
修改資料庫預設建的表空間為小檔案表空間: 又一次安裝oracle資料庫安裝好後,建立表空間報錯 create tablespace db01 datafile '/opt/oracle/db/oradata/oradb/db01.dbf' size 10M,
LitePal之建立和升級資料庫
LitePal是一款開源的Android資料庫框架,它採用了物件對映(ORM)的模式,並將我們平時開發最常用到的一些資料庫功能進行了封裝,使得不用編寫一行SQL語句就可以完成各種建表和增刪改查的操作。 要使用LitePal的第一步,我們需要在app/build.gradle
oracle資料庫之多表聯接查詢(一)
--此文章可以作為sql指令碼直接執行 /* 建表以及插入相關資料,為後面的查詢做準備工作 */ --建學生資訊表 create table studentinfo( stuid int primary key, sname varchar(10) not
解決在oracle資料庫中使用hibernate生成表不能正確建立表的問題
最近在專案中使用hibernate的動態生成表,即將hbm2ddl.auto配置成update時,發現hibernate並沒有按照預設的生成規則生成相應的資料表資訊。但奇怪的是,只是部分表沒有生成,而其它的表即生成成功了。重新啟動專案,發現問題依舊。奇怪的是,雖然有些表沒
Oracle資料庫之外連線和分組查詢:left,right,full join 和表連線
資料庫開發時經常要編寫過程來優化資料庫的增刪該查和一些簡單的業務操作,或在java中呼叫,或定義job按時執行(如每天,每週,每月...的統計任務),其中查詢操作最有可能面臨效能瓶頸。 因此,我們通常希望(遇過按月查詢幾億條資料的情況)查詢操作能夠儘可能地快,減少對資料量大
Oracle資料庫之五 限定查詢和排序顯示
五、限定查詢和排序顯示 5.1、限定查詢 5.1.1 認識限定查詢 例如:如果一張表中有 100w 條資料,一旦執行了 “ SELECT * FROM 表 ” 語句之後,則將在螢幕上顯示錶中全部資料行的記錄,這樣既不方便瀏覽,也可能造成宕機的問題,所以此時就必須對查詢的結果進行篩選,只選出對自己有用的資料即可
Oracle資料庫之七 多表查詢
七、多表查詢 對於查詢在之前已經學過了簡單查詢、限定查詢、查詢排序,這些都屬於 SQL 的標準語句,而上一章的單行函式,主要功能是為了彌補查詢的不足。 而從多表查詢開始就正式進入到了複雜查詢部分。 7.1、基本語法 多表查詢就是在一條查詢語句中,從多張表裡一起取出所需要的資料。如果要想進行多表查詢,
Oracle hint之ORDERED和USE_NL
lec rst 選擇 sel 使用 ner where plan account Hint:ORDERED和USE_NL ORDERED好理解,就是表示根據 from 後面表的順序join,從左到右,左邊的表做驅動表 use_nl(t1,t2):表示對表t1、t