select*from user_tables;
select*from all_tables;
1select
*from user_tab_columns where table_name=
'使用者表';
2select
*from all_tab_columns where table_name=
'使用者表';
3select
*from dba_tab_columns where table_name=
'使用者表
';
oracle資料庫日期範圍查詢有兩種方式:to_char方式和to_date方式,接下來通過乙個例項來介紹這一過程。假設要查詢2011-05-02到2011-05-30之間的資料。
to_date方式:
select*from tablename where time >=
to_date(
'2011-05-02
','yyyy-mm-dd')
andtime <= to_date('
2011-05-30
','yyyy-mm-dd
') ;
執行的結果是:可以顯示05-02的資料,但是不能顯示05-30的資料。
所有可以得出結論:
1)如果想顯示05-30的資料可以2)如果想要顯示05-30的資料可以<=to_date('2011-05-30 23:59:59 999','yyyy-mm-dd hh24:mi:ss')也是可以查出來的。
to_char方式:
select*from tablename where to_char(time,'
yyyy-mm-dd
') >=
'2011-05-02
'and
to_char(time,'
yyyy-mm-dd
') <=
'2011-05-30
';
執行的結果是:可以同時顯示05-02和05-30的資料。
關於like後面的條件,oracle提供了四種匹配模式:
1)%:表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示。
select*from
user
where name like
'%三%
';
將會把name為「張三」,「張貓三」、「三腳貓」,「唐三藏」等等有「三」的記錄全找出來。
如果需要找出name中既有「三」又有「貓」的記錄,請使用and條件
select*from
user
where name like
'%三%
'and name like
'%貓%
';
2)_:表示任意單個字元。匹配單個任意字元,它常用來限制表示式的字元長度語句。
select*from
user
where name like
'_三_
';
只找出「唐三藏」這樣name為三個字且中間乙個字是「三」的記錄。
select*from
user
where name like
'三__
';
只找出「三腳貓」這樣name為三個字且第乙個字是「三」的記錄。
3)regexp_like:正規表示式函式查詢。
select*from
user
where card_number like
'1____60';
select
*from
user
where regexp_like(card_number, '
1....60
');
可以找出card_number中以1開頭60結束並且查詢為7位的記錄,其中card_number欄位屬性為字串。
但如果card_number屬性為數字,使用like就不是很好實現了,可以使用如下方式:
select*from
user
where regexp_like(card_number, '
1[0-9]60
');
也可以通過使用字符集的方式實現:
select*from
user
where regexp_like(card_number, '
1[[:digit:]]60
');
查詢card_number中不是純數字的記錄:
select*from
user
where
not regexp_like(card_number, '
^[[:digit:]]+$
');
查詢card_number中不包含任何數字的記錄:
select*from
user
where regexp_like(card_number, '
^[^[:digit:]]+$
');
查詢以12或者1b開頭的記錄,不區分大小寫:
select*from
user
where regexp_like(card_number, '
^1[2b]
','i
');
查詢以12或者1b開頭的記錄,區分大小寫:
select*from
user
where regexp_like(card_number, '
^1[2b]
');
查詢資料中包含空白的記錄:
select*from
user
where regexp_like(card_number, '
[[:space:]]
');
查詢所有包含小寫字母或者數字的記錄:
select*from
user
where regexp_like(card_number, '
^([a-z]+|[0-9]+)$
');
查詢任何包含標點符號的記錄:
select*from
user
where regexp_like(card_number, '
[[:punct:]]
');
altertable
user modify(name varchar(255));
select sys_guid() fromdual;
insert
into
user(id) values(sys_guid());
Oracle資料庫常用命令
export oracle sid db name 伺服器 啟動資料庫伺服器 lsnrctl start sqlplus as sysdba sql startup 資料庫 建立資料庫 oracle home bin dbca 或者 oracle home bin dbassist 連線資料庫 co...
Oracle資料庫常用命令
誤刪正在使用的表空間後處理辦法 1 connect sys as sysdba 用sys登陸資料庫 2 shutdown 解除安裝資料庫,關閉資料庫 3 startup mount 例程啟動 4 alter database open 開啟資料庫 5 alter database datafile ...
Oracle資料庫常用命令
1 主鍵和外來鍵 主鍵 關係型資料庫中的一條記錄中有若干個屬性,若其中的某乙個屬性組 注意是組,可以是乙個,也可以是多個 能唯一標識一條記錄,那麼該屬性組就是主鍵 外來鍵 關係型資料庫表中的一列或者某幾列的組合,它的值與另外一張表的某一列或者某幾列相匹配,且為另一張表的主鍵 即這張表的某一列或某幾列...