您的位置:首页 > 数据库 > MySQL

MySQL 表结构管理

2020-02-15 10:44 197 查看

数据类型

MySQL数据类型
类型 字节数 范围unsign
tinyint 1 字节 (0,255)
smallint 2 字节 (0,65535)
mediumint 3 字节 (0,16777215)
int 4 字节 (0,4294967295)
bigint 8 字节 (0,…)
MySQL 小数类型
类型 字节数
float 4 字节
double 8 字节
decimal( length , precision );	//用于表示精度确定 length 表示该小数最大位数  precision 表示小数精度

unsigned						 //无符号关键字
MySQL 日期类型
类型 字节 格式
date 3 YYYY-MM-DD
time 3 HH:ii:ss
year 1 YYYY
datetime 8 YYYY-MM-DD HH:ii:ss
timestamp 8 YYYY-MM-DD HH:ii:ss
MySQL 复合类型

单选 enum (‘man’,‘female’)
多选 set (‘电影’,‘音乐’,‘足球’)
自增字段: auto_increment

复制一个表结构
create table new_table like old_table;					//拷贝表结构
create table new_table select * from old_table;	 		//拷贝表结构 以及 表记录
//以上两种方法 都不能完全复制  表的约束条件,例如:外键约束

修改表结构

修改字段信息

  1. 删除字段
  2. 添加新字段
  3. 修改字段名(或数据类型)

修改约束条件

  1. 添加约束条件
  2. 删除约束条件

修改其他选项

这里是引用

修改表名

这里是引用

索引

学习之前我们要回答以下一些问题帮助我们更好的理解:

1. 索引的本质?

索引是数据库表中字段的复制, 该字段称索引关键字。

2. MySQL 中 数据是如何检索的?

查找数据时,先查找关键字,按照关键字定位到初始页,否则,全表检索

3. 一张数据库表只能创建一个索引吗

一个数据库 可以创建多个索引。
**例如:**字典中有拼音索引 和 部首索引

4. 什么是前缀索引

索引中的关键字 是 索引 “关键字” 字段的一个部分。 例如: 教师姓名(例如 “张老师”)中的 “姓”(“张”) 建立前缀索引

5. 索引可以是字段组合吗

可以! 数据表某个索引由多个关键字组成 , 则称 “复合索引”。
注意: 字段必须来自同一张表,,而且必须是相应字段的拷贝,
另外: 数据库为了提高效率, 会对 索引关键字 进行排序。

6. 能跨表创建索引吗

不能

7. 索引数据额外空间

当然需要
对于 InnoDB: 索引数据存放在 外存InnoDB 表空间文件中(可能是共享表空间,也可能是独享表空间)

8. 索引选取原则,什么是主索引,什么是聚簇索引?

主键当索引最好!!!!

9. 索引与数据结构的关系

索引通常使用 平衡树(btree)哈希表 等复杂的数据结构。

10. 同一个表中,索引越多越好吗

如果没有索引 就必须从第一条数据开始查询,甚至读完整个表。有索引 就能更快,并且索引由MySQL自动维护。
索引可以提高效率,但索引是 “冗余数据” ,索引过多会导致在操作数据时,速度降低。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
仰望星空wdc 发布了18 篇原创文章 · 获赞 1 · 访问量 432 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: