Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
Now that we've created our first database we're ready to add our first table to that database. And to do that we're going to need to learn just a little bit more MySQL. The first is Show Tables. That's just going to show us all of the tables on the current database that we're using. Remember that we had show databases to show us the list of all the databases? Well it makes sense that show tables will show us all the tables. Well, we're not going to have any tables there to start with. We're going to need to create one and we're going to do that with the create table command. So create table, followed by the name of our table, followed by paranthesis, we're going to put the table definitions.
So that's going to be a list of all the columns that we have followed by definition for that column, then at the end we can put some options. Now the definitions can be complex, so we're not going to try to cover everything about them exhaustively, but I'm going to walk you through the basics of those. Once you've done a few of them you'll get the hang of it. And then the last ones we need to take a look at are just Show Columns From table_name. And that's going to just basically show us what the table looks like, show us all of those columns that we've just created. So that we make sure they look the way we think they do, and then of course, Drop Table, just like we had Drop Database followed by the table name. And that will remove the table, thats the reverse of creating it is dropping it, and that will lose all the data that was in that table, so use it wisely. Now that we have the basic idea of how to do it, what are we going to create? Well we're going to be creating a content management system for a fictional company called Widget Core.
And we'll have a number of pages of content and those pages are going to be group into subject areas such as about us, products, services. So, to begin with let's create a table that's going to hold those different subject areas. So what I'm thinking the the table is going to look like is that we're going to have a table called Subjects, that's what we'll be storing there. On almost every single table that you create in MySQL, the first thing you want to do is add a column for ID. ID is going to identify each row as a unique row. It's going to be a unique identifier, and it's going to allow us then to say, okay, we're talking about customer Number 27 or we're talking about customer Number 34.
We'll always be able to find that row in the database by its ID. So you almost always want to have that and then we are going to have menu name. And what I am thinking here is this is the name that would be displayed in the menu on the public side of the content management system. Now there will be a number of these subjects and we are going to want them to be sorted in an order I have chosen. So, I may also going to have a position field that will let us change the sort order of those subjects. An then last of all, visible, which would be a Boolean, true or false for whether this subject should be visible, to the public.
Whether it should be shown, in the subject navigation bar, at the top of our website. So those are the fields we're going to create. Let's go to MySQL and try creating them, an I'll show you how the data definitions work as well. So I'm still MySQL from my previous movie if you're not you'll want to come and start using MySQL. If your not inside Widget Corp you'll also want to make sure that use Widget_corp just to get yourself inside. And then once your in there you can Show Tables. And it comes back and tells us it's empty. There are none right now. So let's try creating our first.
so, the syntax is create table followed by the name of the table and then parentheses and then after that, we're going to have our definitions. I'm going to put two spaces here just so it's easier to read. The first one, remember, was going to be ID. And then we need to provide the definition for ID. Well, what we need to tell it here is what type of field it's going to be. It's going to be an integer field, so we're going to say it's INT. And then in parentheses, we can say how many integers can it be. I'm going to put in 11. That's a good standard size for an integer.
So an integer of size 11. That works out to something like ten billion numbers that it will hold. And then the next thing we want to say, is whether or not this field can be null. Is it possible to have nothing there? The alternative is to have an empty string there. So, we want to say that this cannot be null. It's not going to really be a problem cause it's always going to have an ID. and the reason why, is cause we're going to also going to set a special option on it. Called auto_increment and that means that we're automatically going to add an ID every time we create a new subject.
Every time we add a subject to the database it's going to get a new ID number. We don't have to tell it what ID it's going to be, MySQL will automatically add one for it. So if we had 47 customers, if we add a new customer, well the next customer gets ID number 48. It's a little bit like those ticket machines at the deli, where everybody just pulls off the next number for the next customer in line. MySQL just automatically assigns you a number and you get added to the database with that number. And then after that definition for that first line, I'm going to put a comma. And hit Return to go to the next line. Couple of spaces. The next one is going to be menu_name, and we're going to need to put its definition.
It's not an integer. It's going to be a string. A string in MySQL language is called a VARCHAR, a variable-length character. It might be five characters, might be ten characters, we don't know. We can also say how many it's limited to. And you can pick any number, 255 is a good one if it's going to be a lot of text. The system menu's going to be really small, 30 should be sufficient and then once again, can it be null or is it not null. And I'm going to say that it's not null but if for some reason we forget to provide the menu name here. It ought to put in an empty string rather than the actual value null. In general, I find working with not null a lot easier and a lot better. So I'm going to make all of these not null.
Put a comma at the end of that. We don't need auto increment or anything. That's something special just for the ID field. And then I'll hit return, space, position. And then this one is also going to be an integer, just like ID was. But we don't need to have 10 billion possibilities for what this can be. We can just limit it to being three. That's more than enough. The odds it will have more than 999 subjects is very slim. But it's a small amount to go ahead and allot to it, so it's fine. And then not null, comma. And then the last one is going to be visible.
And visible's going to be a Boolean. And we actually could assign it a Boolean type. But it's really just an alias for something called tiny int. Which is just a really small integer. And it just reserves it a very small amount of space. And I'm going to give it a size of one. Because it's either going to be true or false. And we can represent that with just a 0 or 1. So we just need one integer to do that. And then also not null. That means that by default, instead of being null, it's going to be false or 0. And then I'll put a comma here. And then the very last one is going to be the options. And the only option that we want to specify is the primary key parentheses ID.
And that's pretty standard. So you're almost always going to want to put that primary key ID. What we're telling it, is, if you want to know what you should index. If you want to know how to find records quickly, use the ID field. That's the field that's the important one. Doesn't have to be called ID. It can be called something else. But we're going to go ahead and specify it. If we hadn't specified it MySQL actually would have picked that first field on it's own. But it's better to go ahead and say it. And then we'll hit Return, close our parentheses, and put a semicolon at the end. So there's a lot of typing there. Pause the movie, you need to copy it all down.
When you're done, let's hit Return. And it comes back and says query okay. Did it work? Alright, well let's try Show Tables again. There it is, there's my table. Now, it doesn't tell me about it. To see information about it after you use my show columns from and then subjects. And there, that's how we can take a peek at the table that we just created. We'll be creating a few more tables later on, so we'll get a chance to revisit this. In truth, creating tables is something you don't do very often. You do it, kind of, at the beginning of the project, and then, for the most part when you're working with MySQL after that, you're really working on the CRUD.
The create, read and update, delete. Those are where you spend most of your time in MySQL. And that's what we're going to do in the next movie, is how to do CRUD in MySQL.
Get unlimited access to all courses for just $25/month.Become a member
61 Video lessons · 99519 Viewers
56 Video lessons · 112747 Viewers
71 Video lessons · 81561 Viewers
131 Video lessons · 39152 Viewers
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.