Opcode tables actually don't exist anywhere (except in some architectures that have microcode... explained below). The way that they work is that the opcodes for a microprocessor are interpreted by a series of digital circuits that implement a state machine. These circuits are called the control unit. The control unit is responsible for enabling memory reads, writes, controlling the ALU etc to create the behavior desired for a specific opcode.
An example. Suppose you issue an opcode for loading data from an immediate instruction to a register. This opcode will trigger the state machine to increment the program counter by one and issue a memory read, enabling internal buses so that the read appears on the input line of the latches for the specific regester (all controled by internal buffer lines). When the clock signal hits, the location of ram at the incremented program counter is on the data bus and is read into the register. Then the controller moves onto the next state, which is to fetch the next opcode.
How these states are encoded into the circuitry is by logic gates that assert signals at the correct time based on specific inputs to the control register. Somtimes this was implemented as a ROM, othertimes as logic circuits. On older microprocessors such as the 6502 this had an interesting side effect. There were several undefined opcodes that were not designed to do anything, however when issuing these opcodes, they would trigger functionality of the controller that the designers didn't intend, because these undefined opcodes would appear to be part of a specific opcode for one part of the control unit and another part of the opcode will be interpreted differently for yet another aspect of the control unit. This lead to undefined behavior, some of which was useful and was actually utilized in code. Others were useless and would halt the processor or mbe unstable.
Architectures that utilize microcode, which is about every modern architecture, read the opcode and have a table with a specific set of internal instructions for implementing that opcode. These instructions would be comparable to a reduced instruction set for the microprocessor, but not directly accessible by the programmer. At this point, these smaller microcode instructions behave just like the traditional architectures in that they would be interpreted by a small state machine to control the behavior of the microprocessor.
An interesting feature of microcode is that the CPU engineers can update the functionality of the processor with microcode table updates. Intel often does this if a bug is found or better way of implementing an opcode is discovered.
For more information on this, see:
http://www.pagetable.com/?p=39
http://en.wikipedia.org/wiki/Control_unit#Hardwired_control_unit
https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Microcode.html