How to create database table with Install Schema in Magento 2?

In Magento 2, You need to create an InstallSchema.php file in the Setup folder under your module. In my case, the Module name is Rbj_Training,

Below code snippets are created database table name of create_form.

<?php
namespace Rbj\Training\Setup;

use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;

class InstallSchema implements InstallSchemaInterface
{
    public function install(
        SchemaSetupInterface $setup,
        ModuleContextInterface $context
    ) {
        //Your install script

        $createform = $setup->getConnection()->newTable($setup->getTable('create_form'));

        $createform->addColumn(
            'entity_id',
            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
            null,
            ['identity' => true,'nullable' => false,'primary' => true,'unsigned' => true,],
            'Entity ID'
        );

        $createform->addColumn(
            'name',
            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
            50,
            [],
            'name'
        );

        $createform->addColumn(
            'phone_no',
            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
            20,
            [],
            'phone_no'
        );

        $createform->addColumn(
            'image',
            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
            255,
            [],
            'Image'
        );

        $setup->getConnection()->createTable($createform);
    }
}

Above script create create_form table with 4 fields, entity_id, name, phone_no, image

entity_id is an auto-increment field, a name is for name display, phone_no is used for phone and image is for image name store.