Yes you can deploy SQL
database and the .Net frame work
with your installation package. You could achieve this with Windows Installer
as well.
Deploying Sql database with MSI
You have to first add your sql script file
with your msi package
script should have necessary steps to create database schema when its being executed on the SQL database. You can use SMO(Sql server Management Object)
library to execute this script content on sql database. Check my other thread where I have posted working method to read the file content and execute on SQL database to create the database during deployment.
Execute sql script on SQL server using C#
Deploying .Net Frameowrk
Go to MSI Project
> Properties
> Prerequisites
> Download prerequsites from the same location as my computer
.

When you build you MSI project with this configuration your will get an extra exe file dotNetFx40_Full_x86_x64.exe
which can deploy .Net framework on client machaines. You can execute this MSI when your application being installed.