数据表的基本操作
一、创建表------create
1.语法格式
create table表名 (
字段名1(空格)数据类型(空格)约束条件,
字段名2(空格)数据类型(空格)约束条件,
字段名3(空格)数据类型(空格)约束条件,
……
);
2.设置约束条件
(1)设置主键约束
主键又叫主码,用于唯一标识记录的字段
- 一个表只能有一个主键,且主键不能为空
- 关键字:primary key
格式一:
字段名 数据类型 primary key;
格式二:
primary key(字段名);
(2)设置自增约束
字段名 数据类型 auto_increment;
- 关键字:auto_increment
- 一张表只能有一个字段为自增约束,该字段只能是主键
- 默认初始值是1,每增加一条记录,字段值自动增1
- 字段数据类型必须是整数类型
(3)设置非空约束
字段名 数据类型 not null;
- 关键词:not null
(4)设置唯一性约束
格式一:
字段名 数据类型 unique;
格式二:
unique key (字段名);
- 关键词:unique
(5)设置无符号约束
字段名 数据类型 unsigned;
- 关键词:unsigned
(6)设置默认约束
字段名 数据类型 default值;
- 关键词:default
(7)设置外键约束
constraint 约束名 foreign key(字段名) references 主表名(主表中的字段名);
(8)设置存储引擎
engine=存储引擎名;
创建goods表
格式一:
create table goods(
id int(11) primary key auto_increment,
type varchar(30) not null,
name varchar(30) unique,
price decimal(7,2) unsigned,
num int(11) default 0,
add_time datetime
);
格式二:
create table goods (
id int(11) auto_increment,
type varchar(30) not null,
name varchar(30),
price decimal(7,2) unsigned,
num int default 0,
add_time datetime,
PRIMARY KEY (id
),
UNIQUE KEY name
(name
)
);
创建orders表
格式:
create table orders(
o_id int(11) primary key,
add_time datetime,
goods_id int(11),
constraint goo_ord foreign key(goods_id) references goods(id)
);
二、查看表
1.查看表的基本结构
- 关键词:describe,可简写为desc
- 语法格式:desc 表名;
Field: 表示字段名称。
Type:表示数据类型。
Null:表示是否可以存储空值。
Key:表示是否创建索引,PRI表示主键索引,UNI表示唯一索引。
Default:表示默认值。
Extra:表示与字段有关的附加信息。
2.查看建表语句
show create table 表名;
二、修改表------alter
1.修改表名
alter table 旧表名 rename 新表名;
例:将goods表名改为xw_goods
2.修改字段类型数据
alter table 操作的表名 modify 被修改的字段名 修改后的数据类型;
例:将xw_goods表中type字段的数据类型改为char(30)
3.修改字段名
alter table 操作的表名 change 旧字段名 新字段名 数据类型;
例:将xw_goods中的name字段名称改为g_name
4.添加字段
(1)添加到表的最后一列
alter table 操作的表名 add 添加的字段名 数据类型;
例:在xw_goods表中最后一列添加picture字段
(2)添加到第一列
alter table 操作的表名 add 添加的字段名 数据类型 first;
例:在xw_goods中的第一列添加state字段
(3)添加到指定列
alter table 操作的表名 add 添加的字段名 数据类型 after 列名(被添加的位置);
例:在xw_goods表中num字段后添加intro字段
5.删除字段
alter table 表名 drop 字段名;
例:将xw_goods表中的picture字段删除
6.修改字段顺序
alter table 表名 modify 字段名 数据类型 first 或(after 字段名2);
例:将xw_goods表中的state字段位置修改为id字段之后
7.修改存储引擎
alter table 表名 engine=新存储引擎名
例:修改xw_goods表的存储引擎为InnoDB
8.建表之后修改约束条件
(1)主键约束
添加:alter table 表名 add primary key(字段);
删除:alter table 表名 drop primary key;
(2)非空约束
添加:alter table 表名 modify 列名 数据类型 not null ;
删除:alter table 表名 modify 列名 数据类型 null;
例:删除xw_goods表中的非空约束,再添加
(3)唯一约束
添加:alter table 表名 add unique约束名(字段);
删除:alter table 表名 drop key 约束名;
(4)自动增长
添加:alter table 表名 modify 列名 int auto_increment;
删除:alter table 表名 modify 列名 int;
例:删除xw_goods表中的自增约束,再添加
(5)外键约束
添加:alter table 表名 add constraint 约束名 foreign key(外键列) references 主键表 (主键列)
删除:
第一步:删除外键
alter table 表名 drop foreign key 约束名;
第二步:删除索引
alter table 表名 drop index 索引名;
约束名和索引名一样
(6)默认值
添加:alter table 表名 alter 列名 set default ‘值’;
删除:alter table 表名 alter 列名 drop default;
例:删除xw_goods表中的默认值约束,再添加
(7)无符号约束
添加:alter table 表名 modfiy 字段名 数据类型 unsigned;
删除:alter table 表名 modify 字段名 数据类型;
例:删除xw_goods表中的无符号约束,再添加
三、删除表------drop
1.删除没有关联的表
drop table 表名;
2.删除被其他表关联的主表
(1)从表不保留
删除从表—>删除主表
(1)从表保留
删除从表外键—>删除主表
alter table 表名 drop foreign key 外键约束名;