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...
- How (and why) convert JSON into SQL? One reason you might want to convert JSON to a SQL insert statement is if you want to store the data contained in the JSON...
- What’s new in SQLizer for December 2022 SQLizer 3.0.10 has been released and here’s what’s new: User interface update We’ve tweaked the upload interface slightly, hiding less well-used items away in an...
- SQLite conversion support lands in SQLizer Convert any structured data file to SQLite, for free What’s the most widely-used database engine on the planet? MySQL? Guess again. Because SQLite is the...
- 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...