mysql转义字符使用方法 正则表达式转义字符

无论是运维、开发、测试,还是架构师,数据库技术是一个必备加薪神器,那么,一直说学习数据库、学MySQL,到底是要学习它的哪些东西呢?
【mysql转义字符使用方法 正则表达式转义字符】下面我将分享30个MySQL数据库常用小技巧,希望能给刚入行或数据库爱好者一些帮助 , 今后再遇到任何报错 , 我们都可以很淡定地去处理 。学习任何一门技术的同时,其实就是自我修炼的过程 。沉下心,尝试去拥抱数据的世界!

mysql转义字符使用方法 正则表达式转义字符

文章插图
1、如何选择服务器的类型?
MySQL服务器配置窗口中各个参数的含义如下 。【Server Configuration Type】该选项用于设置服务器的类型 。单击该选项右侧的向下按钮,即可看到包括3个选项 。
3个选项的具体含义如下:
Development Machine(开发机器):该选项代表典型个人用桌面工作站 。假定机器上运行 着多个桌面应用程序 。将MySQL服务器配置成使用最少的系统资源 。
Server Machine (服务器):该选项代表服务器,MySQL服务器可以同其它应用程序一起 运行,例如FTP、email和web服务器 。MySQL服务器配置成使用适当比例的系统资源 。
DedicatedMySQL Server Machine (专用 MySQL 服务器):该选项代表只运行MySQL服务的服务器 。假定运行没有运行其他应用程序 。MySQL服务器配置成使用所有可用系统资源 。作为初学者,建议选择【DevelopmentMachine】(开发者机器)选项 , 这样占用系统的资源 比较少 。
2、MySQL中如何使用特殊字符?
诸如单引号(’),双引号(”),反斜线()等符号,这些符号在MySQL中不能直接输入 使用,否则会产生意料之外的结果 。在MySQL中,这些特殊字符称为转义字符,在输入时需要 以反斜线符号(”)开头,所以在使用单引号和双引号时应分别输入(’)或者(”),输入反 斜线时应该输入(),其他特殊字符还有回车符( ),换行符( ),制表符(ab),退格 符()等 。在向数据库中插入这些特殊字符时,一定要进行转义处理 。
3、MySQL如何执行区分大小写的字符串比较?
在Windows平台下,MySQL是不区分大小的,因此字符串比较函数也不区分大小写 。如果 想执行区分大小写的比较 , 可以在字符串前面添加BINARY关键字 。例如默认情况下,’a’=’A’返回结果为1,如果使用BINARY关键字,BINARY’a’=’A’结果为0,在区分大小写的情况下 , ’a’与’A’并不相同 。
4、 MySQL语句优化技巧
MySQL数据库性能的优化是MySQL数据库发展的必经之路,MySQL数据库性能的优化也是 MySQL数据库前进的见证,下面介绍下MySQL语句优化的一些小技巧:
1、应尽量避免在 where 子句中使用!=或操作符 , 否则将引擎放弃使用索引而进行全表扫描 。
2、对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引 。
3、应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描 , 如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
4、尽量避免在where子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num=10 or num=20
可以这样查询:
select id from t where num=10
union all
select id from t where num=20
5、下面的查询也将导致全表扫描:(不能前置百分号)
select id from t where name like ‘?c%’
若要提高效率 , 可以考虑全文检索 。
6、in和not in也要慎用 , 否则会导致全表扫描 , 如:
select id from t where num in(1,2,3)
对于连续的数值 , 能用between就不要用in了:
select id from t where num between 1 and 3
7、如果在where子句中使用参数,也会导致全表扫描 。因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择 。然 而 , 如果在编译时建立访问计划,变量的值还是未知的 , 因而无法作为索引选择的输入项 。如下面语句将进行全表扫描:
select id from t where num=@num
可以改为强制查询使用索引:
select id from t with(index(索引名)) where num=@num
8、应尽量避免在where子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描 。如: