Like all things Magento (and open source), your best bet is to look at how other developers, specifically the Magento core developers, do the same thing. Here's a few examples
#File: app/code/core/Mage/Tax/sql/tax_setup/mysql4-upgrade-0.7.2-0.7.3.php
$installer = $this;
/* @var $installer Mage_Core_Model_Resource_Setup */
$installer->startSetup();
if (!$installer->getConnection()->fetchOne("select * from {$this->getTable('tax_class')} where `class_name`='Shipping' and `class_type`='PRODUCT'")) {
$installer->run("
insert into {$this->getTable('tax_class')} (`class_name`,`class_type`) values ('Shipping','PRODUCT');
");
}
$installer->endSetup();
...
#File: app/code/core/Mage/Sales/sql/sales_setup/mysql4-upgrade-0.8.29-0.9.0.php
$installer->getConnection()->insert($installer->getTable('sales_flat_quote'), $quoteData);
You're basically running raw SQL against the database, so it'll be on you (i.e. the developer's responsibility) to keep it generic enough to run in the various SQL (MySQL, SQL Server, Oracle, etc.) environments.
I wouldn't recommend using standard Magento models in the setup resources. The context Magento runs those migration scripts in doesn't match the context that models normally run in. You may be able to get away with it, but using a normal Magento model in your setup resource script may break if the model makes assumptions about a fully bootstrapped Magento system.
You can find more examples yourself with a little searching. If you're command line savvy try this
$ cd app/code/core/Mage
$ find . -type f -wholename '*/sql/*' | xargs grep -i -r insert
$ find . -type f -wholename '*/sql/*' | xargs ack -i insert #if you use ack