MySQL数据库管理实战
上QQ阅读APP看书,第一时间看更新

2.2.6 创建数据表

MySQL中使用CREATE TABLE命令创建表,基本语法如下:

CREATE TABLE table_name (column_name datatype [NULL|not null] [DEFAULT
 default_value][AUTO_INCREMENT][PRIMARY KEY] [COMMENT])

下面介绍各个属性。

· table_name:要创建的表的名称。

· column_talbe:表内字段的名称。

· datatype:字段的数据类型。

· NULL|NOT NULL:字段是否可以为空。

· DEFAULT:给字段提供一个默认值。

· AUTO_INCREMENT:自动增长。

· PRIMARY KEY:主键。

· COMMENT:对字段的注释。

当创建表时,必须指定表名、列名及数据类型。对同一个表而言,列名必须唯一,每一列都必须指定数据类型。

下面在数据库中创建一个商品表,命令如下:

mysql> USE finecms;
DatabASe changed
mysql> CREATE TABLE shopnc_product (
     id INt(11) NOT NULL auto_INcrement,
     product_name varchar(30) default null,
     product_num INt(11) default null,
     product_price DECIMAL(8,2) default null,
     product_pic varchar(50) default null,
     PRIMARY KEY  (id)
     ) ENGINE=MyISAM DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FOR
MAT=DYNAMIC COMMENT='product';
Query OK, 0 rows affected (0.08 sec)

查看刚刚创建的商品表,命令如下:

mysql> SHOW TABLES;
+----------------+
| Tables_in_shop |
+----------------+
| shopnc_product |
+----------------+
1 row in set (0.00 sec)

如果想进一步查看表结构,可使用DESCRIBE命令。

mysql> DESCRIBE shopnc_product;
+---------------+--------------+------+-----+---------+----------------+
| Field         | Type         | Null | Key | Default | Extra          |
+---------------+--------------+------+-----+---------+----------------+
| id            | INt(11)      | NO   | PRI | NULL    | auto_INcrement |
| product_name  | varchar(30)  | YES  |     | NULL    |                |
| product_num   | INt(11)      | YES  |     | NULL    |                |
| product_price | DECIMAL(8,2) | YES  |     | NULL    |                |
| product_pic   | varchar(50)  | YES  |     | NULL    |                |
+---------------+--------------+------+-----+---------+----------------+
5 rows in set (0.02 sec)

同时可以使用SHOW CREATE TABLE命令来自动生成创建表的语句。

mysql> SHOW CREATE TABLE shopnc_product\G;
*************************** 1. row ***************************
       Table: shopnc_product
CREATE table: CREATE TABLE shopnc_product (
  id INt(11) NOT NULL auto_INcrement,
  product_name varchar(30) default null,
  product_num INt(11) default null,
  product_price DECIMAL(8,2) default null,
  product_pic varchar(50) default null,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC
COMMENT='product'