本文主要和大家分享mysql数据表操作实例详解,希望能帮助到大家,首先我们先来看一下如何创建数据表。
创建表
基本语法形式:
字段设定形式:
说明:
1. 字段名可以自己取;
2. 类型就是前面所学的数据类型:int, tinyint, float, double, char(6), varchar(25), text, datetime。
3. 字段属性可以有多个(根据具体的需要),相互之间直接空格隔开;主要如下几个:
| 属性名称 | 含义 |
|---|---|
| auto_increment: | 只用于整数类型,让该字段的值自动获得一个增长值。通常用于做一个表的第一个字段的设定,并且通常还当做主键(primary key) |
| primary key: | 用于设定该字段为主键,此时该字段的值就可以“唯一确定”一行数据 |
| unique key: | 设定该字段是“唯一的”,也就是不重复的。 |
| not null: | 用于设定该字段不能为空(null),如果没有设定,则默认是可为空的。 |
| comment : | 字段说明文字 |
索引
索引是系统内部自动维护的隐藏的“数据表”,它的作用是,可以极大地加快数据的查找速度!
这个隐藏的数据表,其中的数据是自动排好序的,其查找速度就是建立在这个基础上。
形式为:
索引类型(要建立索引的字段名)
| 索引类型 | 形式 | 含义 |
|---|---|---|
| 普通索引 | key(字段名) | 就是一个索引而已,没有其他作用,只能加快查找速度 |
| 唯一索引 | unique key(字段名) | 是一个索引,而且还可以设定其字段的值不能重复(唯一性) |
| 主键索引 | primary key (字段名) | 是一个索引,而且,还具有区分该表中的任何一行数据的作用(其实也是唯一性),它其实比唯一性索引多一点功能:唯一性可以为空null,而主键不能为空 |
| 全文索引 | fulltext (字段名) | |
| 外键索引 | foreign key (字段名) | references 其他表(对应其他表中的字段名) |
foreign key (字段名) references 其他表(对应其他表中的字段名);
示例: 
全文索引:仅做了解,因为对中文还不够友好
约束
| 约束类型 | 形式 | 含义 |
|---|---|---|
| 主键约束 | primary key ( 字段名) | 使该设定字段的值可以用于“唯一确定一行数据”,其实就是“主键”的意思。 |
| 唯一约束 | unique key ( 字段名) | 使该设定字段的值具有“唯一性”,自然也是可区分的。 |
| 外键约束 | foreign key ( 字段名) references 其他表名(对应其他表中的字段名) | 使该设定字段的值,必须在其谁定的对应表中的对应字段中已经有该值了。 |
| 非空约束 | not null | 其实就是设定一个字段时写的那个“not null”属性。这个约束只能写在字段属性上 |
| 默认约束 | default XX值 | 其实就是设定一个字段时写的那个“default 默认值”属性,这个约束只能写在字段属性上。 |
| 检查约束 | check(某种判断语句) |
比如:
create table tab1 ( age tinyint,check (age>=0 and age <100) /*这就是检查约束*/ )#目前相关版本还不支持,就是说只分析,但会被忽略。
表选项列表
存储引擎
不同的存储引擎,其实主要是从2个大的层面来设计存储机制:
尽可能快的速度;
尽可能多的功能;
大体如下: 
演示: 
修改表
几点说明:
修改表,是指修改表的结构——正如创建表也是设定表的结构。
创建表能做的事,修改表几乎都能做——但很不推荐去修改表,而是应该在创建表的时候就基本确定表的结构。
大体来说:
1:可以对字段进行:添加,删除,修改;
2:可以对索引进行:添加,删除
表的选项,通常“都是修改”,即使不写任何表选项,他们都有其默认值。
常见几个:
| 操作类型 | 表达式 |
|---|---|
| 添加字段 | alter table 表名 add [column] 新字段名 字段类型 [字段属性列表] |
| 修改字段(并可改名) | alter table 表名 change [column] 旧字段名 新字段名 新字段类型 [新字段属性列表] |
| 删除字段 | alter table 表名 drop [column] 字段名 |
| 添加普通索引 | alter table 表名 add key [索引名] (字段名1[,字段名2,…]) |
| 添加唯一索引(约束) | alter table 表名 add unique key (字段名1[,字段名2,…]) |
| 添加主键索引(约束) | alter table 表名 add primary key (字段名1[,字段名2,…]) |
| 修改表名 | alter table 旧表名 rename [to] 新表名 |
| 删除表 | drop table 【if exists】 表名 |
其他表的相关语句:
| 操作类型 | 表达式 |
|---|---|
| 显示当前数据库中的所有表 | show tables |
| 显示某表的结构 | desc 表名; 或:describe 表名 |
| 显示某表的创建语句 | show create table 表名 |
| 重命名表 | rename table 旧表名 to 新表名 |
| 从已有表复制表结构 | create table [if not exists] 新表名 like 原表名 |
演示复制表结构:
创建表tab_int,显示表创建语句

将tab_int复制给tab_int_bak,显示tab_int_bak表创建语句,与tab_int一致 
相关推荐:
查看MySQL数据表的索引方法
MySQL数据表的创建、查看、插入实例详解
关于MySQL数据表操作的详解
