本篇文章重点在于对MySQL中不常用的骚操作进行整理
“\G”的含义是使得记录能够按照字段竖向排列,以更好的显示内容较长的记录
\G和;都可以作为结束的标志符号
change和modify都可以修改表的定义,但是change后面需要写两次列名,但是change的优点在于修改列名称,modify则不能。
上面介绍的字段增加和修改语法(ADD/CHANGE/MODIFY)中,都有一个可选项 first/after column_name ,这个选项可以用来修改字段在表中的位置,ADD增加的新字段默认在表的最后位置,而CHANGE/MODIFY默认都不会改变字段位置。
新增一个sex字段在name后面
alter peo add sex int(1) NOT NULL after name;
修改dhy_age到sex前面
alter table peo modify dhy_age int(1) NOT NULL after id;
CHANGE/FIRST/AFTER column都是mysql在标准sql上的拓展,其他数据库上不一定适用
alter table peo rename dhy_peo;
insert into dhy_peo (dhy_age,name,sex) values(18,"123",1),(19,"321",0);
这个特性使得mysql在插入大量数据的情况下,可以节省网络开销,提高插入效率。
update dhy_peo dp , xpy_peo xp set dp.name="dhylikexpy" ,xp.name="xpylikedhy" where dp.id=xp.id;
多表更新的语法更多的用于根据一个表的字段动态更新另一个表的字段。
delete dp,xp from dhy_peo dp,xpy_peo xp where dp.id=xp.id;
按照名字分组,统计每组的人数,在对所有组的人数之和进行汇总
SELECT NAME,COUNT(1) FROM xpy_peo GROUP BY NAME WITH ROLLUP;
如果我们对mysql中某个指令的具体使用不清楚,可以通过下面的方式,快速查询:
? 命令名
元数据指的是数据的数据,比如: 表名,列名,列类型,索引名等的各种属性名称。
mysql将这些元数据信息,存储在information_schema
数据库里面。
这是一个虚拟数据库,物理上并不存在相关的目录和文件,库里show tables显示的各种表也不是实际存在的物理表,都是视图。
需求:
1.删除test数据库下面的dhy_peo表
2.将test数据库下面所有存储引擎为myisam的表,改为innodb
通过下面的两条sql语句,可以获取到需要的SQL语句
SELECT CONCAT("drop table test.",table_name,";") FROM TABLES WHERE table_schema="test" AND table_name LIKE "dhy_peo";
SELECT CONCAT('alter table test1.',table_name,' engine=innodb;') FROM
TABLES WHERE table_schema='test' AND ENGINE='innodb';
这里列出的常用视图都是information_schema数据库里面的表
还有一些信息大家可以自行查看
对当前数据库下该表的每类字段,相关属性进行存储
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://cjdhy.blog.csdn.net/article/details/123242334
内容来源于网络,如有侵权,请联系作者删除!