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...
- Automatic Worksheet Detection What’s new in SQLizer 3.0.9? We’re excited to announce that SQLizer 3.0.9 is available to all customers right now. Automatic worksheet detection Until now, we’ve...
- SQL will never die A really interesting summary from IEEE emerged last week. Entitled “The Rise of SQL”, it’s a fascinating glimpse into how a query language invented in...
- How to convert JSON to SQL - the quick and easy way [Updated 2022] If you want to convert JSON to SQL there’s no concrete or straightforward way of doing things. Conversion is usually tricky because JSON and SQL...
- New, Faster Upload System for File to Database Conversion We’re excited to announce that we’ve released SQLizer 3.0.8 to all users, available now. Here’s what’s new: Our new uploader features drag’n’drop - as well...