2023年11月18日

MySQL: MySQL / MariaDB regexp_replace 函数 正则表达式 捕获分组的不同

MySQL 经实测,至少在MySQL 8.0.35版本中 regexp_replace 函数不支持反向引用分组。 在MySQL官方文档中也没有找到关于捕获分组的内容: https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-replace MariaDB MariaDB 可以使用\N反向引用捕获的分组, N是1到9的数字: Backreferences to the subexpressions in the form \N, where N is a number from 1 to 9: SELECT REGEXP_REPLACE('James Bond','^(.*) (.*)$','\\2, \\1') AS reorder_name; -> Bond, James 参考MariaDB官方文档…
2023年11月17日

MySQL: MySQL 8.0 参考手册 12.8.2 正则表达式

MySQL 8.0 参考手册  / 第 12 章函数和运算符  / 12.8 字符串函数和运算符  /  12.8.2 正则表达式 12.8.2 正则表达式 表 12.14 正则表达式函数和运算符 姓名 描述 NOT REGEXP REGEXP 的否定 REGEXP 字符串是否匹配正则表达式 REGEXP_INSTR() 子串匹配正则表达式的起始索引 REGEXP_LIKE() 字符串是否匹配正则表达式 REGEXP_REPLACE() 替换匹配正则表达式的子字符串 REGEXP_SUBSTR() 返回匹配正则表达式的子串 RLIKE 字符串是否匹配正则表达式 正则表达式是一种为复杂搜索指定模式的强大方法。本节讨论可用于正则表达式匹配的函数和运算符,并通过示例说明一些可用于正则表达式运算的特殊字符和结构。另见第 3.3.4.7 节,“模式匹配”。 MySQL 使用 Unicode 国…
2023年10月24日

MySQL: MySQL replace 函数 替换字符串 / regexp_replace 函数 正则表达式匹配替换字符串

replace 函数: UPDATE `table_name` SET `field_name` = replace (`field_name`,'old_str','new_str') WHERE `field_name` LIKE '%from_str%' Tips: table_name —— 表的名字 field_name —— 字段名 old_str —— 需要替换的字符串 new_str —— 替换成的字符串 regexp_replace 函数 https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-replace REGEXP_REPLACE(expr, pat, repl[, pos[, occurrence[, match_type]]]) 将字符串中 expr与模式指定的正则表达式匹…
2023年10月24日

MySQL: MySQL 复制表的三种方式

文章目录 复制表结构及其数据 只复制表结构 只复制表数据 复制表结构及其数据 下面这个语句会拷贝数据到新表中。 注意:这个语句其实只是把select语句的结果建一个表,所以新表不会有主键,索引。 create table table_name_new as (select * from table_name_old); 只复制表结构 create table table_name_new as select * from table_name_old where 1=2; 或者 create table table_name_new like table_name_old; 注意:前一种方式是不会复制主键类型,索引的,而后一种方式是把旧表的所有字段类型都复制到新表。 只复制表数据 如果两个表结构一样 insert into table_name_new select * from table…
2023年9月28日

MySQL: Linux彻底卸载/删除MySQL

Ubuntu彻底卸载MySQL 停止MySQL服务: user@ubuntu:~$ service mysql status MySQL running (25673)[ OK ] user@ubuntu:~$ service mysql stop Shutting down MySQL..[ OK ] user@ubuntu:~$ service mysql status MySQL is not running[FAILED] 卸载MySQL: user@ubuntu:~$ sudo apt purge mysql-* user@ubuntu:~$ sudo rm -rf /etc/mysql/ /var/lib/mysql user@ubuntu:~$ sudo apt autoremove user@ubuntu:~$ sudo apt autoclean apt-get purge 与 apt-get…
2023年8月7日

MySQL: MySQL表的七大约束详解

文章目录 MySQL表的约束 1,默认约束 2,非空约束 3,唯一约束 4,主键约束 5,自增约束 6,检索约束 7,外键约束 MySQL表的约束 1.概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 2.目的:保证数据库中数据的正确、有效性和完整性。 约束 描述 关键字 默认约束 保存数据时,如果未指定该字段的值,则采用默认值 DEFAULT 非空约束 限制该字段的数据不能为null NOT NULL 唯一约束 保证该字段的所有数据都是唯一、不重复的 UNIQUE 主键约束 主键是一行数据的唯一标识,要求非空且唯一 PRIMARY KEY 自增约束 为每条记录生成唯一的标识号 AUTO_INCREMENT 检索约束 保证字段值满足某一个条件(8.0.16版本之后) CHECK 外键约束 用来让两张表的数据之间建立连接,保证数据的一致性和完整性 FOREIGN KEY 注意…
2023年7月30日

MySQL: MySQLDumper 基于Web的MySQL备份/恢复PHP脚本

MySQLDumper 是一个基于 Web 的 MYSQL 备份/恢复脚本,可以处理巨大的数据库。 此外,就像在 phpMyAdmin 中一样,您可以在易于使用的 SQLBrowser 中创建、删除数据库、表和视图,或者查看、搜索、删除、编辑或添加字段。 https://sourceforge.net/projects/mysqldumper/ Additional Project Details Languages French, Italian, Greek, Vietnamese, English, Portuguese, Swedish, Turkish, Danish, German, Spanish, Arabic Intended Audience Advanced End Users User Interface Web-based Programming Langu…
2022年9月27日

MySQL: Ubuntu 20.04 上安装 MySQL 及 MySQL基础

官方文档 本文目录: 1.1 安装 1.2 配置MySQL的安全性 1.3 以root用户登录 1.4 修改密码 1.5 撤销用户授权 1.6 删除用户 2.1 SQL书写规范 2.2 命名规则 2.3 数据类型 (1)数值类型 (2)日期和时间类型 (3)字符串类型 3.1 数据库的创建 3.2 数据库的查看 3.3 选择数据库 3.4 删除数据库 4.1 表的创建 4.2 表的删除 4.3 表的更新 4.4 表的查询 4.5 表的复制 5.1 算术运算符 5.2 比较运算符 5.3 逻辑运算符 6.1 聚合函数 6.2 对表分组 6.3 使用WHERE语句 6.4 为聚合结果指定条件 6.5 对表的查询结果进行排序 7.1 数据的插入 7.2 数据的删除 7.3 数据的更新 8.1 安装pymysql 8.2 连接数据库 8.3 创建游标 8.4 类方法 8.5 实战 前言 MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开…
2022年9月25日

MySQL: 多用户同时操作一条Mysql记录问题

目录 关于乐观锁和悲观锁 悲观锁: 乐观锁:   场景:两个用户同时读取了数据库中的一条记录,此时用户A对其中一个字段的值进行了修改操作并进行了提交,后来用户B也对这个字段进行了修改,用户B的提交将会覆盖用户A提交的值   回到顶部 关于乐观锁和悲观锁 悲观锁: 每次去取数据,很悲观,都觉得会被别人修改,所以在拿数据的时候都会上锁。 简言之,共享资源每次都只给一个线程使用,其他线程阻塞,等第一个线程用完后再把资源转让给其他线程。 synchronized和ReentranLock等都是悲观锁思想的体现。  乐观锁: 每次去取数据,都很乐观,觉得不会被被人修改。 因此每次都不上锁,但是在更新的时候,就会看别人有没有在这期间去更新这个数据,如果有更新就重新获取,再进行判断,一直循环,直到拿到没有被修改过的数据。 CAS(Com…
2022年9月20日

MySQL 导出导入数据

1. MySQL 导出数据 MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上。 使用 SELECT ... INTO OUTFILE 语句导出数据 以下实例中我们将数据表 domainx_tbl 数据导出到 /tmp/domainx.txt 文件中: mysql> SELECT * FROM domainx_tbl -> INTO OUTFILE '/tmp/domainx.txt'; 你可以通过命令选项来设置数据输出的指定格式,以下实例为导出 CSV 格式: mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/domainx.txt' -> FIELDS TERMINATED BY ',' ENCLOSED BY '"' -> LINES TERMINATED BY '\r\n'; 在下…