表的基本操作

创建数据表

建表的语法格式
create table 表名
(
	字段名字 数据类型 [列级别约束] [默认值],
	字段名字2 数据类型 [列级别约束] [默认值]
	....
	[表级别约束]
);
  • 创建测试数据库
    create database test_db;
    use test_db;
  • 创建表 tb_emp1
create table tb_emp1(
id int(11) ,
name varchar(25),
depId int(11),
salary float
);
  • 使用show tables 查看这个数据库中的表
    可以看到我们刚刚创建的表
    在这里插入图片描述

列的约束

建表中的数据类型我们放到下一篇说

主键约束(primary key constraint)

创建主键有两种方式

  • 方式1 在字段后面加约束
定义数据表tb_emp2
create table tb_emp2(
id int(11)  primary key,
name varchar(25),
depId int(11),
salary float
);
  • 方式二 在定义完所有主键之后指定表中的主键
定义数据表tb_emp3
create table tb_emp3(
id int(11),
name varchar(25),
depId int(11),
salary float,
primary key(`id`)
);

主键还可由多个字段组成

定义数据表tb_emp4
create table tb_emp4(
id int(11),
name varchar(25),
depId int(11),
salary float,
primary key(`id`,depId`)
);
id和depId 将会成为联合主键
外键约束(foreign key)

外键是用来在两个数据表之间建立联系的,一个表中可以有多个外键
主表:对于两张相关联关系的表而言,关联字段中主键所在的表为主表
从表:对于两张相关联关系的表而言,关联字段中外键所在的表为从表

语法

constraint 外键名 foreign key 字段名 references 主表名 主键列

示例
创建主表

create table tb_dept1(
id int primary key,
name varchar(36) not null,
location varchar(36));

创建从表

create table tb_emp5(
id int primary key ,
name varchar(36),
deptId int,
salary float,
constraint fk_emp_dept2 foreign key(deptId) references tb_dept1(id));


** 这里references 的字段必须是主表中的primary key 不然会创建失败,如下图**在这里插入图片描述

非空约束 not null

语法格式

字段名 数据类型 not null

示例代码

create table tb_emp5(
id int primary key ,
name varchar(36) not null,
deptId int,
salary float);

其中 name字段的值不能为空
在这里插入图片描述

唯一约束 unique

表示该字段(列)的值是唯一的不能重复
语法格式

字段名 数据类型 unique

示例

create table tb_dept1(
id int primary key,
name varchar(36)  unique,
location varchar(36));

在这里插入图片描述

默认约束

语法格式

字段名字 数据类型 default 符合前面定义的数据类型的默认值

示例

create table tb_emp7(
id int primary key ,
name varchar(36) not null,
deptId int default 111,
salary float);

在这里插入图片描述

自增 auto_increment

每当加入一条新数据字段值自动加 1
注意:一个字段只能有一个字段使用auto_increment ,而且这个字段必须是主键的一部分 (主键可以由多个字段组成)

create table user(
id int primary key auto_increment,
name varchar(16));

在这里插入图片描述

查看数据表的结构

describe 表名
简写
desc 表名

在这里插入图片描述

  • field 字段名字
  • type 数据类型
  • null 是否为空
  • key 索引是什么
  • default 默认值
  • extra 与字段有关的附加信息

show create table 表名
查看定义表的语句
在这里插入图片描述

修改表

修改表名

语法

alert table 旧表名 rename to 新表名

在这里插入图片描述

修改字段的数据类型

将 tb_dept1 name的varchar改成64
在这里插入图片描述
使用 modify
alter table 表名 modify 字段名 数据类型
在这里插入图片描述

修改字段名

语法格式

alter table 表名 change 字段名 新字段名 型数据类型

示例
如果不需要更改数据类型可以与原来一样,我这里修改成了text
在这里插入图片描述
可以发现 change也可以修改数据和modify一样
在这里插入图片描述

添加字段

语法格式

alter table 表名 add 字段名 数据类型

在这里插入图片描述

  • alter table 表名 add 字段 数据类型 first # 将该字段添加到表的第一列
  • alter table 表名 add 字段1 数据类型 after 字段2 # 将字段1添加到字段2后面
    以上两个使用的比较少,
删除字段

语法格式

alter table 表名 drop 字段

在这里插入图片描述

更改表的存储引擎

语法格式

alter table 表名 engine=‘所支持的引擎类型’
在这里插入图片描述

删除外键约束

语法格式

alter table 表名 drop foreign key 约束名
tb_emp1 有个外键 fk_emp_dep1
在这里插入图片描述
可以看到当初建表时候的constraint foreign key 没有了
在这里插入图片描述

删表

语法格式

drop table 表名
drop table if exists 表名 (推荐的写法)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值