Join Bill Weinman for an in-depth discussion in this video Selecting part of a string, part of SQL Essential Training (2014).
The SQL standard does not include a substring function, but all the major database engines have something like this. The name of the function may be different, and there may be other differences, but this is generally how it works. We're going to use the album.db database for this lesson. A sub-string function allows you to select part of a string based on the position of the characters in the string like this. In SQLite, it's named SUBSTR. So this query will retrieve the characters from the string, this string, starting with the sixth position to the end.
And the sixth position starts the word string with the s. So when I press go, we get a result that has the. Characters of the string with the word string. The second argument to the substrate function is the starting position for the sub-string. The word string starts at the sixth position. So using the number six this returns the word string. This function can be particular useful in parsing out packed data from a text column. So let's start by looking at the album table. And we notice this release column has a date in it with a four-character year, and a two-character month, and a two-character day.
And that's actually a text column. So I can use sub-string on it like this. I can say released and hit the sub-string for the year. So that starts at the first column and it's four characters long. And then the subs-string for the month, which starts at the sixth column. because there's a also a dash in there that we don't need in the fifth column. And it's too long, and likewise the day. And for each of these, we're going to give him a little alias.
And we'll line that up. And we'll order by. Released. I am just going to indent each of these a couple more so we see that they are related, to the select. And when I press Go, we now have the released date, the full date, that's that first column, and then just the year, the month, and the day. So this would allow you to use any of those columns in the result. You can sort by them, you can do arithmetic on them, you can use them however you like.
So, the SQL standard does not include a sub-string function, but all the major database engines have something like this. It can be very useful for whenever you want to unpack data from a text column. The name and syntax of the function will differ from system to system. So you'll need to consult your system documentation to find out what works on your system.
- Understanding SQL terminology and syntax
- Creating new tables and records
- Inserting and updating data
- Writing basic SQL queries
- Sorting and filtering
- Accessing related tables with JOIN
- Working with strings
- Finding the numeric type of a value
- Using aggregate functions and transactions
- Updating a table with triggers
- Creating views
Skill Level Beginner
Q: For Mac OS X: When I try to start the Apache Web Server from the XAMPP control panel, it doesn't start, and when I open "localhost" in my web browser, I see a white screen that says "It Works!" instead of the XAMPP page.
sudo apachectl stop
Q: I'm on a Mac, and I get an error in SID that says "attempt to write a read only database." How can I fix this?
A: This usually means that the database folder does not have sufficient permissions for writing by the web user. This can happen if you create the SQL folder new, rather than copying it from the Exercise Files. Here's how to fix this:
- Open a Finder window and Navigate to /Applications/XAMPP/htdocs/SQL
- Control-click on the SQL folder and select "Get Info" from the context menu.
- Under "Sharing and Permissions" (you may need to open the disclosure triangle), in the "everyone" row, select "Read & Write."Then you can close the Info window.
- Now repeat the process for the three *.db files inside the folder.