Replacing column 1 in one file with values in other file

Please help me with an shell / awk script to achieve following;
File-1:

ABCDW01 12322 23322
BDADW01 22232 24453
EDFAW00 32232 23422
and so on, notice that the first coloumn is a code and the another file contains the real value of each entry in the first colum above but not in a particular order.

File-2:
EDFAW00 XXWY_11_1
BDADW01 UHBS_100_0
ABCDW01 CATS_200_1
and so on.

I want to replace in the first file entries in column 1 with their acutal values in file 2, so essentially, this is what I want to achieve

Result Required;

CATS_200_1 12322 23322
UHBS_100_0 22232 24453
XXWY_11_1 32232 23422

This is not a homework.
Thanks for any help in advance.

awk 'NR==FNR{a[$1]=$2;next}{$1=a[$1]}1' file2 file1

It works, thanks a million

Hi.

Also with standard utilities:

#!/usr/bin/env bash

# @(#) s1	Demonstrate use of standard utilities sort and join.

# Utility functions: print-as-echo, print-line-with-visual-space, debug.
# export PATH="/usr/local/bin:/usr/bin:/bin"
pe() { for _i;do printf "%s" "$_i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }
db() { ( printf " db, ";for _i;do printf "%s" "$_i";done;printf "\n" ) >&2 ; }
db() { : ; }
C=$HOME/bin/context && [ -f $C ] && $C sort join

pl " Results of standard GNU sort and join:"
join -o 2.2 1.2 1.3 <( sort data1 ) <( sort data2 )

exit 0

producing:

% ./s1

Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: Linux, 2.6.26-2-amd64, x86_64
Distribution        : Debian GNU/Linux 5.0.8 (lenny) 
GNU bash 3.2.39
sort (GNU coreutils) 6.10
join (GNU coreutils) 6.10

-----
 Results of standard GNU sort and join:
CATS_200_1 12322 23322
UHBS_100_0 22232 24453
XXWY_11_1 32232 23422

See man and info pages for details ... cheers, drl

Thanks DRL, excllent tutorial above solution is. Thanks a lot God Bless.