mysql日常使用总结(持续更新中)
记录一些日常的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>
- from子句组装来自不同数据源的数据;
2-3 on join 多表关联; - where子句基于指定的条件对记录行进行筛选;
- group by子句将数据划分为多个分组;
- 使用聚集函数进行计算;
- 使用having子句筛选分组;
8-9 计算所有的表达式select distinct等; - 其他数据结果 合并
- 使用order by对结果集进行排序。
- 使用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日常使用总结(持续更新中)的更多相关文章
- Mysql注入小tips --持续更新中
学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说 ...
- 基础学习:MYSQL命令大全(持续更新中---最近一次:2019.12.6)
启动mysql : mysql -hlocalhost -uroot -p创建数据库:create database 数据库名字;指定要操作的数据库:use 数===据库名字;查看数据表建表语句:sh ...
- PHP 日常开发过程中的bug集合(持续更新中。。。)
PHP 日常开发过程中的bug集合(持续更新中...) 在日常php开发过程中,会遇到一些意想不到的bug,所以想着把这些bug记录下来,以免再犯! 1.字符串 '0.00'.'0.0'.'0' 是 ...
- java视频教程 Java自学视频整理(持续更新中...)
视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...
- redis日常使用汇总--持续更新
redis日常使用汇总--持续更新 工作中有较多用到redis的场景,尤其是触及性能优化的方面,传统的缓存策略在处理持久化和多服务间数据共享的问题总是不尽人意,此时引入redis,但redis是单线程 ...
- EOS开发经验总结——不定期持续更新中
一.新手安装mysql乱码问题 1.数据库安装时设置默认编码格式为UTF8或者打开mysql安装目录下my.ini,变更default-character-set=utf8: 2.打开EOS的Gove ...
- fastadmin 后台管理框架使用技巧(持续更新中)
fastadmin 后台管理框架使用技巧(持续更新中) FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架,具体介绍,请查看文档,文档地址为:https://doc. ...
- 前端深入之js篇丨Array数组操作从入门到成神Up Up Up,持续更新中
写在前面 随着前端深入的不断学习,发现数组这个数据结构在前端中有着相当大的存在感,由于我初学前端的时候并没有系统性的学习数组,所以我将通过这篇文章同你一起学习数组,希望我们能一起进步,学会熟练操作数组 ...
- 史上最全的spark面试题——持续更新中
史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题 版权声明:本文为博主原创文章,遵循C ...
- 2020年腾讯实习生C++面试题&持续更新中(3)
2020年腾讯实习生C++面试题&持续更新中(3) hello,大家好,我是好好学习,天天编程的天天. 来给大家大家分享腾讯实习生面经了. 天天希望大家看到面经后一定要做充分的准备,结合自己掌 ...
随机推荐
- 问题13:如何在for语句中迭代多个可迭代的对象
from random import randint a1 = [randint(10, 50) for _ in range(5)] a2 = [randint(10, 50) for _ in r ...
- java继承示例
package day07; class Fu { int num = 5; } class Zi extends Fu { int num =7; void show() { int num =9; ...
- js提交数据时需判断是点击事件还是回车键
使用回车键实质还是点击事件==回车时将焦点聚居在某个标签上. Html代码: <div id="btlogin" class="btlogin">& ...
- SpringMVC 学习笔记(拦截器的配置))
在设置SpringMVC的拦截器时,需要在SpringMVC中配置 拦截器对象,拦截器的的对象要 实现 HandlerInterceptor 接口 拦截器类的设置: public class inte ...
- CentOS7 搭建LNMP
一. 安装依赖文件 1. sudo yum install gcc gcc-c++ zlib zlib-devel libxml2 libxml2-devel openssl open ...
- C语言入门题
1. 如下语句通过算术运算和逻辑运算之后 i 和 j 的结果是() int i=0; int j=0; if((++i>0)||(++j>0 ...
- css 雪碧图
CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问 该页面时,载入的图片就不会像以前那样一幅一幅地 ...
- codeforces educational round25
A #include<bits/stdc++.h> using namespace std; typedef long long ll; int main(){ ; string s; c ...
- 数据库导入sql文件
数据库导入sql文件包括两种方式: 一.命令行导入 二.数据库工具导入 后续完善
- 做c语言的码农专业发展方向
写了几年C语言代码,最近在思索,何去何从比较好? 搜索了一下,发现几个答案: 2015年10月编程语言排行榜 丢开C语言在教学应用外.在目前C语言的实际应用中.常见的应用的情景有如下: 内核/驱动,b ...