数据库的基本操作(创建表、查看表、修改表、删除表)
一、创建表
1、创建表的格式
create table 表名( 字段名1 数据类型 约束条件, 字段名2 数据类型 约束条件, 字段名3 数据类型 约束条件, ...... 约束条件 );
2、约束条件
(1) 设置主键约束
主键又叫主码,用于唯一标识记录的字段。
- 一张表只能有一个主键,并且主键不为空
- 关键字:primary key
格式一:
字段名 数据类型 primary key
格式二:
primary key(字段名)
(2)设置自增约束
如果用户希望某个字段能够按照顺序自动生成编号,可以为该字段设置自增约束。
- 一张表只能有一个字段为自增约束,并且该字段只能是主键。
- 默认初始值是1,每增加一条记录,字段值自动增1。
- 字段数据类型必须是整数类型
- 关键字:auto_increment
格式:
字段名 数据类型 auto_increment
(3)设置非空约束
- 用户在向数据表中插入数据时,如果设置非空约束的字段没有指定值,系统就会报错。
- 作用是规定字段的值不能为空
- 关键字:not null
格式:
字段名 数据类型 not null
(4)设置唯一性约束
当数据表中某个字段的值不允许重复时,可以使用唯一性约束。
- 关键字:unique
格式一:
字段名 数据类型 unique
格式二:
unique key(字段名)
(5)设置无符号约束
- 作用:规定该字段所存储的数据不为负数
- 关键字:unsigned
格式:
字段名 数据类型 unsigned
(6)设置默认约束
- 没有设置默认约束的字段,系统会自读设置默认值为null
- 关键字:default
格式:
字段名 数据类型 default 值
(7)设置外键约束
- 关键字:constraint foreign key references
格式:
constraint 约束名 foreign key(字段名) references 主表名(主表中的字段名)
(8)设置表的存储引擎
格式:
engine=存储引擎名
3、实训案例
(1)创建goods表
字段 数据类型 约束条件 id int(11) 主键、自增 type varchar(30) 非空 name vaechar(30) 唯一 price decimal(7,2) 无符号 num int(11) 默认值为0 add_time datetime SQL语句:
格式一:
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(11) default 0, add_time datetime primary key(id), unique key(name) );
(2)创建orders表
字段 数据类型 约束 o_id int(11) 主键 add_time datetime goods_id int(11) 外键 SQL语句:
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) );
(3)创建category表
字段 数据类型 约束 id int(11) 主键 name varchar(30) p_id int(11) SQL语句:
create table category( id int(11) primary key, name varchar(30), p_id int(11) );
(4)创建comment表
字段 数据类型 约束 id int(11) 主键 goods_id int(11) 非空、无符号 user_id int(11) 非空、无符号 content text 默认 add_time datetime create table comment( id int(11) primary key, goods_id int(11) unsigned not null, user_id int(11) unsigned not null, content text, add_time datetime );
(5)创建reply表
字段 数据类型 约束 id int(11) 主键、自增 commment_id int(11) 非空、无符号 user_id int(11) 非空、无符号 r_content text add_time datetime SQL语句:
create table reply( id int(11) primary key auto_increment, comment_id int(11) unsigned not null, user_id int(11) unsigned not null, r_content text, add_time datetime );
二、查看表
1、查看表的结构
describe可简写成desc
格式:
describe 表名;
2、查看建表语句
格式:
show create table 表名;
三、修改表
修改表的结构—alter
1、修改表名
格式:
alter table 旧表名 rename 新表名;
实训案例:修改goods为tb_goods
alter table goods rename tb_goods;
2、修改字段数据类型
格式:
alter table 表名 modify 字段名 新数据类型;
实训案例:将tb_goods表中的type字段的数据类型修改为char(30)
alter table tb_goods modify type char(30);
3、修改字段名
格式:
alter table 表名 change 旧字段名 新字段名 数据类型;
实训案例:将tb_goods表中的name字段的数据类型修改为g_name
alter table tb_goods change name g_name varchar(30);
4、添加字段
(1)在表的最后一列添加字段
格式:
alter table 表名 add 字段名 数据类型;
实训案例:在tb_goods表最后一列添加picture字段,数据类型为varchar(255)
alter table tb_goods add picture varchar(255);
(2)在表的第一列添加字段
alter table 表名 add 字段名 数据类型 first;
实训案例:在tb_goods表中第一列添加state字段,数据类型为tinyint(4)
alter table tb_goods add state tinyint(4);
(3)在表的指定列之后添加字段
alter table 表名 add 字段名 数据类型 after 字段名2;
实训案例:在tb_goods表中num字段之后添加intro字段,数据类型为text
alter table tb_goods add intro text after num;
5、删除字段
格式:
alter table 表名 drop 字段名;
实训案例:删除tb_goods表中的picture字段
alter table tb_goods drop picture;
6、修改字段顺序
格式:
alter table 表名 modify 字段1名 数据类型 first|after 字段2名;
实训案例:将tb_goods表的state字段位置修改为id字段之后
alter table tb_goods modify state tinyint(4) after id;
7、修改存储引擎
格式:
alter table 表名 engine=新存储引擎名;
实训案例:修改category表的存储引擎为InnoDB
alter table category engine=InnoDB;
8、修改约束条件
(1)主键约束
格式:
添加:alter table 表名 add primary key(字段名); 删除:alter table 表名 drop primary key;
实训案例:删除tb_goods表的主键约束,再添加。
(2)非空约束
格式:
添加:alter table 表名 modify 字段名 数据类型 not null; 删除:alter table 表名 modify 字段名 数据类型 null;
实训案例:删除tb_goods表的非空约束,然后再添加。
(3)唯一约束
格式:
添加:alter table 表名 add unique key(字段名); 删除:alter table 表名 drop key 字段名;
实训案例:删除tb_goods表的唯一约束,再添加。
(4)自增约束
添加:alter table 表名 modify 字段名 数据类型 auto_increment; 删除:alter table 表名 modify 字段名 数据类型;
实训案例:删除tb_goods表的自增约束,再添加。
(5)默认值约束
添加:alter table 表名 modfiy 字段名 数据类型 default '值'; 删除:alter table 表名 modify 字段名 数据类型 default null;
实训案例:删除tb_goods表的默认值约束,再添加。
(6)无符号约束
添加:alter table 表名 modfiy 字段名 数据类型 unsigned; 删除:alter table 表名 modify 字段名 数据类型
实训案例:删除tb_goods表的无符号约束,再添加。
(7)外键约束
添加:alter table 表名 add constaint 约束名 foreign key(外键列)references 主键表(主键列) 删除: 第一步:删除外键 alter table 表名 drop foreign key 约束名 第二步:删除索引 alter table 表名 drop index 索引名 约束名和索引名一样
实训案例:删除tb_goods表的外键约束,再添加
四、删除表
1、删除没有被关联的表
drop table 表名; drop table 表1,表2,......;
2、删除被其他表关联的主表
(1)从表不保留
删除从表—>删除主表
(2)从表保留
删除从表外键—>删除主表
alter table 表名 drop foreign key 外键约束名
- 关键字:constraint foreign key references
- 关键字:unique

























