MySQL数据库入门(四)

本文详细介绍数据库操作,包括数据表的创建、查看、修改和删除,以及表分区的概念和应用,旨在帮助读者掌握数据库管理的基本技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据表

是数据库重要的组成部分,是其他对象的基础。数据表一般为产品或资料提供一个详细具体的数据资料,方便人们使用和工作时能够清楚方便的获得相应的数据信息。且也是我们使用数据库载入数据表的原因。

创建数据表

create table <表名>
(
    id char(18),   //列名1:数据类型【列级别约束条件】【默认值】,小括号里是最大位数   
    port tinyint,
    name varchar(10),
    sex enum(‘男’,‘女’), 
//[表级别约束条件]
);

查看数据表
1.show columns from <表名>;
2.descrlbe <表名>;简化:desc <表名>

查看数据表的详细信息
show create table <表名>;

添加新列
alter table <表名> add <新列名> <数据类型> 【约束条件】 【FIRST |AFTER已存在列名】
如:alter table reader add tel varchar(11);

如果指定列后追加新列
alter table reader add tel varchar(11) after <指定列的列名>;

修改列名
alter table <表名> change <旧列名> <新列名> <新的数据类型>;

修改列的数据类型
alter table <表名> modlfy <列名> <新的数据类型>;

修改列的位置
alter table <表名> modlfy <要修改的列名> <数据类型> FIRST|AFTER <列名> <数据类型>;
修改列的位置,需要有一个参照物,我们可以根据这个参照物,移动修改列到参照物之前或者之后, FIRST|AFTER:就是选择在之前还是之后的,若是之前,则用FIRST,之后,则AFTER;

删除列
alter table <表名> drop <要删除的列名>

删除数据表
drop table [IF EXISTS] 表1,表2……;
IF EXISTS:若删除数据表不存在,则隐藏错误信息
删除数据表的SQL命令可以一次性删除多个数据表;

表分区

1.水平分区(Horizontal Partitioning)
这种形式分区是对表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集体分割(1个或多个分区)。所有在表中定义的列在每个数据集中都能找到,所以表的特性依然得以保持。
举个简单例子:一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中一年的记录。(朋奕注:这里具体使用的分区方式我们后面再说,可以先说一点,一定要通过某个属性列来分割,譬如这里使用的列就是年份)

2.垂直分区(Vertical Partitioning)
这种分区方式一般来说是通过对表的垂直划分来减少目标表的宽度,使某些特定的列被划分到特定的分区,每个分区都包含了其中的列所对应的行。举个简单例子:一个包含了大text和BLOB列的表,这些text和BLOB列又不经常被访问,这时候就要把这些不经常使用的text和BLOB了划分到另一个分区,在保证它们数据相关性的同时还能提高访问速度。

性能的提升(Increased performance)
在扫描操作中,如果MySQL的优化器知道哪个分区中才包含特定查询中需要的数据,它就能直接去扫描那些分区的数据,而不用浪费很多时间扫描不需要的地方了。需要举个例子?好啊,百万行的表划分为10个分区,每个分区就包含十万行数据,那么查询分区需要的时间仅仅是全表扫描的十分之一了,很明显的对比。同时对十万行的表建立索引的速度也会比百万行的快得多得多。如果你能把这些分区建立在不同的磁盘上,这时候的I/O读写速度就“不堪设想”(没用错词,真的太快了,理论上100倍的速度提升啊,这是多么快的响应速度啊,所以有点不堪设想了)了。

表分区有一个前提:便是你的数据库必须支持表分区

判断数据库是否支持表分区:
show plugins
如果支持,则显示
这里写图片描述

以水平分区为例:
创建表分区:partition by 类型(字段)
使用values less than 操作符定义分区

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值