This is common information which DBA required on daily basis for monitoring or reporting purpose. This is basic details which help us to get the database growth statistics on daily, weekly and monthly basis so we can have idea for the disk space management. We can dump daily database statistics and make database size and growth reports too. You all know about the script and you may used too. Even i would like to share. System stored procedures also help us to get the same database information like sp_helpdb stored procedure give details like,
EXEC sp_helpdb 'master';

This is all information for database which returned by sp_helpdb by passing database name as a parameter. I f you do not wish to pass database name then it will return all database without physical file details. Same approach receive by sp_spaceused system stored procedure without any parameter passing,
EXEC sp_spaceused;

Now i would like to get it with some other scripts which give details for each databases and their physical files,
USE master
GO
SELECT db.[name] AS 'DBName',
af.name AS 'LogicalName',
af.[filename] AS 'PhysicalName',
( Cast(( ( ( Cast(af.[size] AS NUMERIC(18, 4)) * 8192 ) / 1024 ) / 1024 )
AS
NUMERIC(18, 2)) ) AS 'FileSize_MB'
FROM sys.sysdatabases db
INNER JOIN sys.sysaltfiles af
ON db.dbid = af.dbid

(Click on image to enlarge)
This is details returned by each physical files of all databases but now same script with minor changes return whole database size details without physical files detail,
USE master
GO
SELECT db.[name] AS 'DBName',
Sum(( Cast(( ( ( Cast(af.[size] AS NUMERIC(18, 4)) * 8192 ) / 1024 ) /
1024 ) AS
NUMERIC(18, 2)) )) AS 'FileSize_MB'
FROM sys.sysdatabases db
INNER JOIN sys.sysaltfiles af
ON db.dbid = af.dbid
GROUP BY db.[name]

These are the scripts which i want to share with you which may help you and i would like you to share your thoughts and scripts which you are using for database size and growth statistics. You may read my earlier post for Database Backup Statistics and History.