首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >运维常用 mysql 语句

运维常用 mysql 语句

作者头像
用户1560186
发布于 2019-12-19 08:11:55
发布于 2019-12-19 08:11:55
1.6K00
代码可运行
举报
文章被收录于专栏:运维录运维录
运行总次数:0
代码可运行
开始之前

上周隔壁专题推送最后一篇Nginx文章(公众号出门左转 Nginx专题) ,从本周开始每周一推送MySql主题文章(Docker 主题每周四不变),文章内容均为运维方向相关,聚沙成塔,集腋成裘,第一篇文章讲一下运维工作中经常使用的 MySql 语句。

数据库基本操作
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建库
create database test;
# 也可以创建时指定字符集
create database test character set utf8;

# 列出全部的库
show databases;

# 进入库
use test;

# 删除库
# 数据无价,注意备份数据
drop database test;
数据表基本操作
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建表
create table table1(
    `id` int(6) NOT NULL AUTO_INCREMENT,
    `c1` int(5) DEFAULT NULL,
    `c2` int(6) DEFAULT NULL,
    `c3` varchar(11) DEFAULT NULL,
    PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

# 列出全部表(当前库)
show tables;

# 表结构
desc table1;
# 也可以使用 show 语句查看表结构
show create table table1;

# 复制表
# 只包括表结构、索引,不含数据
create table table2 like table1;
# 数据需要使用 insert语句完成复制
insert into table2 select * from table1;

# 查询表
select * from table2;
# *代表表中的所有列,也可以指定列的名字
select c1,c3,c4 from table1;

# 删除表
# 数据无价,注意备份数据
drop table table2;
向表中插入数据

功能: insert into 语句用于向表中插入数据。

语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert into table_name values (v1, v2,....);
insert into table_name (1,2,...) values (v1, v2,....);

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建表 table3
create table table3 like table1;

# 插入数据
insert into table3 value(1,100,20,'F7');

# 或者指定要插入数据的列
insert into table3(id,c3) values(2,'B6');
修改表中的数据

功能: update 语句 用于修改表中的数据。

语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
update table_name set feild_1=value1;
update table_name set feild_1=v_1, feild_2=v_2;
update table_name set feild_1=new [where feild_1=v1];

条件:where 子句是可选的,默认不指定的话,表中的每个记录都被更新。

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 上个示例中只在id,c3 列插入了数据,c1,c2列为NULL值。
select * from table3;
+----+------+------+------+
| id | c1   | c2   | c3   |
+----+------+------+------+
|  1 |  100 |   20 | F7   |
|  2 | NULL | NULL | B6   |
+----+------+------+------+
2 rows in set (0.00 sec)

# 接下来使用update 语句更新 c1,c2 列中的数据。
update table3 set c1=110, c2=20 where id=2;
删除表中的数据

功能: delete 语句用于删除表中的数据。

语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
delete from table_name [where feild=value];

条件:where 子句指定哪些记录应该删除。注意如果不使用where将会删除表中所有的数据

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 数据无价,注意备份数据
# 插入一条数据,id=3
insert into table3 values(3,120,20,'A1');

# where子语句指定了id范围,这里为 id=2delete from table3 where id>1 and id<3;

# where子语句指定逻辑条件,id=2已删除,除这里为id=3delete from table3 where id=2 or id=3;

# 慎用不带where条件的delete语句,将删除整个表的数据。
delete from table3;
# 由于仅剩一条数据,等同于下面的语句。
delete from table3 where id=1;
更改表结构

功能: alter table 语句用于更改表结构,例如删除、添加、修改表的字段。

示例: 以 table3 表为例。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 添加字段(多个列使用","隔开)
alter table table3 add `sn` varchar(50) DEFAULT NULL;

# 添加字段的时候指定此字段的位置
# FIRST表示增加此列为第一个列,AFTER表示增加在某个列之后
alter table table3 add `c4` varchar(11) DEFAULT NULL after `c3`;

# 删除字段
alter table table3 drop column `sn`;
# 如果删除表中多个字段使用","隔开
# alter table table3 drop column `sn`, drop column `c4`;

# 修改字段长度
alter table table3 modify column `c3` varchar(20);

# 修改字段类型
alter table table3 modify column `c3` int(9);

# 修改字段名称
alter table table3 change `c3` `sn` int(20);

# 修改表的字符集
alter table table3 convert to character set utf8;

# 添加普通索引
# alter table table_name add index index_name(`column`)
alter table table3 add index index_sn(`sn`);
  
# 添加主键索引
alter table `table_name` add primary key(`column`)
where 子句

用于在初始表中筛选条件。它是一个约束声明,用于约束数据,在返回结果集之前起作用。

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 插入3条数据
insert into table3 values(1,100,10,10001);
insert into table3 values(2,200,20,10002);
insert into table3 values(3,300,30,10003);

# 这两条语句等价
select * from table3 where id > 1 and id < 4
select * from table3 where id between 2 and 3;

# 匹配查询
select * from table3 where sn like '1000%';

# 更多运算符    
=     # 等于
!=    # 不等于(<>)
>     # 大于
<     # 小于
>=    # 大于或等于
<=    # 小于或等于
between   # 介于一个包含范围内
like      # 搜索匹配的模式
in 子句

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 删除 user_id 为 '201705190002', '201705190003'
delete from table_name where user_id in ('201705190002', '201705190003');

# 查询 user 为 root 与 red。
select user,host from mysql.user where user in ('root', 'red');
+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
| red  | localhost |
+------+-----------+
2 rows in set (0.00 sec)
注意:这里一定要将字符串用单引号''标注起来;
set 语句

SET 语句可以设置各种不同的变量类型,这些变量可以影响着服务器或者客户端的参数

系统变量在 SET 语法中可以以 var_name 的方式来引用。

变量名前面用 GLOBAL@@global. 来表示这是一个全局变量。

变量名前面用 SESSION , @@session. 或 @@ 来表示这是一个会话变量。

LOCAL@@local. 其实 SESSION@@session. 属同义。

如果变量名前面没有附加的修饰词的话,那么 SET 只修改会话变量。

示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# show 最大连接数
show variables like 'max_con%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 10    |
| max_connections    | 1000  |
+--------------------+-------+
2 rows in set (0.00 sec)

# 设置最大连接数(临时,重启失效)
set GLOBAL max_connections=2000;  
set GLOBAL max_connect_errors=1000;

# 设置SQL模式
set GLOBAL sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

# 设置慢查询
SET GLOBAL long_query_time = 5

# 关闭慢查询  
SET GLOBAL slow_query_log = 'OFF'
rename table语句

功能: rename table语句用于修改表名。

语法: rename table table_name to new_table_name;

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 注意,数据无价,注意备份数据。
show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| x_user          |
+-----------------+
1 row in set (0.00 sec)

rename table x_user to user;

show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| user            |
+-----------------+
1 row in set (0.00 sec)

当你执行 RENAME 时,不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限,以及对新表的 CREATE 和 INSERT 权限。

如果在多表更名中,MySQL 遭遇到任何错误,它将对所有被更名的表进行倒退更名,将每件事物退回到最初状态。

into outfile 语句

示例: select 查询结果 写入到文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select username,id from users into outfile '/tmp/user.txt';

注意:写入目录,需要写入权限。

load data infile 语句

示例:sqlmap 读取 /etc/passwd

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LOAD DATA INFILE '/etc/passwd' INTO TABLE user FIELDS TERMINATED BY 'fuck' (ssl_cipher);
授权语句
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建数据库
create database `redmine-db` character set utf8;

# 授权用户
grant all privileges on `redmine-db`.* to `redmine-user`@'%' \
identified by 'password' with grant option;

# 刷新权限  
flush privileges;

# 查看用户权限
show grants for `redmine-user`;

# 赋予权限
# redmine用户已经拥有 redmine库全部权限了
grant select on `redmine-db`.*  to red2;

# 回收权限
revoke select on `redmine-db`.* from red2;

# 只读权限用户
grant select on `redmine-db`.* to 'red2'@'%' \
identified by 'password' with grant option;  

# 删除用户
drop user red2@'%';

# 刷新权限
flush privileges;
小结

最后来总结下文章中的知识点

  • 项目性质或环境不同,所需要的 mysql 语句也可能不同。
  • 按使用频率来分类,分别为 操作数据表,数据导入/出,操作数据库
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
有关js函数,方法的一些补充总结
string number boolean undefined 未定义 null 值为空 symbol 表示一个符号,符号类型是唯一的并且是不可修改的
子舒
2022/06/09
9550
JavaScript知识盲区整理
window是一个全局对象,其实就是相当于那个对象调用这个函数,那么这个函数里面的隐式参数this就是当前调用这个函数的对象
大忽悠爱学习
2021/11/15
5620
第60节:Java中的JavaScript技术
前言: JavaScript是什么呢?它是一种基于对象和事件驱动的脚本语言,主要是应用于客户端上的.JavaScript它可以做到信息的动态交互,具有交互性,它不允许直接访问本地硬盘,具有安全性,Ja
达达前端
2019/07/04
5870
JavaScript---网络编程(2)-函数与数组
上节,学完循环了~ 现在学Javascript的函数和数组。 JavaScript语法 每一种语言都有自己的语法规则,JS语法与Java很像,所以学习起来比较容易。JS中也一样有变量,语句,函数,数组等常见语言组成元素。
谙忆
2021/01/21
4080
JavaScript---网络编程(2)-函数与数组
56 道高频 JavaScript 与 ES6+ 的面试题及答案
用正则表达式匹配字符串,以字母开头,后面是数字、字符串或者下划线,长度为 9 - 20
夜尽天明
2019/08/19
9400
56 道高频 JavaScript 与 ES6+ 的面试题及答案
JAVA保姆式上手教程之JAVAWEB day01-js基础
张哥编程
2024/12/13
840
【ECMAScript6】es6 要点(一)剩余参数 | 数组方法 | 解构赋值 | 字符串模板 | 面向对象 | 模块
let : 不能重复声明,变量-可以修改,定义自身的块级作用域 const : 不能重复声明,常量-不能修改,块级作用域 。
前端修罗场
2023/10/07
2310
JavaScript基础语法整理
reverse----把元素下标进行互换,将原数组的元素进行反转,会改变原数组,并且反转后,还会返回一个数组
大忽悠爱学习
2021/11/15
6740
PHP 函数篇(上):自定义函数和内置函数
函数是现代高级编程语言的基本配备,PHP 也不例外。一个典型的 PHP 函数通过 function 关键字进行声明,然后紧跟着是函数名和通过圆括号声明的参数列表,再通过花括号定义函数体 —— 我们可以在函数体中定义具体的业务逻辑,最后通过 return 语句返回函数返回值(可选)。
学院君
2020/06/02
1.4K0
「JavaScript」数组与函数
请注意,本文编写于 2099 天前,最后修改于 174 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
5980
「JavaScript」数组与函数
day03_js学习笔记_02_js的内建对象、js的函数
day03_js学习笔记_02_js的内建对象、js的函数 ============================================================================= ============================================================================= 涉及到的知识点有: 三、js的内建对象 (1) Number对象 (2) Boolean对象
黑泽君
2018/10/11
4.8K0
最全字符串函数,总有你用到的~
在日常开发中,我们难免要和字符串打交道,各种各样的功能都可能用到上面的字符串函数,本文参考网上文章,W3C资料,以及自己平常开发中的高频需求整理形成,希望能够帮到有需要的人。
前端老王
2020/11/26
3800
用 Function.apply() 的参数数组化来提高 JavaScript程序性能
我们再来聊聊Function.apply() 在提升程序性能方面的技巧。 我们先从 Math.max() 函数说起, Math.max后面可以接任意个参数,最后返回所有参数中的最大值。 比如 alert(Math.max(5,8)) //8 alert(Math.max(5,7,9,3,1,6)) //9 但是在很多情况下,我们需要找出数组中最大的元素。 var arr=[5,7,9,1] alert(Math.max(arr)) // 这样却是不行的。一定要这样写
deepcc
2018/05/16
9390
Javascript提升阶段学习
JavaScript 1:javascript简介   JavaScript是一种脚本语言,能实现网页内容的交互显示,当用户在客户端显示该网页时,浏览器就会执行JavaScript程序,用户通过交互
别先生
2017/12/29
1.3K0
JavaScript学习笔记+常用js用法、范例(二)
javascript 加入如下语句,出错时会提示 注意: chrome、opera 和 safari 等浏览器不支持 window.onerror 事件(w3c标准没有此事件),需另外捕获出错信息
用户6808043
2022/02/24
2.3K0
JavaScript基础
「计算机语言」分为机器语言,汇编语言,高级语言。计算机内部最终执行的都是机器语言,由0和1这样的二进制数构成。
小城故事
2023/03/10
1.1K0
JavaScript基础
Javascript编码规范建议
示例: 解释: 声明包含元素的数组与对象,只有当内部元素的形式较为简单时,才允许写在一行。元素复杂的情况,还是应该换行书写。 示例:
Clearlove
2019/08/29
1.5K0
Javascript编码规范建议
01_JavaScript学习笔记整理-ECMAScript
1.在标签中,任何地方添加标签.标签中内容就是js代码. 虽然可以放在页面的任何地方,但是规范放在标签中.
全栈程序员站长
2021/07/13
7270
【Node.js算法题】数组去重、数组删除元素、数组排序、字符串排序、字符串反向、字符串改大写 、数组改大写、字符替换
本期文章是js的一些算法题,包括数组去重、数组删除元素、数组排序、字符串排序、字符串反向、字符串改大写 、数组改大写、字符替换。
颜颜yan_
2023/03/06
1.9K0
【Node.js算法题】数组去重、数组删除元素、数组排序、字符串排序、字符串反向、字符串改大写 、数组改大写、字符替换
JavaScript—函数
在JS中,可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用。虽然for循环语句也能实现一些简单的操作,但是比较具有局限性,此时我们就可以使用JS中的函数。
Cikian.
2022/09/22
8730
推荐阅读
相关推荐
有关js函数,方法的一些补充总结
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 开始之前
  • 数据库基本操作
  • 数据表基本操作
  • 向表中插入数据
  • 修改表中的数据
  • 删除表中的数据
  • 更改表结构
  • where 子句
  • in 子句
  • set 语句
  • rename table语句
  • into outfile 语句
  • load data infile 语句
  • 授权语句
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档