Oracle、mySql、sql Server常用sql

一、 ORACLE數據庫

1、查詢字段長度

select * from table1 where length(字段名稱)>2;

2、查詢用戶下表的個數

Select  count(*)  from  user_tables;

Select table_name from all_tables where owner=’scott’;

3、查詢當前用戶的所在表空間,使用百分比,和內存大小

select b.file_id  文件ID,

b.tablespace_name  表空間,

b.file_name     物理文件名,

b.bytes       總字節數,

(b.bytes-sum(nvl(a.bytes,0)))   已使用,

sum(nvl(a.bytes,0))        剩餘,

sum(nvl(a.bytes,0))/(b.bytes)*100 剩餘百分比

from dba_free_space a,dba_data_files b

where a.file_id=b.file_id and b.tablespace_name='TS_TAB_JNLBK_01'

group by b.tablespace_name,b.file_name,b.file_id,b.bytes

order by b.tablespace_name;

 

4、數據庫表空間使用情況(只能查看當天數據)

SELECT UPPER(F.TABLESPACE_NAME) "表空間名",

       D.TOT_GROOTTE_MB "表空間大小(M)",

       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M)",

       TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2), '990.99') "使用比",

       F.TOTAL_BYTES "空閒空間(M)",

       F.MAX_BYTES "最大塊(M)"

  FROM (SELECT TABLESPACE_NAME,

               ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

               ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

          FROM SYS.DBA_FREE_SPACE

         GROUP BY TABLESPACE_NAME) F,

       (SELECT DD.TABLESPACE_NAME,

               ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB

          FROM SYS.DBA_DATA_FILES DD

         GROUP BY DD.TABLESPACE_NAME) D

 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

 ORDER BY 1 ASC;

 

5、查詢各表的大小及按照大小排序

select * from (

select segment_name,sum(bytes)/1024/1024 MB

FROM Dba_Segments

where owner = 用戶名 

group by segment_name

order by 2 DESC

);

6、查詢某個表的所有字段

SELECT * from user_tab_columns where table_name =’表名稱’;

7、查看數據庫服務器字符集

select * from nls_database_parameters;

8、查看客戶端字符集環境

select * from nls_instance_parameters;

9、查看會話字符集環境

select * from nls_session_parameters;

10、查看數據庫字符集

select * from nls_database_parameters;

11oracle過期解決辦法

1、查看用戶的proifle是哪個,一般是default:

sql>SELECT username,PROFILE FROM dba_users;

2、查看指定概要文件(如default)的密碼有效期設置:

sql>SELECT * FROM dba_profiles s WHERE s.profile=\DEFAULT\ AND resource_name=\PASSWORD_LIFE_TIME\;

3、 將密碼有效期由默認的180天修改成“無限制”:

sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

修改之後不需要重啓動數據庫,會立即生效。

4、 修改後,還沒有被提示ORA-28002警告的帳戶不會再碰到同樣的提示;

 已經被提示的帳戶必須再改一次密碼,舉例如下:

$sqlplus / as sysdba

sql> alter user smsc identified by <原來的密碼> ----不用換新密碼

oracle11g啓動參數resource_limit無論設置爲false還是true,密碼有效期都是生效的,所以必須通過以上方式進行修改。以上的帳戶名請根據實際使用的帳戶名更改。

 

12、把一個表中的字段內容複製到另外一個字段

Update 表名稱  set 字段1=字段2(被複制的表);

Update 表名稱  set 字段1=name || 字段2(被複制的表);

13oracle  spool的用法

Spool d:\filename.sql(路徑)

②生成的需要打印的sql

Spool off   ——生成關閉

④@d:\filename.sql  ——讀取執行文件裏面的sql

在生成的sql文件最前面需要加上以下內容

spool on

set echo on #是否顯示執行的命令內容

set feedback on  #是否顯示*

set heading on  #是否顯示字段

set heading on  #去字段空格

最後需要添加

Spool off

14、數據排序時處理空值

Select * from 表 order by 字段 nulls last(first);

15、查詢數據庫某個用戶的數據量大小

select sum(bytes)/1024/1024/1024 from dba_segments t where t.OWNER='WDHT';

16、擴展表空間

Alter tablespace user(表空間名稱)add datafile '/opt/oracle/oradata/esop/so_data02.dbf'(文件路徑) size 200M(文件大小);

17、連接數據庫命令

方法一:sqlplus 用戶名/密碼@192.168.208.120:1521/orcl

方法二: ①sqlplus /nolog

   ②connect username/password@(連接標識符)

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

二、 SQL SERVER 數據庫

1、查詢用戶表的個數

select COUNT(1) from kd0003.dbo.sysobjects where xtype ='U';

2、查看當前用戶所有表

方法一:select * from INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' ORDER BY TABLE_NAME ;

方法二:select Name from sysobjects where xtype='u' and status>=0;

 

 

 

 

 

三、 Mysql 數據庫

字典表

1. INFORMATION_SCHEMA.SCHEMATA  --數據庫中所有數據庫信息

可查看用戶、字符集、

 

2. INFORMATION_SCHEMA.TABLES  --存放數據庫中所有數據庫表信息

可查看  用戶、表名稱、表類型(表or視圖)、表的數據條數、

3. INFORMATION_SCHEMA.COLUMNS  --所有數據庫表的列信息

可查看 表名稱以及每個表的字段名稱、字段數據類型

 

4. INFORMATION_SCHEMA.STATISTICS  --存放索引信息

5. INFORMATION_SCHEMA.USER_PRIVILEGES  --

6. INFORMATION_SCHEMA.SCHEMA_PRIVILEGES

7. INFORMATION_SCHEMA.TABLE_PRIVILEGES

8. INFORMATION_SCHEMA.COLUMN_PRIVILEGES

9. INFORMATION_SCHEMA.CHARACTER_SETS

10. INFORMATION_SCHEMA.COLLATIONS

11. INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY

12. INFORMATION_SCHEMA.TABLE_CONSTRAINTS

13. INFORMATION_SCHEMA.KEY_COLUMN_USAGE ---存放數據庫裏所有具有約束的鍵信息

14. INFORMATION_SCHEMA.ROUTINES

15. INFORMATION_SCHEMA.VIEWS  --存放所有視圖信息

16. INFORMATION_SCHEMA.TRIGGERS  --觸發器信息

1、查看用戶下表的個數

SELECT COUNT( * ) FROM information_schema.tables WHERE TABLE_SCHEMA = '用戶';

2、查看所有可用的字符集

show character set;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章