Criação de tabelas

Meus amigos, qual o melhor e mais prático jeito de criar tabelas?

Utilizando o código:

private static String sql = "CREATE TABLE [clientes] (  [id] INTEGER PRIMARY KEY AUTOINCREMENT, [nome] [VARCHAR(30)],   [email] [VARCHAR(40)],   [endereco] [VARCHAR(50)],   [numero] [VARCHAR(10)]);";
db.execSQL(sql);

ou


@Override
public void onCreate(SQLiteDatabase db) {
    SQLiteDatabase db = new DB(ctx).getWritableDatabase(); // esse código viria da classe DAO, correto?

    StringBuilder sqlClientes = new StringBuilder();
    sqlClientes.append("CREATE TABLE [clientes] (");
    sqlClientes.append("[idCliente] INTEGER PRIMARY KEY AUTOINCREMENT, ");
    sqlClientes.append("nome varchar(30), ");
    sqlClientes.append("email varchar(40), ");
    sqlClientes.append("endereco varchar(50), ");
    sqlClientes.append("numero varchar(10));");
    db.execSQL(sqlClientes.toString());
}

E assim faria para outras tabelas que tivessem. Qual é o método mais adequado?