Respostas:
Você pode usar algo como o seguinte:
from qgis.core import QgsVectorLayer, QgsMapLayerRegistry
vlayer = QgsVectorLayer( "?query=SELECT * FROM road WHERE type = 'Expressway'", "vlayer", "virtual" )
QgsMapLayerRegistry.instance().addMapLayer(vlayer)
Você pode encontrar exemplos de como usar camadas virtuais por meio de python no GitHub do autor:
'QgsMapLayerRegistry' is not defined
. A instrução SQL funciona ao executar na caixa de diálogo 'Criar uma camada virtual'.