How can I make my Drupal website automatically reflect the changes when the DB values change? In performance I have caching turned off, yet if I update a value in the DB  directly I have to flush the cache to see changes on my site. Why is that?
(ex: using phpmyadmin and changing a value) 

I'm inserting/updating values to my DB externally from another server that is not using Drupal. (using mysql)

How can I make my Drupal website automatically reflect the changes when the DB values change?
The settings you are referring just tell Drupal to use the cache_page table.
See drupal_page_footer() that contains the following code.

  if (variable_get('cache', 0) &amp;&amp; ($cache = drupal_page_set_cache())) {
    drupal_serve_page_from_cache($cache);
  }
  else {
    ob_flush();
  }


For the fields, there is the cache_field table (cleared by field_cache_clear()), which is used from the field CRUD API, but also from the field attach API, which includes functions like field_attach_load() or field_attach_update(). If you are writing a field table without using one of the field API functions, such as in your case, then you need to clear the field cache; if you look at the code of field_attach_update() you can understand exactly which cache ID you should pass, to avoid clear all the cache for no reason.