MySQL还能这样玩---第一篇之你所不知道的命令

  • 命令篇
    • DDL---表定义相关命令操作
      • show create table 表名 ---查看创建表的SQL语句
      • alter table 表名 modify 列名 列定义---修改列的类型
      • alter table 表名 add 列名 列类型 ---增加新列
      • alter table 表名 drop 列名---删除某列字段
      • later table 表名 change 旧列名 新列名 列的类型 ---修改表的列名,列定义
      • 修改字段排列顺序 --- first / after
      • 更改表名---alter table 旧表名 rename 新表名
    • DML---记录增删改查相关操作
      • 批量插入 --- insert into table (age,name) values("1","dhy"),("2","xpy"),("3","dhy_xpy")
      • 多表更新 ---- update t1,t2 set t1.name="123",t2.name="321" where t1.id=t2.id;
      • 多表删除 ---delete dp,xp from dhy_peo dp,xpy_peo xp where dp.id=xp.id;
      • 对分类聚合后的结果进行汇总--- with rollup
  • 获取帮助
  • 查询元数据信息
    • 常用视图

本篇文章重点在于对MySQL中不常用的骚操作进行整理


命令篇

DDL—表定义相关命令操作

show create table 表名 —查看创建表的SQL语句


“\G”的含义是使得记录能够按照字段竖向排列,以更好的显示内容较长的记录

\G和;都可以作为结束的标志符号


alter table 表名 modify 列名 列定义—修改列的类型


alter table 表名 add 列名 列类型 —增加新列


alter table 表名 drop 列名—删除某列字段


later table 表名 change 旧列名 新列名 列的类型 —修改表的列名,列定义


change和modify都可以修改表的定义,但是change后面需要写两次列名,但是change的优点在于修改列名称,modify则不能。


修改字段排列顺序 — first / after

上面介绍的字段增加和修改语法(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 旧表名 rename 新表名

alter table peo rename dhy_peo;


DML—记录增删改查相关操作

批量插入 — insert into table (age,name) values(“1”,“dhy”),(“2”,“xpy”),(“3”,“dhy_xpy”)

insert into dhy_peo (dhy_age,name,sex) values(18,"123",1),(19,"321",0);


这个特性使得mysql在插入大量数据的情况下,可以节省网络开销,提高插入效率。


多表更新 ---- update t1,t2 set t1.name=“123”,t2.name=“321” where t1.id=t2.id;

 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;

delete dp,xp from dhy_peo dp,xpy_peo xp where dp.id=xp.id;


对分类聚合后的结果进行汇总— with rollup

按照名字分组,统计每组的人数,在对所有组的人数之和进行汇总

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数据库里面的表

  • SCHEMATA: 提供关于当前MYSQL实例中所有数据库信息。

  • TABLES:提供数据库中表的信息


还有一些信息大家可以自行查看

  • COLUMNS:提供了表中的列信息.


对当前数据库下该表的每类字段,相关属性进行存储

  • statistics: 存储了表索引信息


MySQL还能这样玩---第一篇之你所不知道的命令相关推荐

  1. 你真的会玩SQL吗?你所不知道的 数据聚合

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  2. 前端见微知著JavaScript基础篇:你所不知道的apply, call 和 bind

    在我的职业生涯中,很早就已经开始使用JavaScript进行项目开发了.但是一直都是把重心放在了后端开发方面,前端方面鲜有涉及.所以造成的一个现象就是:目前的前端知识水平,应付一般的项目已然是足够的, ...

  3. 【c++师傅领进门,修行靠个人】第四篇:你所不知道的那些默认成员函数

    本文主要讲解默认成员函数 1 类里还有这6个默认成员函数 1.1 构造函数 1.2 析构函数 1.3 拷贝构造函数 1.4 赋值运算符重载 1.5 取地址及const取地址操作符重载 1 类里还有这6 ...

  4. 你所不知道的良心网站第一弹

    目录 前言 站长工具(tool.chinaz.com) 多吉搜索(www.dogedoge.com) 蜜柑计划(mikanani.me) 果核剥壳(www.ghpym.com) 中国色(zhonggu ...

  5. “睡服”面试官系列第一篇之let和const命令(建议收藏学习)

    目录 1let命令 1.1基本用法 1.2for循环小案例 1.3不存在变量提升 1.4暂时性死区 1.5不允许重复声明 2块级作用域 2.1为什么需要块级作用域? 2.2ES6 的块级作用域 2.3 ...

  6. 微信和Python之间,还能这样玩,你所不知道的骚操作!

    安装 pip3 install itchat 主要用到的方法: itchat.login() 微信扫描二维码登录 itchat.get_friends() 返回完整的好友列表,每个好友为一个字典, 其 ...

  7. Linux 还能这么玩,10 个非常有趣的命令!

    Linux当中有很多比较有趣的命令,可以动手看看,很简单的. 1.rev命令 一行接一行地颠倒所输入的字符串. 运行: $rev 如输入:shiyanlou shiyanlou 2.asciiview ...

  8. 你所不知道的抖音赚钱方法,原来可以这样玩!

    这篇文章略长,但是承载了非常多的干货,望你认真看完. 我相信在18年没有谁不知道抖音的火爆程度,当你出行或者朋友聚会的时候,总能看到低头刷抖音的身影,而在大街逛街或者公园散步的时候,也随处可见随着魔性 ...

  9. 你所不知道的MySQL数据库性能优化方案

    一.MySQL数据库引擎的选择 1.1 概述 MySQL数据库中最重要的一个概念就是数据库引擎,不同的数据库引擎的工作原理存在很大差异最终造成MySQL数据库服务的性能差异. 例如如果数据库引擎需要支 ...

最新文章

  1. 李飞飞等提出新的迭代视觉推理框架,在ADE上实现8.4 %的绝对提升
  2. b360装服务器系统,B365主板能不能安装Win7系统 B365和B360主板区别对比介绍
  3. 华为鸿蒙会选择开源吗,而华为已经承诺鸿蒙系统会彻底开源,鸿蒙是开源系统...
  4. Git内部原理之深入解析维护与数据恢复
  5. 20155301《信息安全系统设计基础》第六周学习总结
  6. 《娱乐至死》读书笔记(part5)--那些想当上帝的人把自己塑造成观众期望的形象
  7. Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的屏幕
  8. linux netlink 内核配置,如何在linux内核模块中加入netlink通信接口
  9. EnterCriticalSection 多线程操作相同数据遇到的问题(线程锁)
  10. PHP获取git提交信意_代码提交规范检查与修复 php_codesniffer + composer-git-hooks
  11. 盘式过滤器工作原理介绍
  12. 30天自制操作系统第二天
  13. 2013年大学英语专升本作文——Should One Expect a Reward When Doing a Good Deed?【标准答案、精品范文答案】
  14. android 手机上浏览网页
  15. windows WinExec()
  16. Java筑基17-注解
  17. 基于python的比价系统
  18. 化学机械抛光材料去除机理
  19. PAT Basic level 1062 最简分数 (20分)
  20. 植物大战僵尸阳光的无限掉落以及掉落冷却基地址寻找详细步骤~包含排除不符合条件的地址的讲解,以及如何观察地址情况等

热门文章

  1. Android 永不休眠设置
  2. 黑白棋代码Linux程序,C语言编写的黑白棋游戏源代码.doc
  3. android盒子模拟器,盒子模拟器
  4. 日语中的拨音、长音和促音规则
  5. c语言鄂州暑假培训班,鄂州C语言培训,鄂州C++工资水平,鄂州C++培训哪家比较好...
  6. 滑动删除Item,拖拽切换Item,你想了解的都在这儿
  7. 新工作 Day18 周日
  8. 【PMP考试秘笈】第三式:情景题中有效固定答题套路
  9. java derby 用户安全_derby的使用
  10. linux(ubuntu)人脸图片识别配置与实现