mysql常用命令和脚本

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: mysql常用命令和脚本 修改表的auto_increment select auto_increment from information_schema.tables where table_schema='ybl_des' and table_name='goods_sync'; alter table ybl_des.

mysql常用命令和脚本

修改表的auto_increment

select auto_increment from information_schema.tables where table_schema='ybl_des' and table_name='goods_sync';
alter table ybl_des.goods_sync auto_increment=1
  • 1
  • 2

清空数据表

truncate ybl_des.goods_sync;
  • 1

内连接和外连接的区别: 
1.内连接:显示两个表中有联系的所有数据 
2.左连接:以左表为参照,显示所有的数据 
3.右连接:以右表为参照,显示所有的数据

使用sql计算两点之间的距离:

ROUND(
    6378.138 * 2 * asin(
        sqrt(
            pow(sin((shop.shop_latitude * pi() / 180 - #{latitude} * pi() / 180) / 2),2) 
            + cos(shop.shop_latitude * pi() / 180) 
                * cos(#{latitude} * pi() / 180) 
                * pow(sin((shop.shop_longitude * pi() / 180 - #{longitude} * pi() / 180) / 2),2)
            )
    )
    ,2
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

锁表语句:

LOCK TABLES `stor_order_entry` WRITE;
insert into ...
UNLOCK TABLES;
  • 1
  • 2
  • 3

确认是否开启了日志: mysql> show variables like ‘log_bin’ 
存储过程:

BEGIN
DECLARE sTemp VARCHAR(1000);
DECLARE sTempPar VARCHAR(1000);
SET sTemp = '';
SET sTempPar =rootId;

#循环递归
WHILE sTempPar is not null DO
#判断是否是第一个,不加的话第一个会为空
IF sTemp != '' THEN
SET sTemp = concat(sTemp,',',sTempPar);
ELSE //注意这里有一个else
SET sTemp = sTempPar;
END IF;

SET sTemp = concat(sTemp,',',sTempPar);
SELECT group_concat(pid) INTO sTempPar FROM treenodes where pid<>id and FIND_IN_SET(id,sTempPar)>0;
END WHILE;

RETURN sTemp;
END
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

可以参考的表:

CREATE TABLE `config_kv` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`c_type` VARCHAR(200) NULL DEFAULT NULL COMMENT '业务类型',
`c_key` VARCHAR(100) NULL DEFAULT NULL COMMENT '键:config_key',
`c_value` VARCHAR(200) NULL DEFAULT NULL COMMENT '值:config_value',
`remark` VARCHAR(500) NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE
)
COMMENT='键值对配置表'

CREATE TABLE `config_mapping` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`config_type` VARCHAR(255) NULL DEFAULT NULL COMMENT '映射类型',
`from_system` VARCHAR(255) NULL DEFAULT NULL COMMENT '来源系统:third_system_info.code',
`from_value` VARCHAR(255) NULL DEFAULT NULL COMMENT '来源系统value值',
`to_system` VARCHAR(255) NULL DEFAULT NULL COMMENT '目标系统:third_system_info.code',
`to_value` VARCHAR(255) NULL DEFAULT NULL COMMENT '目标系统value值',
`is_delete` BIT(1) NULL DEFAULT b'0' COMMENT '逻辑删除:0:未删除,1:已删除',
`remark` VARCHAR(500) NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

判断某个字段中是否有重复的字段并显示该字段的名字:

select a,b from(
select count(*) as a, c_key as b from config_kv group by c_key ) as c
where a > 1;
  • 1
  • 2
  • 3

数据库脚本的参考例子:

#call altername('库名')
delimiter //
DROP PROCEDURE IF EXISTS altername//
CREATE PROCEDURE altername(IN dbname VARCHAR(200))  
BEGIN

DECLARE done INT DEFAULT 0;  

DECLARE oldname VARCHAR(200);  

DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema = dbname;  

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;  

OPEN cur;  

REPEAT  

FETCH cur INTO oldname;  
-- 这一步可以防止表名不存在   
SET @newname = UPPER(oldname);  
SET @isNotSame = @newname <> BINARY oldname;   
IF NOT done && @isNotSame THEN  

SET @SQL = CONCAT('alter table `',oldname,'` rename to `', 'bak_', LOWER(@newname),'`');   
PREPARE tmpstmt FROM @SQL;   
EXECUTE tmpstmt;  

-- SET @SQL = CONCAT('alter table `',oldname,'` rename to `', SUBSTRING(LOWER(@newname),5),'`');   
-- PREPARE tmpstmt FROM @SQL;   
-- EXECUTE tmpstmt; 

DEALLOCATE PREPARE tmpstmt;  

END IF;   
UNTIL done END REPEAT;   
CLOSE cur;   
END;
//
delimiter ; //


call altername("stock-server");原文地址https://blog.csdn.net/jiaweicheng77/article/details/81239225
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 关系型数据库 MySQL
初步了解MySQL数据库的基本命令
初步了解MySQL数据库的基本命令
46 0
|
4月前
|
SQL 监控 关系型数据库
MySQL优化: CPU高 处理脚本 pt-kill脚本
MySQL优化: CPU高 处理脚本 pt-kill脚本
|
2月前
|
SQL 关系型数据库 MySQL
|
2月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
1月前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
31 0
|
3月前
|
存储 关系型数据库 MySQL
MySQL基础命令及使用示例
这些基础命令构成了与MySQL数据库交互的核心,理解并掌握它们对于进行有效的数据库操作至关重要。在实际使用中,建议结合实际案例和需求来练习这些命令,以加深理解和提高效率。
34 3
|
3月前
|
存储 关系型数据库 MySQL
MySQL基础命令及使用示例
这些基础命令构成了与MySQL数据库交互的核心,理解并掌握它们对于进行有效的数据库操作至关重要。在实际使用中,建议结合实际案例和需求来练习这些命令,以加深理解和提高效率。
72 4
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库中给表添加字段并设置备注的脚本编写
通过上述步骤,你可以在MySQL数据库中给表成功添加新字段并为其设置备注。这样的操作对于保持数据库结构的清晰和最新非常重要,同时也帮助团队成员理解数据模型的变化和字段的具体含义。在实际操作中,记得调整脚本以适应具体的数据库和表名称,以及字段的详细规范。
72 8
|
2月前
|
关系型数据库 MySQL 数据库
Mysql 常用命令
Mysql 常用命令
23 0
|
4月前
|
存储 关系型数据库 MySQL
实战!MySQL主从复制一键搭建脚本分享
实战!MySQL主从复制一键搭建脚本分享
85 2