来源:www.cncfan.com | 2006-3-20 | (有3391人读过)
建立一个数据表 我们之前遇到的SQL命令都是非常简单的,但是因为数据表是比较灵活的,相应地建立它们的命令就要复杂得多了。建立数据表的基本格式是这样的:
mysql> CREATE TABLE <table name> ( -> <column 1 name> <col. 1 type> <col. 1 details>, -> <column 2 name> <col. 2 type> <col. 2 details>, -> ... -> );
现在回到我们的例子“Jokes”表。这个表有三个数据列:ID(一个数字)、JokeText(笑话的正文)和JokeDate(加入的日期)。建立这个表的命令应该是这样的:
mysql> CREATE TABLE Jokes ( -> ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> JokeText TEXT, -> JokeDate DATE NOT NULL -> );
看上去很复杂,是吧?让我们将它分解一下: 第一行是比较简单的;它说明我们想要建立一个新的名为Jokes的数据表。 第二行说明我们需要一个数据列叫ID,这个列的类型应该是一个整数(INT)。这一行还定义了这个数据列的其他一些信息。首先,这一行不允许为空(NOT NULL)。第二,如果你没有为一列指定一个值,MySQL会选择使用一个比当前最大值大的值(AUTO_INCREMENT)。最后,这个数据列还是这数据表的唯一的标识符,所以这个数据列中的所有值都应该是不重复的(PRIMARY KEY)。 第三行是非常简单的;这说明我们需要一个数据列叫JokeText,这个列的类型应该是一个文本(TEXT)。 第四行定义了我们的最后一列,列名是JokeDate,这个列的类型是日期型(DATE)这个列也不能为空(NOT NULL)。 请注意,我们在输入SQL命令时,大小写是完全自由的,但是在一个Unix-based系统下运行的MySQL服务,因为我们必须与MySQL数据目录下的目录和文件一致,当遇到数据库名和表名时,我们必须区分大小写。否则,MySQL是完全对大小写不敏感的,只有一种情况例外,在同一命令中多次出现的表名、列名以及其他名字必须在拼写上完全一致。 我们还应该注意到,我们为我们建立的每一列指定了一个指定的类型。 ID是一个整型,JokeText是一个文本型,JokeDate是一个日期型。MySQL允许我们为每一个列定义一个类型。这不仅仅可以帮助你组织数据,而且你可以利用它对数据进行比较(我们在下面会看到)。要想得到一个关于MySQL支持的数据类型的完整的列表,你可以参看MySQL用户手册。 总之,如果你正确输入了上面的命令,MySQL会返回 Query OK并会为你建立你的第一个数据表。如果你在输入中出了什么错误,MySQL会告诉你输入的语名有问题,而且会给你一些提示,说明什么地方它不能理解。 对于这样一个复杂的命令,最终只出现Query OK是相当单调的。让我们看看你的新数据表是不是正常地建立了。输入下面的命令: mysql> SHOW TABLES; 响应应该是这样的: +-----------------+ | Tables in jokes | +-----------------+ | Jokes | +-----------------+ 1 row in set 这是一个关于我们的数据库(我们在前面将其命名为jokes)中的所有表的列表。这个列表仅仅包含了一个数据表:Jokes,这个表是我们刚刚建立的。看来一切都好了,让我们再来近看一下这个Jokes表: mysql> DESCRIBE Jokes; +----------+---------+------+-----+------------+- - | Field | Type | Null | Key | Default | ... +----------+---------+------+-----+------------+- - | ID | int(11) | | PRI | 0 | ... | JokeText | text | YES | | NULL | | JokeDate | date | | | 0000-00-00 | +----------+---------+------+-----+------------+- - 3 rows in set 这儿提供了一个数据列的列表。正如我们看到的,这个表中有三个列,在返回的结果表中这被表示为三行。详细资料比较难以看懂,但是你认真看一下,应该还是能了解其大致的含义的。不要为这件事过于担心。我们还会继续学习,我们还会在这个表中添加一些笑话。 我们还需要知道一些其他的事,例如删除一个表。这和删除一个数据库一样的简单,简单得令人恐怖。命令也几乎一样: mysql> DROP TABLE <tableName>;
|