Run SQL File: Free Programs to Execute and Query Output

Click For Summary
Executing an .sql file, which contains a series of SQL commands, can be done using various free database management systems. Options include Microsoft's SQL Server and MySQL Community Server, both of which have installers for different operating systems. When executing SQL files, it's important to understand the types of SQL commands involved. Data Definition Language (DDL) commands like CREATE, ALTER, and DROP can cause errors if rerun without precautions, as they modify the database schema. In contrast, Data Manipulation Language (DML) commands like SELECT, UPDATE, DELETE, and INSERT can typically be rerun without issues, barring data integrity violations. Running DDL commands multiple times can lead to schema corruption, so it's advisable to use conditional statements like IF EXISTS for safety. Additionally, running the same SQL file across different virtual machines can pose risks to database integrity, especially if DDL commands are involved. Understanding the application's database requirements and relational database concepts is crucial for effective database management.
WWGD
Science Advisor
Homework Helper
Messages
7,757
Reaction score
12,977
Hi all,
I have an .sql file; written as a set of commands, as a general text file,
with a .sql extension. I need to execute it in order to get some tables as
output, and then run some queries on these tables.
Are there some free programs to run/execute the file? I got some hits on
a search suggesting some sort of free MySQL file, but I have found nothing.
Thanks for any ideas.
 
Computer science news on Phys.org
the mysql server itself is what runs these files.

mysql -u yourusername -p yourpassword yourschemal < textfile.sql
 
  • Like
Likes WWGD
What have you been using to run the SQL code that you've been studying for the past several weeks?

WWGD said:
So I guess I download Microsoft's SQL server for free

Another option is the MySQL Community server:

http://dev.mysql.com/downloads/mysql/

I use it on Mac OS, and it's very popular on Linux, but I see there's also a Windows installer.
 
Last edited:
  • Like
Likes Silicon Waffle and WWGD
Thank you all, I think I realized where my confusion was; it seems I am having trouble since I have executed (run) the
file as a query (in SQL 2014) more than once. First time is fine, but I seem to be having trouble running the same initial file as a query more than
once.
 
Probably this is because whatever the SQL program does, it is changing the database file/s itself in some way.
It is designed to process an expected set of data and process it, job done.
 
  • Like
Likes Silicon Waffle
Seems to be some assumptions that need a tune-up.
SQL is arbitrarily divided into flavors:
Data definition language DDL - examples CREATE, ALTER, DROP
Data manipulation Langauge DML - examples SELECT UPDATE DELETE INSERT
Data control language DCL - examples GRANT

You can rerun a SQL file DML-only practically forever. Identical file, many times, with some exceptions about data integrity violations.
If you rerun a DML-containing file with commands like CREATE you get errors. ALTER - if it is a different statement each time - is okay.
If you rerun DCL it is usually not going to break stuff, but is a crummy idea except in special cricumstances.

Based on your comment it looks like your SQL has DDL in it. Do not rerun it adhoc like that.
 
Yeah, if you are trying to create something, you need to wrap it in an IF EXISTS, most sql files are not meant to be run more than once.
 
  • #10
jim mcnamara said:
Seems to be some assumptions that need a tune-up.
SQL is arbitrarily divided into flavors:
Data definition language DDL - examples CREATE, ALTER, DROP
Data manipulation Langauge DML - examples SELECT UPDATE DELETE INSERT
Data control language DCL - examples GRANT

You can rerun a SQL file DML-only practically forever. Identical file, many times, with some exceptions about data integrity violations.
If you rerun a DML-containing file with commands like CREATE you get errors. ALTER - if it is a different statement each time - is okay.
If you rerun DCL it is usually not going to break stuff, but is a crummy idea except in special cricumstances.

Based on your comment it looks like your SQL has DDL in it. Do not rerun it adhoc like that.

Thank you. The SQL I am running lives in a virtual machine. Would there be problems running/executing the same file in different VMs?
 
  • #11
The problem is the database content. Re-running DDL can trash an existing schema. Generally you have a single copy of a db on a server. Then you have physically or virtually separate multiple clients running SQL scripts. AFTER the initial DDL run to create the on DB for everybody to use.

Some db's are distributed to local machines after they are built. Code library software uses db technology sometimes. In this case one DB instance per user. But the schema and some seed data exist on the distribution.

There is definitely some sort of disconnect here - could be on my side. If you would, please give us a couple of answers:
1. what is the application requirement the DB meets? (Learn to play DBA, track car repairs, track entries in a collection - are the kind of answer we need here)
2. I gather you understand programming but not relational databases and their real world uses. Correct?
 
  • #12
jim mcnamara said:
The problem is the database content. Re-running DDL can trash an existing schema. Generally you have a single copy of a db on a server. Then you have physically or virtually separate multiple clients running SQL scripts. AFTER the initial DDL run to create the on DB for everybody to use.

Some db's are distributed to local machines after they are built. Code library software uses db technology sometimes. In this case one DB instance per user. But the schema and some seed data exist on the distribution.

There is definitely some sort of disconnect here - could be on my side. If you would, please give us a couple of answers:
1. what is the application requirement the DB meets? (Learn to play DBA, track car repairs, track entries in a collection - are the kind of answer we need here)
2. I gather you understand programming but not relational databases and their real world uses. Correct?

It is more of my having the bad habit of asking simple or poorly-phrased questions and then figuring them out right after I have asked them. I am trying to break it and just think things through carefully and avoid asking poor-quality questions -- thanks for your patience.
 
  • #13
Sorry, I don't mean to belittle the feedback, which has been very helpful, I meant that I do not always stop to think things through as I should.
There is also the fact that even if/when I know or should know the answer, I learn new things from the feedback, and by asking alone and seeing the
answer the material is reinforced and I learn some new things at the same time, and dispel some misconceptions. Thanks to all again.
 

Similar threads

  • · Replies 19 ·
Replies
19
Views
5K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 8 ·
Replies
8
Views
3K
Replies
3
Views
2K
  • · Replies 14 ·
Replies
14
Views
3K
  • · Replies 7 ·
Replies
7
Views
4K
Replies
16
Views
3K
  • · Replies 22 ·
Replies
22
Views
2K