记录一些日常的mysql常用的使用, 方便随用随查。

一、表结构

1.1 查看表结构

  • 方式1: 可以查看建表语句,完整的表结构。
show create table table_name;
  • 方式2:可以比较好的筛选自己要查的表信息,方便整理表结构文档。
# 查询表所有列信息
select *
from information_schema.columns
where table_schema = 'db' #表所在数据库
and table_name = 'tablename' ; #你要查的表 # 查询需要的信息
select
column_name, column_type, column_comment,is_nullable
from information_schema.columns
where table_schema = 'o2o_monitor' #表所在数据库
and table_name = 'dws_o2o_overdue_stat' ; #你要查的表

1.2 表操作

1.2.1 表重命名

Rename table table_old to table_new
OR
alter table table_old Rename to table_new

1.2.2 修改表字段,包括名称、类型、备注等

# 增加字段
alter table table_name add column_new bigint(20) DEFAULT NULL COMMENT '备注' After somecolumn; # 修改字段
alter table competitor_goods change column_old column_new bigint(20) DEFAULT NULL COMMENT '备注';

1.2.3 复制表结构

create table table_new like table_old;

1.2.4 索引

# 删除索引
ALTER TABLE table_name drop index appid_idx # 添加索引
ALTER TABLE table_name ADD INDEX appid_idx (apply_id)

二、SQL使用

2.1 sql执行顺序:

SQL Select语句完整的执行顺序:

(8)  SELECT
(6) SUM(), AVG(),COUNT()
(9) DISTINCT <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(7) HAVING <having_condition>
(10) UNION <other select results>
(11) ORDER BY <order_by_condition>
(12) LIMIT <limit_number>
  1. from子句组装来自不同数据源的数据;

    2-3 on join 多表关联;
  2. where子句基于指定的条件对记录行进行筛选;
  3. group by子句将数据划分为多个分组;
  4. 使用聚集函数进行计算;
  5. 使用having子句筛选分组;

    8-9 计算所有的表达式select distinct等;
  6. 其他数据结果 合并
  7. 使用order by对结果集进行排序。
  8. 使用LIMIT对结果限制输出数据量。

查询关键字执行顺序:

FROM -> ON -> JOIN -> WHERE -> GROUP BY -> 聚合操作 ->HAVING -> SELECT -> DISTINCT -> UNION -> ORDER BY -> LIMIT

2.2 更新记录update

2.2.1 更新记录建议事务操作

select *  from order where order_id=1231540

-- 事务开始
BEGIN -- 更新
update order
set order_date = date_sub(order_date, interval 9 day)
where order_id=1231540 -- 校验
select * from order where order_id=1231540 -- 错误回滚
ROLLBACK -- 正确提交
COMMIT

2.2.2 关联表更新

要更新的数据不能直接找到,需要做表关联才能找到

update order o
(left) join user u
on o.user_id = u.id
set o.order_date = date_sub(o.order_date, interval 9 day)
where u.user_name='张三'

mysql日常使用总结(持续更新中)的更多相关文章

  1. Mysql注入小tips --持续更新中

    学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说 ...

  2. 基础学习:MYSQL命令大全(持续更新中---最近一次:2019.12.6)

    启动mysql : mysql -hlocalhost -uroot -p创建数据库:create database 数据库名字;指定要操作的数据库:use 数===据库名字;查看数据表建表语句:sh ...

  3. PHP 日常开发过程中的bug集合(持续更新中。。。)

    PHP 日常开发过程中的bug集合(持续更新中...) 在日常php开发过程中,会遇到一些意想不到的bug,所以想着把这些bug记录下来,以免再犯! 1.字符串 '0.00'.'0.0'.'0'  是 ...

  4. java视频教程 Java自学视频整理(持续更新中...)

    视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...

  5. redis日常使用汇总--持续更新

    redis日常使用汇总--持续更新 工作中有较多用到redis的场景,尤其是触及性能优化的方面,传统的缓存策略在处理持久化和多服务间数据共享的问题总是不尽人意,此时引入redis,但redis是单线程 ...

  6. EOS开发经验总结——不定期持续更新中

    一.新手安装mysql乱码问题 1.数据库安装时设置默认编码格式为UTF8或者打开mysql安装目录下my.ini,变更default-character-set=utf8: 2.打开EOS的Gove ...

  7. fastadmin 后台管理框架使用技巧(持续更新中)

    fastadmin 后台管理框架使用技巧(持续更新中) FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架,具体介绍,请查看文档,文档地址为:https://doc. ...

  8. 前端深入之js篇丨Array数组操作从入门到成神Up Up Up,持续更新中

    写在前面 随着前端深入的不断学习,发现数组这个数据结构在前端中有着相当大的存在感,由于我初学前端的时候并没有系统性的学习数组,所以我将通过这篇文章同你一起学习数组,希望我们能一起进步,学会熟练操作数组 ...

  9. 史上最全的spark面试题——持续更新中

    史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题   版权声明:本文为博主原创文章,遵循C ...

  10. 2020年腾讯实习生C++面试题&持续更新中(3)

    2020年腾讯实习生C++面试题&持续更新中(3) hello,大家好,我是好好学习,天天编程的天天. 来给大家大家分享腾讯实习生面经了. 天天希望大家看到面经后一定要做充分的准备,结合自己掌 ...

随机推荐

  1. SciTE for Ruby的配置

    转自:http://my.oschina.net/xsinger/blog/14229?catalog=71266 下载下面这个文件:http://scintilla.sourceforge.net/ ...

  2. paramiko使用1

  3. JavaScript中设置cookie的值

    cookie 与 session 是网页开发中常用的信息存储方式.Cookie是在客户端开辟的一块可存储用户信息的地方:Session是在服务器内存中开辟的一块存储用户信息的地方.JavaScript ...

  4. 太有用了,所以转:Delphi下16进制位图数据转位图

    如果我们在Form中拖入一个Image控件,并设置好picture后,Alt+F12就可以看到Form的源代码中已经将图片转成了16进制字符串,如下: object Image1: TImage Le ...

  5. 3java面试题 传智 发的 有用

    第一章内容介绍 20 第二章JavaSE基础 21 一.Java面向对象 21 1. 面向对象都有哪些特性以及你对这些特性的理解 21 2. 访问权限修饰符public.private.protect ...

  6. 《精通Spring4.X企业应用开发实战》读后感第七章(AOP基础知识、jdk动态代理,CGLib动态代理)

  7. range分表

    按主键范围进行分表,假设当前主键的最大值为5000,把数据拆成5等份 1-1000:是5000的第1个范围,把该范围的数据作为一张表 1001-2000:是5000的第2个范围,把该范围的数据作为一张 ...

  8. JavaScript 异常 Exceptions

    JavaScript提供了一套异常处理机制. 异常是干扰程序的正常流程的不寻常(但并非完全是出乎意料的)的事故. 当发现这样的事故时,你的程序应该抛出一个异常. throw语句中断函数的执行. 它应该 ...

  9. Java 概述及安装使用

    Java是什么 概述 java是一种面向对象编程语言,不过经过多年的发展,现在已经演变为了一套强大的技术体系.Java设计者们将Java划分为3种结构独立但却彼此依赖的技术体系分支,它们分别对应着不同 ...

  10. .NET Core 3.0 可回收程序集加载上下文

    一.前世今生 .NET诞生以来,程序集的动态加载和卸载都是一个Hack的技术,之前的NetFx都是使用AppDomain的方式去加载程序集,然而AppDomain并没有提供直接卸载一个程序集的API, ...