问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql 怎么使用正则表达式

发布网友 发布时间:2022-04-30 00:08

我来回答

4个回答

懂视网 时间:2022-04-30 06:28

1、显示当前数据库服务器中的数据库列表:

mysql> SHOW DATABASES;

注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。

2、进入数据库:

mysql> USE 库名;

2、显示数据库中的数据表:

mysql> SHOW TABLES;

3、显示数据表的结构:

mysql> DESCRIBE 表名;

4、建立数据库:

mysql> CREATE DATABASE 库名;

5、建立数据表:

mysql> USE 库名;
mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));

6、删除数据库:

mysql> DROP DATABASE 库名;

7、删除多个数据表:

mysql> DROP TABLE 表名,表名;

8、将表中记录清空:

mysql> DELETE FROM 表名;

9、显示表中的记录:

mysql> SELECT * FROM 表名;

10、往表中插入新的字段:

mysql> alter tabel 表名 add column 字段名 varchar(10);

10、往表中插入记录:

mysql> INSERT INTO 表名 VALUES (”hyq”,”M”);

语法:INSERT [INTO] tbl_name [(col_name,...)] VALUES (PRession,...),…
      INSERT [INTO] tbl_name SET col_name=expression, ...

Note:在django中插入时要多加一个id字段:INSERT INTO 表名 VALUES (1, ‘aaa‘, ‘bbb‘);

11、修改字段类型:

mysql> alter table 表名 modify column 字段名 varchar(12);

11、更新表中数据:

mysql-> UPDATE 表名 SET 字段名1=‘a‘,字段名2=‘b‘ WHERE 字段名3=‘c‘;

12、用文本方式将数据装入数据表中:

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE 表名;

13、导入.sql文件命令:

mysql> USE 数据库名;
mysql> SOURCE d:/mysql.sql;

14、命令行修改root密码:

mysql> UPDATE mysql.user SET password=PASSWORD(‘新密码‘) WHERE User=‘root‘;
mysql> FLUSH PRIVILEGES;

15、显示use的数据库名:

mysql> SELECT DATABASE();

16、显示当前的user:

mysql> SELECT USER();

Note:

1. 操作都是在MySQL的提示符下进行的,而且每个命令以分号结束。

2. sql语句对大小写不敏感

[MySQL命令详解]

http://blog.csdn.net/pipisorry/article/details/46773545


MySQL索引使用规则

  1. 用于索引的最好的备选数据列是那些出现在WHERE子句、join子句、ORDER BY或GROUP BY子句中的列。

  2. 什么情况下应不建或少建索引?
    a. 表记录太少
    b. 经常插入、删除、修改的表
    c. 经常和主字段一块查询但主字段索引值比较多的表字段

  3. 复合索引的创建:
    比如有一条语句是这样的:

    select * from users where area=’beijing’ and age=22;
    如果我们是在area和age上分别创建单个索引的话,由于mysql查询每次只能使用一个索引,所以虽然这样已经相对不做索引时全表扫描提高了很多效率,但是如果在area、age两列上创建复合索引的话将带来更高的效率。

    如果我们创建了(area, age,salary)的复合索引,那么其实相当于创建了(area,age,salary)、(area,age)、(area)三个索引,这被称为最佳左前缀

  4. 复合索引的建立以及最左前缀原则:
    如果你需要索引一个字符串数据列,那么最好在任何适当的情况下都应该指定前缀长度。你可以索引CHAR、VARCHAR、BINARY、VARBINARY、BLOB和TEXT数据列的前缀。
    假设你在表的state、city和zip数据列上建立了复合索引。索引中的数据行按照state/city/zip次序排列,因此它们也会自动地按照state/city/zip次序排列。这意味着,即使你在查询中只指定了state值,或者指定state和city值,MySQL也可以使用这个索引。因此,这个索引可以被用于搜索如下所示的数据列组合:(state, city, zip)(state, city)(state)

  5. 索引不会包含有NULL值的列
    只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。

  6. mysql查询只使用一个索引.

    因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。

  7. 一般情况下不鼓励使用like操作.

    如果非使用不可,如何使用也是一个问题。like “%a%” 不会使用索引而like “aaa%”可以使用索引。

  8. 不要在列上进行运算,select * from users where YEAR(adddate)

  9. 不使用NOT IN操作:
    NOT IN操作不会使用索引将进行全表扫描。NOT IN可以用NOT EXISTS代替.

[mysql索引箴言集]

http://blog.csdn.net/pipisorry/article/details/46773545


mysql特殊符号

% (百分号)  :
代表任意长度(长度可以为0)的字符串 例:a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab等都满足该匹配串 _ (下横线):
代表任意单个字符 例:a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串

字符串引号:

在SQL中,表示字符串引号强烈建议使用单引号(‘)。虽然MySQL(和PHP搭配之最佳组合)也可以使用双引号("),但是为了和sql server(WINDOWS平台上强大的数据库平台)和Oracle(大型网站数据库平台)统一,建议都使用单引号。如果在字符串中也有单引号出现的话,在SQL中需要将其替换为两个单引号(‘‘),DBMS会将其解释为一个单引号的。

SQL的换行符和字符串连接符:

在MySQL(和PHP搭配之最佳组合)、sql server(WINDOWS平台上强大的数据库平台)和Oracle(大型网站数据库平台)中均有不同,下面以列表显示。  MySQL(和PHP搭配之最佳组合)sql server(WINDOWS平台上强大的数据库平台)Oracle(大型网站数据库平台)换行符 或 或CHAR(10)CHAR(13)CHR(10)字符串连接符CONCAT()+||或CONCAT()

宏变量标识符(&) :

在Oracle(大型网站数据库平台)里有特殊含义,是一个宏变量标识符,在SQLPLUS里执行SELECT ‘AAA BBB‘ AS STR FROM DUAL,它会提示你输入宏变量值,所有如果SQL里有(&),建议用单引号括起来,如SELECT ‘AAA‘||‘&‘||‘nbsp;BBB‘ AS STR FROM DUAL它就不会提示了。


mysql正则表达式

replace、regexp的用法
0 Comments | This entry was posted on Apr 08 2010
mysql replace用法
1.replace into
replace into table (id,name) values(‘1′,‘aa‘),(‘2′,‘bb‘)
此语句的作用是向表table中插入两条记录。如果主键id为1或2不存在
就相当于
insert into table (id,name) values(‘1′,‘aa‘),(‘2′,‘bb‘)
如果存在相同的值则不会插入数据
2.replace(object,search,replace)
把object中出现search的全部替换为replace
select replace(‘www.163.com‘,‘w‘,‘Ww‘)—>WwWwWw.163.com
例:把表table中的name字段中的aa替换为bb
update table set name=replace(name,‘aa‘,‘bb‘)
——————————————————————————– 

扩展正则表达式
由MySQL提供的模式匹配的其它类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。
扩展正则表达式的一些字符是:
· ‘.‘匹配任何单个的字符。
· 字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。
· “ * ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。
如果REGEXP模式与被测试值的任何地方匹配,模式就匹配(这不同于LIKE模式匹配,只有与整个值匹配,模式才匹配)。
为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。
为了说明扩展正则表达式如何工作,下面使用REGEXP重写上面所示的LIKE查询:
为了找出以“b”开头的名字,使用“^”匹配名字的开始:
mysql> SELECT * FROM pet WHERE name REGEXP ‘^b‘;

[mysql 正则表达式]

[删除mysql数据库中所有不以JP开头的表]

from:http://blog.csdn.net/pipisorry/article/details/46773545


版权声明:本文为博主原创文章,未经博主允许不得转载。

mysql语法、特殊符号及正则表达式的使用

标签:mysql   正则表达式   数据库服务器   数据库   

热心网友 时间:2022-04-30 03:36

属性名 regexp ‘匹配方式'

正则表达式的模式字符

^ 匹配字符开始的部分

eg1: 从info表name字段中查询以L开头的记录

select * from info where name regexp '^L';

eg2: 从info表name字段中查询以aaa开头的记录

select * from info where name regexp '^aaa';

$ 匹配字符结束的部分

eg1: 从info表name字段中查询以c结尾的记录

select * from info where name regexp 'c$';

eg2: 从info表name字段中查询以aaa结尾的记录

select * from info where name regexp 'aaa$';

. 匹配字符串中的任意一个字符,包括回车和换行

eg1: 从info表name字段中查询以L开头y结尾中间有两个任意字符的记录

select * from info where name regexp '^L..y$';

[字符集合]匹配字符集合中的任意字符

eg1: 从info表name字段中查询包含c、e、o三个字母中任意一个的记录

select * from info where name regexp '[ceo]';

eg2: 从info表name字段中查询包含数字的记录

select * from info where name regexp '[0-9]';

eg3: 从info表name字段中查询包含数字或a、b、c三个字母中任意一个的记录

select * from info where name regexp '[0-9a-c]';

[^字符集合]匹配除了字符集合外的任意字符

eg1: 从info表name字段中查询包含a-w字母和数字以外字符的记录

select * from info where name regexp '[^a-w0-9]';

s1|s2|s3 匹配s1s2s3中的任意一个

eg1: 从info表name字段中查询包含'ic'的记录

select * from info where name regexp 'ic';

eg2: 从info表name字段中查询包含ic、uc、ab三个字符串中任意一个的记录

select * from info where name regexp 'ic|uc|ab';

* 代表多个该字符前的字符,包括0个或1个

eg1: 从info表name字段中查询c之前出现过a的记录

select * from info where name regexp 'a*c';

+ 代表多个该字符前的字符,包括1个

eg1: 从info表name字段中查询c之前出现过a的记录

select * from info where name regexp 'a+c';(注意比较结果!)

字符串{N} 字符串出现N次

eg1: 从info表name字段中查询出现过a3次的记录

select * from info where name regexp 'a{3}';

字符串{M,N}字符串最少出现M次,最多出现N次

eg1: 从info表name字段中查询ab出现最少1次最多3次的记录

select * from info where name regexp 'ab{1,3}';

MYSQL中自带通配符(LIKE关键词)

%可以表示任意长度的字符(包括0)

-可以表示单个字符

热心网友 时间:2022-04-30 04:54

MySQL 正则表达式

下表中的正则模式可应用于 REGEXP 操作符中。

from 树懒学堂 - 一站式数据知识平台

热心网友 时间:2022-04-30 06:29

MySQL 一直以来都支持正则匹配,不过对于正则替换则一直到MySQL 8.0 才支持。对于这类场景,以前要么在MySQL端处理,要么把数据拿出来在应用端处理。

比如我想把表y1的列str1的出现第3个action的子 串替换成dble,怎么实现?


1. 自己写SQL层的存储函数。代码如下写死了3个,没有优化,仅仅作为演示,MySQL 里非常不建议写这样的函数。

MySQL中使用RegExp正则表达式进行查询操作mysql中regexp

1. 匹配单个字符 我们可以使用“.”来匹配任意一个字符,例如:SELECT * FROM mytable WHERE name REGEXP ‘^J.s.seph$’;这个查询语句将会匹配任意一个以J开头,s结尾,中间有一个任意字符的字符串。2. 匹配一组字符 我们可以使用方括号来匹配一个字符集合,例如:SELECT * FROM my...

mysql正则表达式rlike的使用方法mysql中rlike

() 用于标记表达式的开始和结束 | 或 3.实例 假设有一个students表,其中包含了姓名、性别和年龄等信息。我们可以使用RLIKE进行模式匹配,找出名字中包含a字母的男生的信息。连接数据库并创建students表:mysql> CREATE DATABASE studentsdb;mysql> USE studentsdb;mysql> CREATE TABLE students (name VAR...

MySQL正则表达式使用详解mysql中使用正则

1. REGEXP:检查一个字符串是否与正则表达式匹配。2. RLIKE:检查一个字符串是否与正则表达式匹配,与REGEXP相同。3. REGEXP_REPLACE:替换匹配正则表达式的子字符串。4. REGEXP_INSTR:返回与正则表达式匹配的字符串的位置。示例代码 以下是一个例子,用于说明MySQL正则表达式的使用方法:SELECT * FROM...

Mysql正则表达式精确匹配数字的简单用法mysql正则数字

1.^:匹配字符串的开头,搜索字符串的开始位置。2.\d:表示要匹配的是数字字符,可以有多个数字字符。3.+:表示可以出现一次或多次。4.$:匹配字符串的结尾,搜索字符串的结束位置。具体的在MySQL中应用如下:SELECT * FROM Users WHERE Users.age REGEXP ‘^\d+$’;上面的查询将在...

MySQL正则表达式使用RegExpmysql中regexp

MySQL正则表达式模式的语法与其他编程语言或工具中使用的标准正则表达式语法类似,但也有一些区别。以下是MySQL支持的正则表达式元字符和符号:– ^:匹配以该字符或表达式开头的字符串。例如,^a匹配以a开头的字符串。– $:匹配以该字符或表达式结尾的字符串。例如,a$匹配以a结尾的字符串。

MySQL笔记(七)-正则表达式

1. 匹配单个字符:查询表中以数字开头的字符串,使用正则表达式,返回以数字开头的字符串所在行。2. 匹配多个字符:查询表中以数字结尾的字符串,使用相应正则表达式,返回以数字结尾的字符串所在行。3. 匹配字符串:查询表中以数字开头且结尾的字符串,使用特定正则表达式,返回符合条件的字符串所在行。4...

mysql 怎么使用正则表达式

正则表达式的模式字符 ^ 匹配字符开始的部分 eg1: 从info表name字段中查询以L开头的记录 select * from info where name regexp '^L';eg2: 从info表name字段中查询以aaa开头的记录 select * from info where name regexp '^aaa';匹配字符结束的部分 eg1: 从info表name字段中查询以c结尾的记录 ...

MySQL REGEXP操作符中的正则表达式模式有哪些应用场景?

正则表达式支持各种模式,如匹配字符串开始(^)、结束($)、任何单个字符(.)、字符集合([])、否定字符集合([^])、或操作(|)、重复次数(*、+、{n}、{n,m})等。下面是一些实例,帮助理解如何在SQL查询中应用正则表达式:1. 查找name字段中以"st"开头的记录:mysqlSELECT name FROM ...

正则表达式在MySQL中如何匹配特定字符和模式?

在MySQL中,`REGEXP`操作符用于执行正则表达式匹配。例如,`SELECT fo/nfo REGEXP 'foo$';`会检查"fo/nfo"是否以"foo"结尾。使用`[ ]`和`[^ ]`可以匹配特定字符或排除字符,如`SELECT pi REGEXP 'pi|apa';`查找"pi"或"apa"。`[a-dX]`和`[^a-dX]`分别匹配指定字符范围和非指定字符...

如何使用mysql正则表达式匹配全是大写字母的句子?

在输入时做验证吧:reg = '/[A-Z]/i';preg_match($reg,$str) 为真就把数据狠狠的插进去吧!

正则表达式怎么用 正则表达式或者怎么用 正则表达式或者怎么表示 mysql的正则表达式替换 mysql 正则表达式匹配 mysql正则表达式回车 mysql正则表达式匹配中文 mysql正则表达式截取字符串 mysql正则表达式提取数字
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
作为健身达人,你怎么能只知道吃鸡蛋 迷雾剧场再出新作 八角亭谜雾》表现如何 专利著作权不可以转让吗 我骑自行车被小气车撞了下,小汽车全责,有事故认定,我有一根利骨骨_百度... 怎么摆脱已分手男人的纠缠 东莞东站到东莞体育管怎么走 东莞市莞太路34号联丰工业区是在南城区吗? 哪个软件免费下载的网站最好呢? update语句SQL问题 sql2000,将表1与表2相同字段的数据找出来,并更新表1的字段 mate20摔了,屏幕能触屏但是出现全屏彩条怎么办?维修需要多少钱 mysql 正则查询问题 华为mate20p ro出现满屏的彩色条纹zen m b? mysql数据库正则查询 MYSQL中正则查询 怎么把EXE文件后缀修改! exe应用程序里面的文件怎么修改? 如何修改EXE软件的属性描述和图标 如何修改exe软件的名称 2019年生产的18款朗逸plus风尚版有16寸轮毂吗? 如何修改EXE文件图标 怎么修改exe程序,急!!! 朗逸用什么牌子轮胎 大众朗行的原配轮胎是什么牌子? 怎样修改EXE安装文件 朗逸plus轮毂是什么材质 新朗逸1.6自动用什么牌子轮胎 如何编辑一个游戏的exe文件? 朗逸使用什么轮胎好 请问上海大众2013款新朗逸使用的后备轮胎是什么牌子的? 华为mate20手机发现屏幕左边有个长方形条子像马赛克一样? 求一个mysql的正则表达式 MYSQL正则匹配,比如查询ABCABC应该如果写? mate 20 pro在暗光下视频时屏幕会出现竖道波纹是否正常 微信删除好友怎么才能加回来我不知道他 mysql语句中包含正则表达式 MySQL 正则表达式 匹配 {} mysql数据库中 正则表达式 “{n,m}”的用法? MySQL正则表达式问题 mysql select 是否可通过正则表达式提取提取信息 一淘和淘宝的区别是什么? mysql正则表达式如何匹配GBK中文 只要是在 "我的一淘—我的订单—淘宝网订单"里能查到的都是通过一淘下单的吗 一淘网与淘宝网有什么区别尽量详细点,谢谢高手 删除微信好友不记得怎么加回来? 华为v10账号游戏有什么特权? 按揭房贷材料齐全贷款成功率有多高 请问我申请住房贷款成功几率大吗? 圣人多过,君子寡过,小人无过. 贷款买房银行贷款经理做好材料上系统成功率高吗?