一、创建数据表
1、基本格式
create table <表名>(
字段名1 数据类型 约束条件,
字段名2 数据类型 约束条件,
字段名3 数据类型 约束条件,
......
约束条件
);
*创建表的关键字 create
*各字段之间用逗号隔开
*句末加分号;
2、设置约束条件
(1)设置主键约束
主键(主码):用于唯一标识该条记录
* 关键字为:primary key
*一张表只能有一个主键
*主键值不能为空
格式一:定义字段时设置主键
字段名 数据类型 primary key
格式二:定义所有字段后设置主键
primary key(字段名)
(2)设置自增约束
某字段可按照顺序自动生成编号
*关键字为:auto_increment
*一张表只能设置一个字段为自增约束,并且该字段必须为主键
*默认的初始值为1,每增加一条记录,字段值自动增加1
*字段类型必须为整数类型
语法格式
字段名 数据类型 auto_increment
(3)设置非空约束
*关键字为not null
*作用是:规定字段值不能为空
*用户在向数据表中插入数据时,如果设置非空约束的字段没有指定值,系统就会报错
语法格式
字段名 数据类型 not null
(4)设置唯一性约束
当数据表中某个字段的值不允许重复时,可以使用唯一性约束。
*关键字为:unique
*设置了唯一性约束的字段,插入的数据与数据表中已存在的数据相同时,系统会报错
格式一:定义字段时设置唯一性约束
字段名 数据类型 unique
格式二:定义所有字段后设置唯一性约束
unique key(字段名)
(5)设置无符号约束
*关键字:unsigned
*作用:规定该字段所存储的数据不为负数
格式
字段名 数据类型 unsigned
(6)设置默认约束
*关键字:default
*对于设置了默认约束的字段插入记录时,如果没有为该字段赋值,系统会自动将默认值插入到此字段中。
*没有设置默认约束的字段,系统会自读设置默认值为null
格式
字段名 数据类型 default 值
(7)设置外键约束
设置外键约束的作用是可以将两张表关联在一起。
格式
constraint 约束名 foreign key(字段名) references 主表名(主表中的字段名)
关键字:constraint foreign key references
(8)设置表的存储引擎
格式
engine=存储引擎名
3.例
任务一:根据下表的数据信息创建数据表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 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)
);
任务三、根据下表的数据信息创建数据表category
步骤
create table category(
id int(11) primary key,
name varchar(30),
p_id int(11)
);
任务四、根据下表的数据信息创建数据表comment
步骤
create table comment(
id int(11) primary key auto_increment,
goods_id int(11) unsigned not null,
user_id int(11) unsigned not null,
content text,
add_time datetime
);
任务五、根据下表的数据信息创建数据表reply
步骤
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.查看表基本结构
查看表基本结构的关键字为desc(describe),语法格式如下:
describe 表名;
*Field:表示字段名称。
*Type:表示数据类型。
*Null:表示是否可以存储空值。
*Key:表示是否创建索引,PRI表示主键索引,UNI表示唯一索引。
*Default:表示默认值。
*Extra:表示与字段有关的附加信息。
2.查看建表语句
show create table 表名;
三、修改表
1.修改表名
语法格式:
alter table 旧表名 rename 新表名;
【案例】修改goods表的名称为tb_goods
alter table goods rename tb_goods;
2.修改字段数据类型
语法格式:
alter table 操作的表名 modify 被修改的字段名 修改后的数据类型;
【案例】修改name数据类型为vhar(30),然后改回varchar(30)
3.修改字段名
alter table 操作的表名 change 旧字段名 新字段名 数据类型;
【案例】将num字段改为TY,然后改回type
4.添加字段
(1)添加到表的最后一列
alter table 操作的表名 add 添加的字段名 数据类型;
【案例】 在goods表最后一列添加phone,数据类型为char(20)
(2)添加到表的第一列
alter table 操作的表名 add 添加的字段 数据类型 first;
【案例】在表的第一列添加salary,数据类型为decimal(10,2)
(3)添加到指定位置
alter table 操作的表名 add 添加的字段名 数据类型 alter 列名(被添加的位置);
【案例】在type后面添加一个birth字段,数据类型为datetime
5.删除字段
alter table 操作的表名 drop 要删除的字段;
【案例】删除goods表中的salary字段
6.修改字段顺序
alter table 操作的表名 modify 字段 数据类型 after 最后一个字段;
【案例】把goods表中的add_time放到表的结尾
7.修改存储引擎
方法一:
8.修改约束条件
(1)修改主键约束
修改表结构,添加主键列
alter table 表名 add constraint 约束名 primary key (列名)
(2)修改唯一约束:
alter table 表名 add constraint 约束名 unique (列名)
(3)修改外键约束:
alter table 表名 add constraint 约束名 foreign key (列名) references 关联表名(列名(主键))
(4)修改CHECK约束:
alter table 表名 add constraint 约束名 check (表达式)
(5)删除约束
alter table 表名 drop constraint 约束名
四、删除表
drop table 表名;