Join Bill Weinman for an in-depth discussion in this video Changing a schema with ALTER, part of SQL Essential Training (2014).
Sometimes you may need to change a tables schema after its already been defined and populated with data. You can do this with the alter table statement. In this lesson, we'll be using the test.db database. I'll select it there. We are going to start by creating a table. So I'll type create, table, test. And we are going to have three columns all of them text columns. So, a TEXT, b TEXT, and c TEXT. I do like to capitalize my key words it's not really required in S.Q.L. but, (no period) Makes it a little more readable in my mind.
Now let's populate it with a little bit of data. And I'll just copy and paste that a couple of times and make it two, three, four. And, three, four, five. And now we'll take a look at what we have on the table. I'll press go. And we now have a table with three rows in it. Now suppose some time has passed and we need to create a new column. You can use the altered table statement like this. So, I'll come up back here and type alter table, test, add.
This adds a column, d text, like that. And now if we take a look at our column with the select star from test, like this. You notice we have a new column d. And it's populated with nulls which means that it has no values in the column. There's no data there yet. Now, depending on the database system you're using, you may also use constraints in your new column definition. For example, I can alter the table again and add a new column E. And I can say default and give it a default value.
Pandas. And when I press go, we have a new e column and it has that default value in it rather then null. Depending on your database system, you may be able to insert columns in a particular order or even delete columns. You'll need to refer to the documentation for your database system to see what capabilities are available and how they work .Now before we move on let's delete this temporary table. With drop table test to return our test database to its original state.
The alter table command is a powerful tool and as such should be used with care and caution. You'll need to be careful to track and update (no period) Any code that may depend on the existing scheme before you change it, sometimes this sort of change is necessary, so it's good to understand how to accomplish it.
- 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.