Low cost ecommerce web development India flash website design
Creating a Table
The SQL commands we've encountered so far have been reasonably simple, but
as tables are so flexible, it takes a more complicated command to create them.
The basic form of the command is as follows:
mysql>CREATE TABLE table_name (
-> column_1_name column_1_type column_1_details,
-> column_2_name column_2_type column_2_details,
-> ...
->);
Let's return to our example Jokes table. Recall that it had three columns: ID (a
number), JokeText (the text of the joke), and JokeDate (the date the joke was
entered). The command to create this table looks like this:
mysql>CREATE TABLE Jokes (
-> ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> JokeText TEXT,
-> JokeDate DATE NOT NULL
->);
It looks pretty scary, huh? Let's break it down:
. The first line is fairly simple: it says that we want to create a new table called
Jokes.
. The second line says that we want a column called ID that will contain an
integer (INT), that is, a whole number. The rest of this line deals with special
details for this column. First, this column is not allowed to be left blank (NOT
NULL). Next, if we don't specify any value in particular when we add a new
entry to the table, we want MySQL to pick a value that is one more than the
highest value in the table so far (AUTO_INCREMENT). Finally, this column is to
act as a unique identifier for the entries in this table, so all values in this
column must be unique (PRIMARY KEY).
. The third line is super-simple; it says that we want a column called JokeText,
which will contain text (TEXT).
. The fourth line defines our last column, called JokeDate, which will contain
data of type DATE, and which cannot be left blank (NOT NULL).
Note that, while you're free to type your SQL commands in upper or lower case,
a MySQL server running on a UNIX-based system will be case-sensitive when it
41
Creating a Table
comes to database and table names, as these correspond to directories and files
in the MySQL data directory. Otherwise, MySQL is completely case-insensitive,
but for one exception: table, column, and other names must be spelled exactly
the same when they're used more than once in the same command.
Note also that we assigned a specific type of data to each column we created. ID
will contain integers, JokeText will contain text, and JokeDate will contain dates.
MySQL requires you to specify a data type for each column in advance. Not only
does this help keep your data organized, but it allows you to compare the values
within a column in powerful ways, as we'll see later. For a complete list of supported
MySQL data types, see Appendix C.
Now, if you typed the above command correctly, MySQL will respond with Query
OK and your first table will be created. If you made a typing mistake, MySQL
will tell you there was a problem with the query you typed, and will try to give
you some indication of where it had trouble understanding what you meant.
For such a complicated command, Query OK is a pretty boring response. Let's
have a look at your new table to make sure it was created properly. Type the
following command:
mysql>SHOW TABLES;
The response should look like this:
+-----------------+
| Tables in jokes |
+-----------------+
| Jokes |
+-----------------+
1 row in set
This is a list of all the tables in our database (which I named jokes above). The
list contains only one table: the Jokes table we just created. So far everything
looks good. Let's have a closer look at the Jokes table itself:
mysql>DESCRIBE Jokes;
+----------+---------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------+------+-----+------------+----------------+
| ID | int(11) | | PRI | NULL | auto_increment |
| JokeText | text | YES | | NULL | |
| JokeDate | date | | | 0000-00-00 | |
+----------+---------+------+-----+------------+----------------+
3 rows in set
42
Getting Started with MySQL
As we can see, there are three columns (or fields) in this table, which appear as
the 3 rows in this table of results. The details are somewhat cryptic, but if you
look at them closely for a while you should be able to figure out what most of
them mean. Don't worry about it too much, though. We've got better things to
do, like adding some jokes to our table!
We need to look at just one more thing before we get to that, though: deleting
a table. This task is as frighteningly easy as deleting a database. In fact, the
command is almost identical:
mysql>DROP TABLE tableName;
website designer freelance ASP PHP ecommerce web developer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110