创建表
- 新表的名字,在关键字create table之后给出
- 表列的名字和定义,用逗号分隔
- 表的主键可以在创建表时用primary key关键字指定
- 语句可以在一个长行上输入,也可以分成许多行
- 如果你仅想在一个表不存在的时候创建它,应该在表名前/后加上if not exists
- 使用not null,不允许null值的列不接受该列没有值的行,null值就是没有值或缺值
- 不要把null值与空串相混淆,null值是没有值,它不是空串,如果指定''(两个单引号,其间没有字符),这在not null列中是允许的,空串是一个有效的值
- 主键值必须唯一,如果主键使用单个列,则它的值必须唯一,多个列组成主键,可以用primary key(order_num, order_item),需要保证组合是唯一的
- auto_increment,本列每当增加一行时自动增量,每个表只允许一个auto_increment列,而且它必须被索引(如,通过使它成为主键)
- 指定默认值,default value
引擎类型
- InnoDB是一个可靠的事务处理引擎,它不支持全文本搜索
- MEMORY在功能等同于MyISAM,但由于数据存储在内存(不在磁盘)中,速度很快(特别适合于临时表)
- MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理
更新表
- alter table之后给出要更改的表名
- 所做更改(add column, drop column, change column1 column2 int)
- alter table的一种常见用途是定义外键
- alter table orderitems add constraint fk_orderitems_orders(约束名) foreign key (column) references orders (column)
删除表和重名表
- drop table tablename;
- rename table a to b;