Who (или Whom) является местоимением, и используется говорящим в качестве подлежащего или дополнения глагола, чтобы указать, о каком человеке идет речь, либо чтобы ввести какую-либо дополнительную информацию о только что упомянутом человеке. Это местоимение может употребляться только по отношению к одушевленным лицам.
Which является местоимением, и используется говорящим в качестве подлежащего или дополнения глагола, чтобы указать, о какой вещи или вещах идет речь, либо чтобы ввести какую-либо дополнительную информацию о только что упомянутой вещи. Это местоимение может употребляться только по отношению к неодушевленным предметам.
That является местоимением, и используется говорящим в качестве подлежащего или дополнения глагола, чтобы указать, о каком человеке или о какой вещи идет речь, либо чтобы ввести какую-либо дополнительную информацию о только что упомянутом человеке или вещи. Это местоимение может употребляться по отношению как к одушевленным лицам, так и к неодушевленным.
Все эти местоимения в некоторых случаях могут опускаться (для подробностей смотрите относительные местоимения).
Например:
The girl who was hungry.
Девочка, которая была голодна.
The boy whom I talked to.
Мальчик, с которым я разговаривал.
The dog that wagged its tail.
Пес, который вилял хвостом.
The software (that) I wrote.
Программное обеспечение, которое написал я.
The company, which / that hired me.
Компания, которая наняла меня.