Here this will solve questions 1 & 2.
Code:
Select t.tablespace_name "Tablespace",
t.status "Status",
ROUND((MAX(d.bytes)/1024/1024) - (SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024),2) "Used MB",
ROUND(SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024,2) "Free MB" ,
t.initial_extent "Initial Extent",
t.next_extent "Next Extent",
t.min_extents "Min Extents",
t.max_extents "Max Extents",
t.pct_increase "Pct Increase"
, SUBSTR(d.file_name,1,80) "Datafile name"
FROM DBA_FREE_SPACE f , DBA_DATA_FILES d , DBA_TABLESPACES t
WHERE t.tablespace_name = d.tablespace_name
AND f.tablespace_name(+) = d.tablespace_name
AND f.file_id(+) = d.file_id
GROUP BY t.tablespace_name ,
d.file_name ,
t.initial_extent ,
t.next_extent ,
t.min_extents ,
t.max_extents ,
t.pct_increase , t.status
ORDER BY 1,3 DESC
question 3 you're on your own. I can't answer all of everyones questions, I have a reputation to live up to