创建表
1、表创建基础
输入
CREATE TABLE customers
(
cust_id int NOT NULL AUTO_INCREMENT,
cust_name char(50) NOT NULL,
cust_address char(50) NULL,
cust_city char(50) NULL,
cust_state char(5) NULL,
cust_zip char(10) NULL,
cust_country char(50) NULL,
cust_contact char(50) NULL,
cust_email char(255) NULL,
PRIMARY KEY (cust_id)
) ENGINE = InnoDB;
从上面的例子可以看到,表名customers紧跟在CREATE TABLE关键字之后。实际的表定义(所有列)括在圆括号之中,各列之间用逗号分隔。每列的定义以列名开始,后面跟列的数据类型。表的主键可以再创建表时用PRIMARY KEY关键字指定。
注意:在创建新表时,指定的表名必须不存在,否则将出错。
2、使用NULL值
NULL值就是没有值或缺值。允许NULL值的列也允许在插入行时不给出该列的值。
3、主键
如果主键使用单个列,则它的值必须唯一。如果使用多个列,则这些列的组合值必须唯一。
CREATE TABLE orderitems
(
order_num int NOT NULL,
order_item int NOT NULL,
prod_id char(10) NOT NULL,
quantity int NOT NULL,
item_price decimal(8,2) NOT NULL,
PRIMARY KEY (order_num,order_item)
) ENGINE = InnoDB;
主键只能使用不允许NULL值的列。
4、使用AUTO_INCREMENT
cust_id int NOT NULL AUTO_INCREMENT,
AUTO_INCREMENT告诉MySQL,本列每当增加一行时自动增量。
5、指定默认值
CREATE TABLE orderitems
(
order_num int NOT NULL,
order_item int NOT NULL,
prod_id char(10) NOT NULL,
quantity int NOT NULL DEFAULT 1,
item_price decimal(8,2) NOT NULL,
PRIMARY KEY (order_num,order_item)
) ENGINE = InnoDB;
quantity列包含订单中每项物品的数量,给该列的描述添加了DEFAULT 1指示MySQL,在未给出数量的情况下使用数量1。
更新表
下面的例子给表添加一个列:
ALTER TABLE vendors
ADD vend_phone CHAR(20);
这条语句给vendors表增加一个名为vend_phone的列,必须明确其数据类型。
删除刚刚添加的列,可以这样做:
ALTER TABLE vendors
DROP COLUMN vend_phone;
删除表
DROP TABLE customers2;
重命名表
RENAME TABLE customers2 TO customers;
还可以使用下面的语句对多个表重命名:
RENAME TABLE backup_customers TO customers,
backup_vendors TO vendors,
backup_products TO products;