chapter21:创建和操纵表

表的创建、更改和删除的基本知识。

创建表

两种方法:

  • 使用管理工具;
  • MySQL语句。

表创建基础

用CREATE TABLE创建:

  • 新表的名字,在关键字CREATE TABLE之后给出;
  • 表列的名字和定义,逗号分隔。

例:创建customers表:

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;

!:在创建表时,指定的表名必须不存在,否则将出错。如果想仅在不存在是创建它,应该在表名后给出IF NOT EXIST

使用NULL值

NULL值不是空串,是没有值。

主键再介绍

主键必须唯一,主键必须使用不允许NULL值的列。

使用AUTO_INCREMENT

本列每当增加一行时自动增量。

覆盖AUTO_INCREMENT:在INSERT时指定一个值,该值将被用来替代自动生成的值,后续的增量将开始用该手工插入的值。

确定AUTO_INCREMENT:自动生成主键的一个缺点是不知道这些值都是谁,可以使用last_insert_id()函数获得这个值:

SELECT last_insert_id();

指定默认值

例:

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;

引擎类型

几个需要知道的引擎:

  • InnoDB是一个可靠的食物处理引擎,不支持全文本搜索;
  • MEMORY在功能等同于MyISAM,但由于数据存储在内存中,速度很快;
  • MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。

更新表

ALTER TABLE:

  • 在ALTER TABLE之后给出要更改的表名,表必须存在;
  • 所做更改的列表。

例:给表添加一个列:

ALTER TABLE vendors
ADD vend_phone char(20);

删除列:

ALTER TABLE vendors
DROP COLUMN vend_phone;

ALTER TABLE常用语添加外键:

ALTER TABLE orderitems
ADD CONSTRAINT fk_orderitems_orders
FOREIGN KEY (order_num) REFERENCE orders (order_num);

ALTER TABLE orderitems
ADD CONSTRAINT fk_orderitems_products FOREIGN KEY (prod_id) REFERENCE products (prod_id);

删除表

DROP TABLE语句。

DROP TABLE customers2;

重命名表

RENAME TABLE语句。

RENAME TABLE backup_customers TO customers,
             backup_venders TO vendors;

你可能感兴趣的:(chapter21:创建和操纵表)