Mysqldump can output selected tables, and you can pipe the output to gzip:
$ mysqldump mydatabase table1 table2 table3 |
gzip -c > dump.sql.gz
There's an option for mysqldump to dump a subset of rows.
$ mysqldump --where "created_at > '2014-03-01'" ...other options...
Of course that WHERE condition must be recognized by all tables you dump. That is, if you reference a column that doesn't exist in one of the tables, it's an error.
Mysqldump has no option for selecting a subset of columns.
Re your comment:
$ (mysqldump ...first... ; mysqldump ...second...) | gzip -c > dump.sql.gz