表的创建、更改和删除的基本知识。
创建表
两种方法:
- 使用管理工具;
- 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;
网友评论