Ahh… the trusty CSV (comma separated values) file! Knocking around ten years before the first personal computer (that’s since 1972), the CSV file is one of the most ubiquitous and useful file types there is. One of the most common uses: transferring data between databases, often CSV to SQL.
Just what is a CSV file?
A CSV file stores tabular data in plain text format. Each line is a data record and each record has one or more fields, separated by commas.
However, CSV files aren’t standardized (although there are some basic rules). The use of ‘comma’ is misleading because you’ll often find colons, spaces, or single or double quotes around data, which makes decoding fields ambiguous. It’s best to think of CSV files as a wider family of files with similar traits. It’s often still possible to easily convert data, for example CSV to SQL or any other DB converter.
Why is CSV still around?
The IBM Fortran first supported CSV files in 1972.
This was largely to do with the fact that it’s easier to type CSV lists on punched cards (which is how the Fortran was coded) than it was field-column-aligned data. CSV lists were also less prone to producing incorrect results.
It just so happened RDBMS were developed around this same time and that CSV is an excellent way of transferring data between incompatible (read: proprietary) formats. For example, exporting from one database system to CSV, converting CSV to SQL, then importing that SQL into another database system. Many database technologies have native support for CSV files, for example MySQL import to CSV.
The plain text format of CSV avoids incompatibilities and supports extremely large file sizes. Plus, CSV is largely human-readable and therefore easier to deal with in the absence of perfect documentation or clear communication.
Like everything, limitations
Despite widespread use the CSV format has its limitations. The inability to represent hieracrhical data is one, which is why JSON and XML formats have excelled as another form of DB converter / data transfer. CSV also has no way of indicating what character set is in use (e.g. Unicode, ASCII), so that needs to be communicated separately, or determined at the receiving end–if possible. (SQLizer supports both Unicode and ASCII characters.)
Additionally, databases that include multiple relations cannot be exported as a single CSV file.
Around for a while because it works
Just like SQL is still around because it does the job 90% of the time, CSV files are still around and in widespread use because they’re an easy way to transfer data. You only need to look at the wide support for consumer, business, and scientific uses for CSV to truly grasp how often CSV is a standard format.
NEW in V3.0.5 We just added support for custom delimiters in CSV files which SQLizer now handles effortlessly.
More from The Official SQLizer blog...
- Convert a CSV file to SQL in 2021 with SQLizer.io The most recently-updated version of SQLizer converting CSV to SQL. Convert your own CSV file to SQL now, for free. Video: SQLizer is free for...
- SQLizer Python library now available on Pypi Use this library to convert CSV, JSON, Excel or XML files to SQL databases within your python projects. It’s finally here! One of our most-requested...
- SQLizer adds support for custom delimiters SQLizer v3.0.5 has been released and here’s the headlines: Custom delimiters! We’ve moved tab delimiters into the new csv/tsv category, so you’ll now have the...
- Multiple API keys in your SQLizer developer account The SQLizer file to database conversion API is a powerful technology for harnessing the power of our file conversion engine in your own software. It’s...