网站建设知识
MySQL基础之表操作索引约束视图等介绍
2025-07-22 10:01  点击:0

表操作

创建表

基本语法:create table [if not exists] tablename(字段列表[索引或约束列表]) [表选项列表] ;

字段设定形式

格式:字段名 数据类型 字段属性1 字段属性2 ……

字段名自定义,需遵守规范 数据类型就是前文介绍的数值型 字符串型 日期时间型 字段属性可以有一个或多个,主要有以下几个
auto_increment:适用于整数类型,该字段自增,通常用于主键 primary key:设定主键,该字段的值在表中确定唯一一行数据 not null:不能为空,如果没有设定,默认为空的 unique key:设定该字段是唯一性的,不重复,与primary key的区别为该字段可以为空 default:如果没有设置该字段的值,则为默认值 comment:该字段的注释说明

创建表示例


修改表

修改表,指修改表的结构,如同创建表时设定的表结构一样
创建表可以完成的,通过修改表这种方式也可以做到
比如可以对字段进行修改,添加删除修改,对索引进行修改,添加删除,对表选项进行修改,即使创建的时候不设置表选项值,一般也有其默认值

添加字段

语法:alter table table_name add column 新字段名 新字段类型 新字段属性 示例如下

修改字段(可改名)

语法:alter table 表明 change column 旧字段名 新字段名 新字段类型 新字段属性 示例如下

删除字段

语法:alter table 表名 drop column 字段名 示例如下

添加普通索引

语法:alter table 表名 add key索引名 示例如下

添加主键索引(约束)

语法:alter table 表名 add primary key(字段名) 示例如下

添加唯一索引(约束)

语法:alter table 表名 add unique key(字段名) 示例如下

修改表名

方式一:
语法:alter table 表名 rename to 新表明 示例如下 方式二:
语法:rename table 表名 to 新表名 示例如下

删除表

语法:drop table if exists 表名 示例如下

表相关其它操作

显示当前数据库所有表

语法:show tables; 示例如下

查看表结构

语法:desc 表名 示例如下

查看表的创建语句

语法:show create table 表名 示例如下

从已有表复制表结构

语法:create table if not exists 新表名 like 旧表名 示例如下

索引

索引可以理解为数据库内部维护的一张隐藏的表,我们可以为表中的某一个或多个字段创建索引,数据库会对这个字段的所有数据进行预先的某种 排序,这样会大幅提高查询效率,但要考虑增删改带来的负担。
数据库管理系统会创建并维护一个和当前表关联的“索引表”。
索引主要分为普通索引 主键索引 唯一索引 全文索引 外键索引五种

普通索引

形式:key(字段名)
就是一个索引,没有其他作用,加快查询速度

主键索引

形式:primary key(字段名)
是一个索引,同时该字段的值还能唯一确定表中的一行数据,不可重复

唯一索引

形式:unique key(字段名)
是一个索引,并且该字段的值是唯一的,允许为空

全文索引

形式:fulltext(字段名)

外键索引

形式:foreign key(字段名) reference 其他表中的字段名
外键就是表中的某个字段,其值必须为另一个表中的某个字段值,不可以随意插入

示例


表选项

表选项就是指创建表的时候对表的整体设定
主要有如下几个:
- charset:指定表中数据存储的字符集,默认情况使用数据库的编码集
- engine:数据存储引擎,也叫表类型
- 指将数据存储到硬盘上的机制,一般有两个大层面,一个尽可能速度快,另一个尽可能功能多
- 主要有InnoDB MyIsam BDM MEMORY等,默认是InnoDB
- auto_increment:指定表中字段为auto_increment的id值起始值
- comment:表的注释说明

约束

顾名思义,就是指数据满足指定的条件才可以被正确的写入
主要有如下几种约束:

主键约束:
形式:primary key(字段名) 释义同主键索引 外键约束:
形式:foreign key(字段名) references 其他表中的字段 释义同外键索引 唯一约束:
形式:unique key(字段名) 释义同唯一索引 默认约束:
形式:default 值 次约束只能创建表的时候写在字段属性上 非空约束:
形式:not null 指创建表时的not null属性 检查约束:
形式:check(判断语句) 如:create table user(id int , age int,check(age>10 and age<88))

主键约束 唯一约束 外键约束和其对应的索引,都是同一件事情,两个名字而已。

视图

视图含义

同函数的含义差不多,函数是指将一段代码封装起来,并为之命名,以后用的时候,直接使用该函数名即可
视图也如此,只不过他是将一个select语句封装起来,给其起一个名字,这个名字就是视图名,以后执行这段语句,直接使用视图就可以了

创建视图

语法:create view 视图名 [(字段名1,字段名2 ……)] as select语句
示例如下:

使用视图

创建好的视图可以直接当做表来使用,如下:

删除视图

同删除表一样,如下: