日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ORACLE数据库常用命令总结

發布時間:2023/12/3 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORACLE数据库常用命令总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SELECT * FROM all_tables WHERE owner='icore_prdtdb'; --查詢當前用戶下所有的表名 SELECT table_name FROM user_tables; --查詢當前用戶下所有的表 SELECT * FROM user_tables; --查詢當前用戶下所有的索引 SELECT * FROM USER_indexes; --查詢當前用戶下所有的序列 SELECT * FROM USER_SEQUENCES; --查詢當前用戶下所有的視圖 SELECT * FROM USER_VIEWS; --查詢所有的表 SELECT * FROM all_tables; --查詢所有的索引 SELECT * FROM all_indexes; --查詢所有的序列 SELECT * FROM all_SEQUENCES; --查詢所有的視圖 SELECT * FROM all_VIEWS;--查詢所有的表名,類型表名含義 和 視圖 SELECT * FROM USER_tab_comments;SELECT SEQUENCE_OWNER,SEQUENCE_NAME FROM DBA_SEQUENCES WHERE SEQUENCE_OWNER='icore_prdtdb'; --統計當前用戶下序列的個數 SELECT count(*) FROM DBA_SEQUENCES WHERE SEQUENCE_OWNER='icore_prdtdb';--刪除序列 DROP SEQUENCE SequenceName; --刪除視圖 DROP VIEW ViewName; --刪除索引 DROP INDEX IndexName;--查看死鎖的語句 select sql_text from v$sql where hash_value in(SELECT sql_hash_value from v$session where sid in (select session_id from V$LOCKED_OBJECT));select s.username,I.OBJECT_ID,I.SESSION_ID,s.SERIAL#,I.ORACLE_USERNAME,I.OS_USER_NAME,I.PROCESS FROM V$LOCKED_OBJECT I,V$SESSION S WHERE I.SESSION_ID=S.SID;ALTER SYSTEM KILL SESSION '20,11393';--查看死鎖的語句 select sql_text from v$sql where hash_value in(SELECT sql_hash_value from v$session where sid in (select session_id from V$LOCKED_OBJECT)); sqlplus "/as sysdba"(sys/change_on_install) SELECT s.username,I.OBJECT_ID,I.SESSION_ID,s.SERIAL#,I.ORACLE_USERNAEM,I.OS_USER_NAME,I.PROCESS FROM V$LOCK_OBJECT I,v$SESSION S WHERE I.SESSION_ID=S.SID; select pro.spid from v$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.addr;select username,lockwait,status,machine,program from V$session where sid in(select session_id from V$locked_object);--查看死鎖的語句 select s.username,I.OBJECT_ID,I.SESSION_ID,s.SERIAL#,I.ORACLE_USERNAME,I.OS_USER_NAME,I.PROCESS FROM V$LOCKED_OBJECT I,V$SESSION S WHERE I.SESSION_ID=S.SID; ALTER SYSTEM KILL SESSION '1721,7093';

查看死鎖

1)用dba用戶執行以下語句

select username,lockwait,status,machine,program from v$session where sid in(select session_id from v$locked_object)

如果有輸出的結果,則說明有死鎖,且能看到死鎖的機器是哪一臺。字段說明:

Username:死鎖語句所用的數據庫用戶; Lockwait:死鎖的狀態,如果有內容表示被死鎖。 Status: 狀態,active表示被死鎖 Machine: 死鎖語句所在的機器。 Program: 產生死鎖的語句主要來自哪個應用程序

2)用dba用戶執行以下語句,可以查看到被死鎖的語句。

select sql_text from v$sql where hash_value in (select sql_hash_value from v$session where sid in (select session_id from v$locked_object))

2、死鎖的解決方法
1)查找死鎖的進程:

SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#, l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;

2)kill掉這個死鎖的進程:

alter system kill session ‘sid,serial#’; (其中sid=l.session_id)

3)如果還不能解決:

select pro.spid from v$session ses, v$process pro where ses.sid=XX and ses.paddr=pro.addr;

參考:http://www.zuidaima.com/share/1607194957646848.htm
http://blog.itpub.net/30345407/viewspace-2122531/

Oracle ORDER BY子句基本用法

在Oracle中,表中是以非指定順序存儲行數據記錄的,它不管行插入數據庫的順序如何。要按列以升序或降序查詢行記錄,必須明確指示Oracle數據庫要如何去排序。

例如,您可能希望按名稱的字母順序列出所有客戶,或者按照從最低到最高信用限額的順序顯示所有客戶。

要對數據進行排序,我們可以將ORDER BY子句添加到SELECT語句中,參考以下語法:

SELECTcolumn_1,column_2,column_3,... FROMtable_name ORDER BYcolumn_1 [ASC | DESC] [NULLS FIRST | NULLS LAST],column_1 [ASC | DESC] [NULLS FIRST | NULLS LAST],

要按列排序結果集,可以在ORDER BY子句之后列出該列。

按照列名是一個排序順序,可以是:

ASC表示按升序排序
DESC表示按降序排序
默認情況下,無論是否指定ASC,ORDER BY子句都按升序對行進行排序。如果要按降序對行進行排序,請明確使用DESC。

NULLS FIRST在非NULL值之前放置NULL值,NULLS LAST在非NULL值之后放置NULL值。

ORDER BY子句可以按多列對數據進行排序,每列可能有不同的排序順序。

請注意,ORDER BY子句總是SELECT語句中的最后一個子句。

按列位置排序行示例

SELECT name, credit_limit,address FROM customers ORDER BY 2 DESC, 1;

UPPER()函數

ORDER BY子句可在一列上應用一個函數,例如字符串函數,數學函數等,并按函數的結果對數據進行排序。

例如,以下語句使用ORDER BY子句中的UPPER()函數來區分客戶名稱的大小寫:

SELECT customer_id, name FROM customers ORDER BY UPPER( name );

Oracle AND與OR運算符結合示例

可以將AND運算符與其他邏輯運算符(如OR和NOT)組合,以形成一個條件。

例如,以下查詢查找客戶ID為44的訂單,并且狀態已取消(Canceled) 或 待定(Pending)。參考以下實現語句:

SELECTorder_id,customer_id,status,salesman_id,TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date FROMorders WHERE(status = 'Canceled' OR status = 'Pending')AND customer_id = 44 ORDER BYorder_date;

查看Oracle 版本信息

select * from v$version; select banner from sys.v_$version;

在表中新加字段

ALTER TABLE schema.TableName ADD columnName VARCHAR2(32);

修改字段長度

ALTER table schema.TableName MODIFY (字段名 字段類型(長度)); eg: alter table dpsm_dm_drugslog modify(person VARCHAR2(30));

加入注釋

COMMENT ON COLUMN schema.TableName ADD columnName IS '注釋';

創建schema

create user schemaName identified by schemaName default tablespace users temporary tablespace temp; grant connect to schemaName; grant resource to schemaName; grant dba to schemaName; alter user schemaName quota unlimited on users;

創建mysql的schema

--創建數據庫 create schema iiiis default character set utf8 collate utf8_general_ci; --立即啟用配置 flush privileges;

查詢某一列只包含數字的數據,并且值最大

select MAX(columnName) from schemaName.tableName where regexp_like(columnName,'^[0-9]+[0-9]$');

修改列值的長度

alter table schemaName.tableName modify (columnName,VARCHAR2(256));

刪除某列

alter table schemaName.tableName drop column columnName;

備份表

create table tableNewName as select * from schemaName.tableName;

查看表結構

DESCRIBE schemaName.tableName;

查看建表語句

select dbms_metadata.get_ddl('TABLE','a') from dual; //其中a為表名;

將備份表的數據還原到原始表

insert into schemaName.tableName select * from BackupsTableName where columnName='';//BackupsTableName為備份表的表名,columnName列名

數據庫被鎖的解決方法

--查看已錯誤輸入次數 select name, lcount from sys.user$ where name='TIGER'; --查看用戶的具體的被鎖時間 select username,account_status,lock_date from dba_users; --查看FAILED_LOGIN_ATTEMPTS的值,一般數據庫默認是10次嘗試失敗后鎖住用戶 select * from dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS'; --修改為無限次(為安全起見,不建議使用) alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited; --數據庫解鎖 alter user myuser account unlock;

將入唯一約束條件

ALTER TABLE schemaName.tableName ADD CONSTRAINT UNIIQUENAME UNIIQUE(columnName1,columnName2);

刪除唯一約束條件

ALTER TABLE schemaName.tableName DROP CONSTRAINT UNIIQUENAME;

查詢表中字段值相同的數據

SELECT * FROM schemaName.tableName a WHERE (a.columnName1,a.columnName2) IN (SELECT b.columnName1,b.columnName2 FROM schemaName.tableName b GROUP BY b.columnName1,b.columnName2 HAVING COUNT(*)>1);

總結

以上是生活随笔為你收集整理的ORACLE数据库常用命令总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。