之前所有操作的表都是以emp表為标準, 實際上使用者也可以自己建立表。
Schema:稱為模式
select * from <b>scott</b>.emp ;
一張表的命名:目前登陸的使用者名.表名稱
如果現在使用了scott進行登陸,則所有建立的表都是scott模式。
<b>資料類型:</b>
· NUMBER:表示整數(int)
· NUMBER(5,2):表示一共有五位數字,其中兩位是小數,三位是整數(float)
· VARCHAR():表示字元串,VARCHAR後面要跟上一個字段的長度
· DATE:日期格式
· BLOB:二進制檔案:電影、圖檔等。
· CLOB:表示大文本,可以存放4G的文字。
<b>注意:</b>列或表的命名最好是直接用字母最合适。
例如:現在定義一張學生表:
· 學号:NUMBER/int
· 姓名:VARCHAR(30)
· 年齡:NUMBER/int
· 成績:NUMBER(5,2)/float
CREATE TABLE student
(
stno NUMBER ,
name VARCHAR(30) ,
age INT ,
score NUMBER(5,3)
) ;
<b>向表中插入資料:</b>
INSERT INTO student(stno,name,age,score) VALUES (11,'張三',18,89.0) ;
INSERT INTO student(stno,name,age,score) VALUES (12,'李四',18,79.0) ;
INSERT INTO student(stno,name,age,score) VALUES (13,'王五',18,99.0) ;
<b>提問:</b>
如果現在在打開另外一個用戶端,問能否看見student表?
可以看見,建立表的時候直接建立了,而在操作資料表的時候肯定需要事務的支援。
<b>按條件複制表:</b>
例如:現在複制一張20部門的全部雇員資訊表
CREATE TABLE emp20 AS SELECT * FROM emp WHERE deptno=20;
<b>修改表結構:</b>
增加一列、修改一列的長度
為Student包中增加sex列,表示性别,預設值為“男”。
ALTER TABLE student ADD(sex VARCHAR(2) DEFAULT '男') ;
如果以後再插入資料時,資料的性别為null,則預設也為“男”
INSERT INTO student(stno,name,age,score) VALUES (15,'趙六',18,99.0) ;
INSERT INTO student(stno,name,age,score,sex) VALUES (16,'孫七',18,99.0,'女') ;
修改已有的列,例如:sex長度太小了,希望将它的長度修改為6。
ALTER TABLE student MODIFY(sex VARCHAR(6) DEFAULT '女') ;
<b>注意:</b>
有些資料庫ALTER指令是無效的,即表建立完之後就絕對不能更改結構,IBM DB2。
<b>1</b><b>、 </b><b>截斷表</b>
正常情況下删除資料,如果發現删除錯了,則可以通過rollback復原。如果使用了截斷表,則表示所有的資料不可恢複了。
TRUNCATE TABLE 表名稱 ;
truncate table student ;
資料被直接清除了,再也不占用空間了
<b>2</b><b>、 </b><b>重命名表(Oracle</b><b>)</b>
可以把一個已有的表重新給一個新的名字,将student表變為stu表。
RENAME 舊的表名稱 TO 新的表名稱
RENAME student TO stu ;
<b>3</b><b>、 </b><b>删除表</b>
表不用了,直接删除掉:
DROP TABLE 表名稱 ;
DROP TABLE stu ;
本文轉自 李興華 51CTO部落格,原文連結:http://blog.51cto.com/lixinghua/91214,如需轉載請自行聯系原作者