Withdata Software

How to execute sql file at MySQL command line

If you’re at the MySQL command line mysql> you can declare the SQL file as source, like:

mysql> source 'path/to/test.sql';

Or use the MySQL command line client:

mysql -hhostname -uuser database < path/to/test.sql

SQL → MySQL reference

Type mapping

Value kindin SQLin MySQL
FloatDOUBLE PRECISIONDOUBLE
Long textTEXT / CLOBLONGTEXT
DatetimeTIMESTAMPDATETIME
BinaryBLOB / BYTEALONGBLOB
BooleanBOOLEAN / SMALLINTTINYINT(1)
JSONJSON / TEXTJSON

Dialect differences

SQL is a file format and MySQL is a database server, so the target has to be told the types the file never carried - the rows below are where the two sides diverge.

Propertyin SQLin MySQL
port—3306
identifiersTwo competing conventions: single-quoted literals and diale...`backtick`
row limit—LIMIT n
datesDepends on the dialect: DATE literals, TO_DATE(), or plain ...DATETIME, TIMESTAMP, DATE, TIME
long text—TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT
binaryDialect-specific: X-quoted literal, 0x hex, or decode()BLOB / TINYBLOB / LONGBLOB
separatorStatement terminators (;)—
encodingNo declaration—
typingTypes belong to the target database, and they differ betwee...—
shapeStatements; a dump usually means CREATE TABLE plus INSERT rowsTables of rows and columns
ceilingNo formal limit, but a single INSERT statement has to fit i...—

Command line

SideCommand
MySQLmysqldump, or mysql -e "SELECT ..." > out.csv
MySQL (load)mysqlimport, or LOAD DATA INFILE

Convert your data online, free

Free in-browser converters for CSV, Excel, JSON, XML and SQL: Withdata Online Data Conversion. Large files, batch conversion or scheduling? See the offline desktop apps, or browse all data conversion tools.