MySQL数据库(表的相关操作-创建查看删除以及表的主键/唯一/非空/默认/外键约束)以及常见报错分析--刘港辉学编程

在阅读本章之前需要学习一些Navicat基本的操作和数据库相关概念
数据库基本操作
数据库数据类型

表的相关操作

一.创建表(create)

结构:create table xxx(字段名1 数据类型1,字段名2 数据类型2);
create table是创建表的关键字
id name sex 等等都是字段名,是形容描述数据的
int varchar(10) float 等等都是数据类型,用来表示数据的类型

-- 创建一个个人信息表,有id,有name
create table lgh(
	id int,      -- id是字段名  int是数据类型
	name varchar(10)     --name是字段名   varhar(10)是数据类型
);

显示如下结构说明创建成功
在这里插入图片描述
创建完成后想要查看可以这样做(点击创建表所在数据库里面的表,右击刷新就可以了)
在这里插入图片描述
在这里插入图片描述

二.查看表(show)(desc)

查看表详细结构show create table xxx;
查看表结构desc xxx; / describe xxx;

desc lgh;   --查看表lgh的详细结构
show create table lgh;   --查看表lgh的结构

三.修改表(alter)

3.1.修改表名(rename)

alter table 旧表名 rename 新表名;

alter table lgh rename hgl;  -- 将表名lgh改为hgl

3.2.修改字段的数据类型(modify)

alter table 表名 modify 要修改的字段名 字段的数据类型;

alter table hgl modify id int(10);   -- 将表hgl的id字段的数据类型改为int(10)
alter table hgl modify id int(11),modify name varchar(10);   -- 将表hgl的id字段和name字段的数据类型都改了

3.3.修改字段名(change)

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

alter table hgl change name sex varchar(5);   -- 修改hgl的字段name改为sex

3.4.增加字段(add)

alter table 表名 add 字段名 字段名类型 新字段位置;

alter table hgl add  sorce varchar(10) first;   -- 增加字段sorc,数据类型为varchar,并置顶

3.5.修改字段的排列位置(modify)

alter table 表名 modify 字段名 字段类型 字段位置 ;

alter table hgl modify sex varchar(10) first;  -- 将字段id的位置置顶
alter table hgl modify sex varchar(10) after sex;  -- 将字段id的位置置于sex后面

3.6.删除字段(drop)

alter table 表名 drop 字段名;

alter table hgl drop sex;   -- 删除表hgl中的字段sex

四.删除表

drop table xxx;

drop table xxx;  -- 删除表xxx

约束

一.完整性约束

表主要支持以下六种完整性约束

二.主键约束(primary key)

定义:约束表中的某一字段 一唯一标识于一条记录,这一纪录不能被重复,也不能为空
id int primary key 主键约束关键字

create table emp(
	id int primary key,   -- 单个字段的主键约束
	name varchar(10),
	sex varchar(10),
	ipone varchar(20),
	email varchar(20)
);
create table emp(
	id int ,   
	name varchar(10),
	sex varchar(10),
	ipone varchar(20),
	email varchar(20),
	primary key(id ,name)    -- 多个字段的主键约束
);

在已有表中添加主键约束(primary key)

alter table xxx add primary key(id,name);   --在表xxx中添加id和name的主键约束

在已有表中删除主键约束(drop)

alter table xxx drop primary key;   --删除表xxx中的主键约束

三.唯一约束

定义:约束表中的纪录不能被重复
id int unique 唯一约束关键字

create table emp(
	id int primary key,   -- 单个字段的主键约束
	name varchar(10),
	sex varchar(10),
	ipone varchar(20) unique,  -- 单个字段不能重复,唯一约束
	email varchar(20)
);
create table emp(
	id int ,   
	name varchar(10),
	sex varchar(10),
	ipone varchar(20),
	email varchar(20),
	unique(ipone,email)  -- 多个字段的唯一约束
);

在已有表中添加唯一约束(unique)

alter table xxx add unique(ipone,email);   --在表xxx中添加ipone和email的唯一约束

在已有表中删除唯一约束(drop index)

alter table xxx drop index ipone;   --删除表xxx中的ipone的唯一约束

四.非空约束

定义:约束表中的字段不能为空
id int not null 非空约束关键字

create table emp(
	id int primary key,   -- 单个字段的主键约束
	name varchar(10) not null,    --此字段不能为空
	sex varchar(10)not null,     -此字段不能为空
	ipone varchar(20) unique,  -- 单个字段不能重复,唯一约束
	email varchar(20)
);

在已有表中添加非空约束(modify xxx not null)

alter table xxx modify name varchar(10) not null;   --在表xxx中添加name的非空约束

在已有表中删除非空约束(modify xxx null)

alter table xxx modify name varchar(10) null;  --删除表xxx中的name的非空约束

五.默认约束

定义:约束表中的字段的默认值
id int default “默认值 ” 默认约束关键字

create table emp(
	id int primary key,   -- 单个字段的主键约束
	name varchar(10) not null,    --此字段不能为空
	sex varchar(10)not null,     -此字段不能为空
	ipone varchar(20) unique,  -- 单个字段不能重复,唯一约束
	email varchar(20) default ‘lgh@.com--定义email的默认值为[email protected]
);

在已有表中添加默认值约束(modify xxx default)

alter table xxx modify email varchar(10) default@meil.com;   --在表xxx中添加email的默认值

在已有表中删除默认值约束(modify xxx)

alter table xxx modify email varchar(10) ;   --在表xxx中删除email的默认值

六.自增约束

定义:使表中的某个字段的值自动增长
id int auto_increment 自增约束关键字

create table emp(
	id int primary key auto_increment,   -- 单个字段的主键约束 以及自增约束
	name varchar(10) not null,    --此字段不能为空
	sex varchar(10)not null,     -此字段不能为空
	ipone varchar(20) unique,  -- 单个字段不能重复,唯一约束
	email varchar(20) default ‘lgh@.com--定义email的默认值为[email protected]
);

在已有表中添加自增约束(modify xxx auto_increment )

alter table xxx modify id int auto_increment ;   --在表xxx中添加自增约束

在已有表中删除自增约束(modify xxx)

alter table xxx modify id int;  --在表xxx中删除自增约束

七.外键约束

定义:某个表中字段的值依赖于另一张表中的字段值,且被依赖的字段必须有主键约束或者唯一约束,被依赖的表通常是父表或者是主表,而设置外键约束的表是子表或者从表
foreign key 本表的外键约束
references 参照主表的字段
可选项 foreign key(外键字段) references 主表名称(被参照主表的名称)

create table class(
	id_co int primary key,
	name varchar(10)
);
create table student(
	id int primary key,
	clazz int(3),
	constraint fk_clazz foreign key(clazz) references class(id_co)
);

在已有表中添加外键约束(constraint foreign key)

alter table xxx add constraint fk_字段名称 foreign key(clazz) references class(id_co);  --在表xxx中添加外键约束

在已有表中删除外键约束(drop xxx)

alter table xxx drop foreign key xxxx;  --在表xxx中删除外键约束xxxx;

文章来之不易 如有漏洞错误请大神评论区告知
更多精彩点击这里

猜你喜欢

转载自blog.csdn.net/weixin_51992868/article/details/124048509