数据库基础

(1)查询数据库表空间

第一步:dbf数据文件查询

SQL语句示例:

SELECT T.TABLESPACE_NAME,
	D.FILE_NAME,
	D.AUTOEXTENSIBLE,
	D.BYTES,
	D.MAXBYTES,
	D.STATUS
FROM DBA_TABLESPACES T, DBA_DATA_FILES D
WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME
ORDER BY TABLESPACE_NAME,FILE_NAME;

第二步:登录数据库服务器

Linux命令:

1.su - oracle
2.sqlplus / as sysdata
3.alter tablespace "表空间名称" add datafile 'DBF数据文件' size 30G autoextend on next 1G maxsize 30G

第三步:查询表空间

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 4 DESC;

(2)获取随机数

SQL示例:

SELECT ROUND(DBMS_RANDOM.VALUE(1,99)) FROM DUAL;

上述SQL语句为:随机获取1至99之间的整数。

(3)基本数据类型

1)字符串类型

1.1 CHAR类型
CHAR表示定长字符串。

1.2 NCHAR类型
NCHAR表示包含UNICODE格式的定长字符串。

1.3 VARCHAR类型
不要使用VARCHAR数据类型。使用VARCHAR2数据类型。虽然VARCHAR数据类型目前是VARCHAR2的同义词,VARCHAR数据类型将计划被重新定义为一个单独的数据类型用于可变长度的字符串相比,具有不同的比较语义。

1.4 VARCHAR2类型
VARCHAR2表示变长字符串,与CHAR类型不同,它不会使用空格填充至最大长度。VARCHAR2最多可以存储4,000字节的信息。

1.5 NVARCHAR2类型
这是一个包含UNICODE格式数据的变长字符串。 NVARCHAR2最多可以存储4,000字节的信息。

2)数字类型

2.1 NUMBER类型

实际值数据类型存储值
1234567.89Number1234567.89
1234567.89Number(8)1234567
1234567.89Number(6)出错
1234567.89Number(9,1)1234567.9
1234567.89Number(9,3)出错
1234567.89Number(7,2)出错
1234567.89Number(5,-2)1234600
1234512.89Number(5,-2)1234500
1234567.89Number(*,1)1234567.9
0.012Number(2,3)0.012
0.23Number(2,3)出错

2.2 INTEGER类型

2.3 浮点数类型

2.4 FLOAT类型

3)日期类型

4)LOB类型

(4)在使用left join中on和where的问题

1)on和where的区别

在SQL语句中,使用left join时,经常会用到on和where进行关联或者过滤,两者的区别如下:
1.on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2.where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

假如有如下两张表:
tab1:

idsize
110
220
320
430

tab2:

sizename
110
220
320
430

(5)归档日志查询和清理方法

手动删除归档日志

su - oracle
rman target /
crosscheck archivelog all;
delete archivelog all completed before 'sysdate-1';

查询归档日志占用率

su - oracle
sqlplus as / sysdba
select * from v$flash_recovery_area_usage;		--查看空间占用率
select * from v$recovery_file_dist;				--查看归档日志存放地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值