前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >运维常用 mysql 语句

运维常用 mysql 语句

作者头像
用户1560186
发布于 2019-12-19 08:11:55
发布于 2019-12-19 08:11:55
1.5K00
代码可运行
举报
文章被收录于专栏:运维录运维录
运行总次数: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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
“熟练使用SQL”,那你真的熟练吗?精简版复习大纲送给大家
导读:经常看到一份数据分析岗位的招聘要求:“熟练使用SQL”。那你真的熟练吗? 最基本的几个问题,SQL是什么?数据库是什么?RDBMS又是什么?什么叫表? 作者:爱德宝器 来源:数据管道(ID:adc9556) 数据库(Database):按照数据结构来组织、存储和管理数据的仓库。 RDBMS(Relational Database Management System):关系数据库管理系统,存储和操作关系数据库表中排列的数据的软件。 SQL:Structured Query Lanuage(结构化查询语
IT阅读排行榜
2019/04/25
1.3K0
“熟练使用SQL”,那你真的熟练吗?精简版复习大纲送给大家
SQL之mysql常用操作语句(入门级)
1.进入数据库: mysql -u root -p    mysql -h localhost -u root -p database_name   2.列出数据库 show databases;   3.选择数据库: use databases_name;   4.列出数据表: show tables;   5.显示表格列的属性 show columns from table_name;    describe table_name;   6.导出整个数据库: mysqldump -u user_name
互联网金融打杂
2018/04/03
6560
MySQL常用操作
一、查看类 查看mysql当前的各类指标status; `show status;` 查看字符集 show variables like "%character%"; show character set; 查看当前用户 select user(); 查看排序规则SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; show variables like "%collat
KaliArch
2018/06/24
3K3
MySQL常用操作
常用SQL语句
ERROR 1025 (HY000): Error on rename of ‘./test/#sql-27c_2308’ to ‘./test/student’ (errno: 150) 更改类型编码类型时 出现此错误一般为有外键约束 解决方法 暂时停止外键检查 set foreign_key_checks=0; 4.6
周小董
2019/03/25
1.9K0
Oracle 数据库常用操作语句大全
一、Oracle数据库操作 1、创建数据库 create database databasename 2、删除数据库 drop database dbname 3、备份数据库 完全备份 exp demo/demo@orcl buffer=1024 file=d:\back.dmp full=y demo:用户名、密码 buffer: 缓存大小 file: 具体的备份文件地址 full: 是否导出全部文件 ignore: 忽略错误,如果表已经存在,则也是覆盖 将数据库中system用户与sys用户的表导出 e
企鹅号小编
2018/01/26
9900
常用sql语句整理:mysql
– 增加一张表 “` CREATE TABLE `table_name`( … )ENGINE=InnoDB DEFAULT CHARSET=utf8; “`
全栈程序员站长
2022/07/07
1.9K0
小白博客 MYSQL常用语句
用户管理: 1、新建用户: >CREATE USER name IDENTIFIED BY ‘ssapdrow’; 2、更改密码: >SET PASSWORD FOR name=PASSWORD(‘fdddfd’); 3、权限管理 >SHOW GRANTS FOR name;    //查看name用户权限 >GRANT SELECT ON db_name.* TO name;    //给name用户db_name数据库的所有权限 >REVOKE SELE
奶糖味的代言
2018/04/11
6220
MySQL 常用语句(值得收藏)
Windows服务 -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格) 连接与断开服务器 mysql -h 地址 -P 端口 -u 用户名 -p 密码 SHOW PROCESSLIST -- 显示哪些线程正在运行 SHOW VARIABLES -- 显示系统变量信息 数据库操作 -- 查看当前数据库 SELECT DATABASE(); --
办公魔盒
2019/07/22
1.6K0
MySQL 常用语句(值得收藏)
Mysql常用sql整理
加密查询 md5加密 select MD5('123456') as a 掩藏身份证号 select CONCAT(LEFT(`id_number`,9),'*********',RIGHT(`id_number`,1)) 查询身份证号 select * from test where left('id_number',6)=123456 and right('id_number',3)=456 生成随机数 select round(rand()*(999999-111111)+111111) 生
mikelLam
2022/10/31
7200
《MySQL核心知识》第2章:MySQL常用的命令
今天是《MySQL核心知识》的第2章,今天给大家讲讲MySQL的常用命令,好了,不多说了,开始今天的正题。
冰河
2022/08/05
5520
深入OceanBase分布式数据库:MySQL 模式下的 SQL 基本操作
在当今的大数据时代,数据库技术的选择对于企业的信息化发展至关重要。OceanBase作为一种高性能、高可用的分布式关系数据库,在与MySQL模式的兼容性方面展现出了显著的优势,为企业数据迁移、整合与升级提供了极大的便利。
公众号:码到三十五
2024/05/06
8040
深入OceanBase分布式数据库:MySQL 模式下的 SQL 基本操作
Mysql 常用指令总结
基本语句 命令行操作 创建数据库 create database shop charset utf8; 展示数据库 show databases; 使用/删除数据库 use shop ; ​ drop databases shop; ​ drop table tbale 删除表 drop databases if exists shop; 如果shop 存在,则删除,否则报错 查看数据库结构 show databases; 查看表结构 desc stduent; 创建表 create table s
程序员海军
2021/10/08
8220
MySQL常用命令语句(建议收藏)
这篇文章主要介绍了Mysql命令大全,用于写mysql语句找不到命令! 常用的语句 查询 select * from bbs where id=1; 增加 insert into bbs (name,data_year) values ("jack","1993-10-01"); 修改 update bbs set name="tom",sex=1,age=18 where name="jack"; 删除 delete form bbs where id=2; 字符串替换: UPDATE \`ca
緣來
2020/01/02
7210
【MySQL】003. MySQL操作库
💦创建数据库的本质就是在/var/lib/mysql/路径下创建一个目录 删除数据库
_孙同学
2025/04/17
650
【MySQL】003. MySQL操作库
经典SQL语句大全
A:UNION 运算符 UNION 运算符通过组合其他两个结果表,并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
SQL数据库开发
2024/04/24
1480
经典SQL语句大全
新手如何入门学习PostgreSQL?
在各种数据岗招聘中,SQL几乎成为了必备技能。有公司的地方就会有数据,有数据的地方就会有数据库,有数据库的地方就会有SQL。
派大星的数据屋
2022/07/06
2K0
新手如何入门学习PostgreSQL?
MySQL 数据库常用命令小结
mysqladmin drop databasename 删除数据库前,有提示。
阳光岛主
2019/02/19
1K0
MySQL 教程上
MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
acc8226
2022/05/17
3.6K0
mysql sql语句大全
根据已有的表创建新表: A:create table tabnew like tabold (使用旧表创建新表) B:create table tabnew as select col1,col2… from tabold definition only 5、说明:删除新表
统计学家
2019/04/10
12.3K1
mysql基本sql语句大全(基础用语篇)_mysql常用查询语句
首先在打开 DOS 窗口,然后进入目录 mysql bin,再键入命令 mysql -uroot -p,回
全栈程序员站长
2022/10/04
4.2K0
相关推荐
“熟练使用SQL”,那你真的熟练吗?精简版复习大纲送给大家
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验