数据库:MySQL
工具:MySQL workbench
第二章 表的相关操作
1 创建表
语法 : create table 表名
(
字段1 字段类型 [非空约束(not null)][默认值(default XX),
字段2 字段类型 [非空约束(not null)],
……
约束定义1,
约束定义2,
……
)
例1:
create table T_Person
(
FName varchar(20) not null,
FAge int default 0,
FRemark varchar(20),
primary key (FName)
);
例2:
create table T_Debt
(
FNumber varchar(20),
FAmount decimal(10, 2) not null default 0,
FPerson varchar(20),
primary key (FNumber),
foreign key (FPerson) references T_Person(FName)
)
建议:语句分多行写,便于阅读和理解
2 定义
1)主键
语法:primary key(字段名)
如例1,例2
主键可以用多列联合,叫做联合主键或复合主键。
复合主键的缺点:(1)效率低。添加删除查找更新操作时,数据库必须处理多个字段,大大降低了处理速度。
(2)使数据库设计更糟糕。违反了”使用逻辑主键而不是业务主键“的实践经验。
(3)使创建此表的外键关联关系非常麻烦。
(4)加大开发难度。很多开发工具和框架对复合主键支持不友好。
所以不建议使用复合主键。
2)外键
语法:foreign key 外键字段名称 references 目标表名(被关联的字段名称)。
如例2。
3修改已有的数据表
语法:alter table 待修改的表名 add 字段名 字段类型
例3:alter table T_Person add FFavorite varchar(20)
语法:alter table 待修改的表名 drop 待删除的字段名
例4:alter table T_Person drop FFavorite
建议:DB2不支持删除字段。
建议:修改字段名可以先添加新字段,类型和目标 字段相同,把目标字段数据复制到新字段,删除目标字段。
建议:修改表名可以先创建新表,把目标表的数据复制到新表,删除目标表。
4删除数据表
语法:drop table 要删除的表名
例5:drop table T_Person
建议:如果表之间创建了外键关联,则删除表时要先删除拥有外键的表,然后才能删除目标表。
建议:删除表时或者创建表之前,可以用drop table if exists 要删除的表名 的语法,来删除表,或者先删除后创建,避免创建重名表而导致的失败。