共計 2335 個字符,預(yù)計需要花費 6 分鐘才能閱讀完成。
本篇內(nèi)容主要講解“oracle 表的管理方式”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學(xué)習(xí)“oracle 表的管理方式”吧!
oracle 支持的數(shù)據(jù)類型?
字符類
char 定長 最大 2000 個字符。
Oracle 筆記
5
例子:char(10) ‘小韓’前四個字符放‘小韓’,后添 6 個空格補全 如‘小韓 ’
varchar2(20) 變長 最大 4000 個字符。
例子:varchar2(10)‘小韓’oracle 分配四個字符。這樣可以節(jié)省空間。
clob(character large object) 字符型大對象 最大 4G
char 查詢的速度極快浪費空間,查詢比較多的數(shù)據(jù)用。
varchar 節(jié)省空間
數(shù)字型
number 范圍 -10 的 38 次方 到 10 的 38 次方
可以表示整數(shù),也可以表示小數(shù)
number(5,2)
表示一位小數(shù)有 5 位有效數(shù),2 位小數(shù)
范圍:-999.99 到 999.99
number(5)
表示一個 5 位整數(shù)
范圍 99999 到 -99999
日期類型
date 包含年月日和時分秒 oracle 默認格式 1-1 月 -1999
timestamp 這是 oracle9i 對 date 數(shù)據(jù)類型的擴展。可以精確到毫秒。
? 圖片
blob 二進制數(shù)據(jù) 可以存放圖片 / 聲音 4G 一般來講,在真實項目中是不會把圖片和聲音真的往數(shù)據(jù)庫里存放,一般存放
圖片、視頻的路徑,如果安全需要比較高的話,則放入數(shù)據(jù)庫。
怎樣創(chuàng)建表
建表
– 學(xué)生表
create table student ( — 表名
xh number(4), – 學(xué)號
xm varchar2(20), – 姓名
sex char(2), – 性別
birthday date, – 出生日期
sal number(7,2) – 獎學(xué)金
);
– 班級表
CREATE TABLE class(
classId NUMBER(2),
cName VARCHAR2(40)
);
修改表
? 添加一個字段
SQL ALTER TABLE student add (classId NUMBER(2));
? 修改一個字段的長度
SQL ALTER TABLE student MODIFY (xm VARCHAR2(30));
? 修改字段的類型 / 或是名字(不能有數(shù)據(jù))不建議做
SQL ALTER TABLE student modify (xm CHAR(30));
? 刪除一個字段 不建議做 (刪了之后,順序就變了。加就沒問題,應(yīng)為是加在后面)
SQL ALTER TABLE student DROP COLUMN sal;
Oracle 筆記
6
? 修改表的名字 很少有這種需求
SQL RENAME student TO stu;
? 刪除表
SQL DROP TABLE student;
添加數(shù)據(jù)
所有字段都插入數(shù)據(jù)
INSERT INTO student VALUES (A001 , 張三 , 男 , 01-5 月 -05 , 10);
oracle 中默認的日期格式‘dd-mon-yy’dd 日子(天)mon 月份 yy 2 位的年 ‘09-6 月 -99’1999 年 6 月 9 日
修改日期的默認格式(臨時修改,數(shù)據(jù)庫重啟后仍為默認;如要修改需要修改注冊表)
ALTER SESSION SET NLS_DATE_FORMAT = yyyy-mm-dd
修改后,可以用我們熟悉的格式添加日期類型:
INSERT INTO student VALUES (A002 , MIKE , 男 , 1905-05-06 , 10);
插入部分字段
INSERT INTO student(xh, xm, sex) VALUES (A003 , JOHN , 女
插入空值
INSERT INTO student(xh, xm, sex, birthday) VALUES (A004 , MARTIN , 男 , null);
問題來了,如果你要查詢 student 表里 birthday 為 null 的記錄,怎么寫 sql 呢?
錯誤寫法:select * from student where birthday = null;
正確寫法:select * from student where birthday is null;
如果要查詢 birthday 不為 null, 則應(yīng)該這樣寫:
select * from student where birthday is not null;
修改數(shù)據(jù)
? 修改一個字段
UPDATE student SET sex = 女 WHERE xh = A001
? 修改多個字段
UPDATE student SET sex = 男 , birthday = 1984-04-01 WHERE xh = A001
修改含有 null 值的數(shù)據(jù)
不要用 = null 而是用 is null;
SELECT * FROM student WHERE birthday IS null;
? 刪除數(shù)據(jù)
DELETE FROM student;
刪除所有記錄,表結(jié)構(gòu)還在,寫日志,可以恢復(fù)的,速度慢。
Delete 的數(shù)據(jù)可以恢復(fù)。
savepoint a; – 創(chuàng)建保存點
DELETE FROM student;
rollback to a; – 恢復(fù)到保存點
一個有經(jīng)驗的 DBA,在確保完成無誤的情況下要定期創(chuàng)建還原點。
DROP TABLE student; – 刪除表的結(jié)構(gòu)和數(shù)據(jù);
delete from student WHERE xh = A001 – 刪除一條記錄;
truncate TABLE student; – 刪除表中的所有記錄,表結(jié)構(gòu)還在,不寫日志,無法找回刪除的記錄,速度快。
到此,相信大家對“oracle 表的管理方式”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!