1.创建表
使用CREATE TABLE子句创建新表,在创建过程中,要指出新表的名字,以及表列的名字和定义。
示例:创建customers表
SQL语句:CREATE TABLE customers
(
cust_id int NOT NULL AUTO_INCREMENT,
cust_name char(50) NOT NULL,
cust_city char(50) NULL DEFAULT 1,
cust_email char(255) NULL,
PRIMARY KEY(cust_id)
)ENGINE = InnoDB;
AUTO_INCREMENT为自动增量,ENGINE=InnoDB为MySQL具体管理和处理数据的内部引擎,在使用SELECT语句或进行其它数据库处理时,该引擎在内部处理请求。
常见的几种引擎:
- InnoDB是一个可靠的事务处理引擎,它不支持全文本搜索;
- MEMORY在功能上等同于MyISAM,但由于数据存储在内存(不是磁盘)中,速度很快(特别适合于临时表);
- MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。
注意:
- 允许NULL的列也允许在插入行是不给出该列的值。不允许NULL值的列不接收该列没有值的行,即在插入或更新行时,该列必须有值。
- 不要把NULL值与空串相混淆。NULL值是没有值,它不是空串。如果指定' ',这在NOT NULL列中是允许的。空串是一个有效的值,它不是无值。NULL值用关键字NULL而不是空串指定。
2.更新表
使用ALTER TABLE更改表结构,必须给出更改的表名(该表必须存在,否则报错)以及要更改的列名。
示例1:给vendors表添加一个列
SQL语句:ALTER TABLE vendors ADD vend_phone CHAR(20);
示例2:删除新增列vend_phone
SQL语句:ALTER TABLE vendors DROP COLUMN vend_phone;
示例3:定义外键
SQL语句:ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_orders FOREIGN KEY(order_num) REFERENCES orders(order_num);
3.删除表
示例:删除表customers
SQL语句:DROP TABLE customers;
4.重命名表
示例:将表customers命名为customers1,以及对多个表重命名
SQL语句:RENAME TABLE customers TO customers1;