一、 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;
11、oracle過期解決辦法
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(被複制的表);
13、oracle 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;