亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 874 | 回復(fù): 0
打印 上一主題 下一主題

3.oracle表的管理 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-12-19 13:56 |只看該作者 |倒序?yàn)g覽

3.oracle 表的管理(數(shù)據(jù)類型,表創(chuàng)建刪除,數(shù)據(jù)CRUD 操作)

oracle 的表的管理

表名和列的命名規(guī)則:

必須以字母開頭

長度不能超過30 個字符

不能使用oracle 的保留字

只能使用如下字符 A-Z,a-z,0-9$,#

oracle 支持的數(shù)據(jù)類型

字符類

char 定長 最大2000 個字符。

例子:char(10) ‘小林’前四個字符放‘小林’,后添6 個空格補(bǔ)全 如‘小

林 ’varchar2(20) 變長 最大4000 個字符。

例子:varchar210) ‘小林’ oracle 分配四個字符。這樣可以節(jié)省空間。

clob(character large object) 字符型大對象 最大4G

char 查詢的速度極快浪費(fèi)空間,查詢比較多的數(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 默認(rèn)格式 1-1 -1999

timestamp 這是oracle9i date 數(shù)據(jù)類型的擴(kuò)展?梢跃_到毫秒。

圖片

blob 二進(jìn)制數(shù)據(jù) 可以存放圖片/聲音 4G 一般來講,在真實(shí)項(xiàng)目中是不會把

圖片和聲音真的往數(shù)據(jù)庫里存放,一般存放圖片、視頻的路徑,如果安全需要比

較高的話,則放入數(shù)據(jù)庫。

怎樣創(chuàng)建表

建表

--學(xué)生表

create table student ( ---表名

xh     number(4),    --學(xué)號

xm     varchar2(20), --姓名

s ex    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;

修改表的名字 很少有這種需求

SQL>RENAME student TO stu;

刪除表

SQL>DROP TABLE student;

添加數(shù)據(jù)

所有字段都插入數(shù)據(jù)

INSERT INTO student VALUES ('A001', '張三', '', '01-5 -05', 10);

oracle 中默認(rèn)的日期格式‘dd-mon-yy dd 日子(天) mon 月份 yy 2 位的

年 ‘09-6 -99 1999 6 9

修改日期的默認(rèn)格式(臨時修改,數(shù)據(jù)庫重啟后仍為默認(rèn);如要修改需要修改注

冊表)

ALTER SESSION SET NLS_DATE_FORMAT ='yyyy-mm-dd';

修改后,可以用我們熟悉的格式添加日期類型:

INSERT INTO student VALUES ('A002', 'MIKE', '', '1905-05-06', 10);

插入部分字段

INSERT INTO student(xh, xm, s ex) VALUES ('A003', 'JOHN', '');

插入空值

INSERT INTO student(xh, xm, s ex, 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 s ex = '' WHERE xh = 'A001';

修改多個字段

UPDATE student SET s ex = '', 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)建保存點(diǎn)

DELETE FROM student;

rollback to a; --恢復(fù)到保存點(diǎn)

一個有經(jīng)驗(yàn)的DBA,在確保完成無誤的情況下要定期創(chuàng)建還原點(diǎn)。

DROP TABLE student; --刪除表的結(jié)構(gòu)和數(shù)據(jù);

delete from student WHERE xh = 'A001'; --刪除一條記錄;

truncate TABLE student; --刪除表中的所有記錄,表結(jié)構(gòu)還在,不寫日志,無

法找回刪除的記錄,速度快。

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP