How to update the database schema without losing existing data
When you want to apply database schema changes you don't reinstall the module. You apply these changes via hook_update_N() from your MYMODULE.install file.

See Updating Database Schema and/or Data in Drupal 8 on drupal.org.


  If your module is making a data model change related to database
  schema that your module defines with hook_schema(), then you need to
  properly update your data model. The two steps are:
  
  
  Update your hook_schema() code so that it reflects your new data model if the database table and field definitions have changed. This
  will make sure that people that install your module after you made the
  change will install the correct database tables. See the Schema API
  documentation for details on that.
  Write a hook_update_N() function. This will update the database for existing users of your module who already had it installed before
  you made the change so that they can continue to function. This is
  described below.
  


There also is a sample on how to add a new table from hook_update_N():


$spec = [
  'description' =&gt; 'My description',
  'fields'      =&gt; [
    'myfield1' =&gt; [
      'description' =&gt; 'Myfield1 description.',
      'type'        =&gt; 'varchar',
      'length'      =&gt; 255,
      'not null'    =&gt; TRUE,
      'default'     =&gt; '',
    ],
    'myfield2' =&gt; [
      'description' =&gt; 'Myfield2 description',
      'type'        =&gt; 'text',
      'not null'    =&gt; TRUE,
    ],
  ],
  'primary key' =&gt; ['myfield1'],
];
$schema = Database::getConnection()-&gt;schema();
$schema-&gt;createTable('mytable2', $spec);