MySQL数据表的修改
在MySQL中,允许对创建好的数据表进行修改,修改时可以有以下几种形式:修改表名、修改字段名、修改字段类型、修改字段排列位置、添加字段、删除字段、添加字段约束、删除约束等,它们一般都是使用“Alter table表名”命令,但后跟的具体参数不同,下面分别介绍其语句格式。
4.4.1修改表名
语句格式一:Alter table表名RENAME [TO] 新表名
语句格式二:RENAME TABLE 表名 TO 新表名
在上面语句格式中,“表名”为要更名的表,“新表名”为要更改成的表名,格式一中参数“TO”可以省略。
下面截图中的“ALTER TABLE”语句将dept更名为t_dept。
本期我们用 MySQL 提供的 DBUG 工具来研究 MySQL 的 SQL 处理流程。
起手先造个实例
这里得稍微改一下实例的启动文件 start,将 CUSTOM_MYSQLD 改为 mysqld-debug:
重启一下实例,加上 debug 参数:
我们来做一两个实验,说明 DBUG 包的作用:
先设置一个简单的调试规则,我们设置了两个调试选项:
d:开启各个调试点的输出
O,/tmp/mysqld.trace:将调试结果输出到指定文件
然后我们创建了一张表,来看一下调试的输出结果:
请点击输入图片描述
可以看到 create table 的过程中,MySQL 的一些细节 *** 作,比如分配内存 alloc_root 等
这样看还不够直观,我们增加一些信息:
请点击输入图片描述
来看看效果:
请点击输入图片描述
可以看到输出变成了调用树的形式,现在就可以分辨出 alloc_root 分配的内存,是为了解析 SQL 时用的(mysql_parse)
我们再增加一些有用的信息:
请点击输入图片描述
可以看到结果中增加了文件名和行号:
请点击输入图片描述
现在我们可以在输出中找一下统计表相关的信息:
请点击输入图片描述
可以看到 MySQL 在这里非常机智,直接执行了一个内置的存储过程来更新统计表。
沿着 que_eval_sql,可以找到其他类似的统计表,比如下面这些:
请点击输入图片描述
请点击输入图片描述
本次实验中,我们借助了 MySQL 的 DBUG 包,来让 MySQL 将处理过程暴露出来。MySQL 中类似的技术还有不少,比如 performance_schema,OPTIMIZER_TRACE 等等。
这些技术将 MySQL 的不同方向的信息暴露出来,方便大家理解其中机制。
使用update:update 表名 set 字段1='修改值1',字段2='修改值2',字段5='修改值5' where 字段='某些值'
该语句是将表中所要求字段匹配后的行,进行相应字段的修改。
例如,表person
id/name/age
1/a/15
2/b/15
3/c/16
update person set name=d where age=16
结果为3/c/16被修改为3/d/16。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)