1.查看當(dāng)前數(shù)據(jù)庫(kù)的實(shí)例名: show parameter instance_name
2.數(shù)據(jù)表結(jié)構(gòu)的相關(guān)操作
創(chuàng)建數(shù)據(jù)表: create table 表名(列1 數(shù)據(jù)類型1,列2 數(shù)據(jù)類型2…….) tablespace 表空間名
修改數(shù)據(jù)表:
l 添加新列: alter table 表名 add (新添加的列名 數(shù)據(jù)類型 )
l 修改和刪除已有列:alter table 表名 modify(列名 數(shù)據(jù)類型); alter table 表名 drop column 列名;
l 重命名列:alter table 表名rename column 舊列名 to 新列名
l 將表轉(zhuǎn)移到另一個(gè)表空間中: alter table 表名 move tablespace 新的表空間
刪除數(shù)據(jù)表: 當(dāng)一個(gè)數(shù)據(jù)表沒有存在的意義時(shí),則需要執(zhí)行刪除操作
drop table 命名
有時(shí),由于某些約束的存在,例如,當(dāng)前表的主鍵被其他表用作外鍵,會(huì)導(dǎo)致無法成功刪除。利用casca
de constraints選項(xiàng)可以將約束同時(shí)刪除,從而保證drop table 命令一定能夠成功執(zhí)行。
3.利用user_tab_cols根據(jù)列名獲得所在表的信息
例如:
Select table_name from user_tab_cols wherelower(column_name)='student_id';
4.更新數(shù)據(jù)
向數(shù)據(jù)表插入數(shù)據(jù): insert into 表名(列名1,列名2,列名3...列名n)
values(值1,值2,值3...值n);
更新數(shù)據(jù):
? 更新單列:update 表名 set 列=新值;
? 更新多列:update 表名 set 列1=新值1,列2=新值2,...
? 注意事項(xiàng):對(duì)于update操作,最容易被忽視的就是添加where條件。上面兩條語句是很危險(xiǎn)的。因?yàn)闆]有添加任何限制條件,因此Oracle將更新表中的所有數(shù)據(jù)。而實(shí)際應(yīng)用中,往往只需要更新部分?jǐn)?shù)據(jù)。因此,對(duì)于重要數(shù)據(jù)的update操作,
首先添加where關(guān)鍵字是一個(gè)好的習(xí)慣,盡管有時(shí)候并不需要過濾條件。例:update 表名 set 列=新值 where...;
5.刪除數(shù)據(jù)
delete 操作用于刪除表中數(shù)據(jù)。除了delete語句之外,truncate命令同樣可以刪除表中數(shù)據(jù)。
delete from 表名 因?yàn)閯h除動(dòng)作的作用對(duì)象為記錄級(jí)別,因此無需指定列名信息。
delete from students where student_id>10;如同update 語句,在使用delete語句時(shí),添加where字句是一個(gè)好的習(xí)慣。
這樣可以避免刪除表中的所有數(shù)據(jù)。
truncate table語句與delete 語句是有本質(zhì)區(qū)別的。Delete語句與insert、update語句同屬于DML——數(shù)據(jù)操作語言的范疇,當(dāng)數(shù)據(jù)修改之后,可以通過回滾操作,忽略所做的數(shù)據(jù)修改。而truncatetable語句則是屬于DDL——數(shù)據(jù)定義語言的范疇,當(dāng)數(shù)據(jù)被刪除之后,無法回滾。 通過truncate table命令刪除表students的數(shù)據(jù)。 Truncate table students;
6.Oracle中的字符型及處理方法
ü 固定長(zhǎng)度字符串char(n)
ü 可變長(zhǎng)度字符串varchar(n) 當(dāng)實(shí)際字符串的長(zhǎng)度不足時(shí),不會(huì)使用空格進(jìn)行填充
ü varchar2(n) 與varchar(n)類型一樣是可變長(zhǎng)度字符串類型,最大長(zhǎng)度都為4000。Oracle在工業(yè)標(biāo)準(zhǔn)之外,
自定義了該類型。使用varchar2(n)可以獲得Oracle向后兼容性的保證。
ü 變量聲明中的字符串類型 3種字符串類型——char(n)、varchar(n)、varchar2(n),都可以用于聲明變量,
但是,最大長(zhǎng)度均為32767ü 字符型處理:
l 返回字符串的小寫和大寫形式——lower()和upper()函數(shù)
l 單詞首字符大寫——initcap() 不管字符是全大寫還是全小寫形式,經(jīng)過initcap()函數(shù)轉(zhuǎn)變后,都為首字符大寫,
其余小寫的形式。
l 返回字符串長(zhǎng)度——length() 例:select length(‘12345’) from dual;
l 截取字符串——substr()函數(shù) substr(string,start_index,length)
l 刪除字符串左側(cè)和右側(cè)空格和兩側(cè)空格——ltrim()和rtrim()和trim() 例:select ltrim(‘ 000’) new_str from dual;
l 串聯(lián)字符串——concat()函數(shù) 將兩個(gè)字符串進(jìn)行連接
l 反轉(zhuǎn)字符串——reverse()函數(shù) 例:select reverse(‘a(chǎn)bcdef’) from dual; 輸出結(jié)果為:fedcba
7.Oracle中的數(shù)值型及處理方法
2 將ASCII碼轉(zhuǎn)換為字符——chr()函數(shù) select chr(65) character from dual;將輸出大寫字符A
2 格式化數(shù)值——to_char()函數(shù) to_char(原數(shù)值,格式) 其中格式參數(shù)由一系列的字符組成。常用字符包括:0、9、,、FM、$、L、C、X
8.Oracle中的日期型及處理方法
獲得當(dāng)前日期——sysdate() select sysdatefrom dual;
為日期加上特定月份——add_months()函數(shù) 例如為當(dāng)前加一個(gè)月:selectadd_months(sysdate,1) new
_date from dual;
返回特定日期所在月的最后一天——last_day()函數(shù)
將日期轉(zhuǎn)換為字符串——to_char()函數(shù) to_char()函數(shù)不僅可以用于數(shù)值的格式化,同樣可以對(duì)日期進(jìn)行格式化。
to_char()函數(shù)格式化日期的使用方法如下所示。to_char(日期,格式) 例子:selectto_char(sysdate,’YYYY-MM-DD’)
new_date from dual; 對(duì)于to_char()函數(shù)來說,所能使用的格式也是Oracle預(yù)定義的。如下表:
To_char()函數(shù)中,用于日期的格式信息
格式代碼
說明
轉(zhuǎn)換結(jié)果實(shí)例
YEAR
獲得年份的全拼
Two thousand nine
YYYY
四位年份
2009
YYY
年份的后三位
009
YY
年份的后兩位
09
Y
年份的后一位
9
Q
季度
2
MM
兩位月份
06
MON
月份的縮寫
6月
MONTH
月份
6月
WW
一年中的第幾周
26
W
一月中的第幾周
4
D
一周中的第幾天
5
DAY
一周中的星期幾
星期四
DD
一月中的第幾天
25
DDD
一年中的第幾天
176
DY
一周中星期幾的縮寫
星期四
HH
某時(shí)刻的小時(shí)數(shù)
11
HH12
某時(shí)刻的12進(jìn)制小時(shí)數(shù)
11
HH24
某時(shí)刻的24進(jìn)制小時(shí)數(shù)
23
MI
某時(shí)刻的分鐘數(shù)
30
SS
某時(shí)刻的秒數(shù)
30
FF
某時(shí)刻的毫秒數(shù)
121
一. Oracle中的復(fù)雜數(shù)據(jù)處理
1. avg()函數(shù)用于獲得一組數(shù)據(jù)的平均值,該函數(shù)只能作用于數(shù)值型。
2. sum() 同樣只能應(yīng)用于數(shù)值型
3. count()函數(shù)用于統(tǒng)計(jì)記錄數(shù)目。有三種情形
l 統(tǒng)計(jì)單列 列名作為count()函數(shù)的參數(shù)。當(dāng)列值不為空時(shí),將計(jì)數(shù)1,否則,將計(jì)數(shù)0
l 統(tǒng)計(jì)所有列 即count(*)進(jìn)行統(tǒng)計(jì),即使所有列值均為空,Oracle仍將計(jì)數(shù)
l 利用count(1)進(jìn)行統(tǒng)計(jì)。 count(1)和count(*)返回值相同,對(duì)每條記錄都計(jì)數(shù)1
二.Oracle中的運(yùn)算
1.數(shù)學(xué)運(yùn)算 包括加(+)、減(—)、乘(*)、除(/)、四種。無論操作數(shù)是何種數(shù)據(jù)類型,都將首先轉(zhuǎn)換為數(shù)值型,
然后才參與運(yùn)算。 值得注意的是,當(dāng)其中一個(gè)操作數(shù)的值為null時(shí),運(yùn)算結(jié)果仍然為null。
2.
三.Oracle中的特殊判式
Oracle進(jìn)行條件判斷時(shí),最常見的操作符為“=”。除此之外,Oracle還提供了若干特殊判式進(jìn)行邏輯判斷。
這些判式包括:
u between 范圍測(cè)試
u in 集合成員測(cè)試
u like 模糊匹配 %(匹配任意長(zhǎng)度的任意字符) _(匹配單個(gè)字符)
u is null 空置判斷
u exits 存在性判斷
u all、some、any 數(shù)量判斷
更多信息請(qǐng)查看IT技術(shù)專欄