带你了解10个MySQL数据库技巧(二)

数据库 MySQL
无论是运维、开发、测试,还是架构师,数据库技术是一个必备加薪神器,那么,一直说学习数据库、学MySQL,到底是要学习它的哪些东西呢?

10个MySQL数据库技巧

 

带你了解10个MySQL数据库技巧(一)

01 MySQL中如何使用特殊字符?

诸如单引号(’),双引号("),反斜线()等符号,这些符号在MySQL中不能直接输入 使用,否则会产生意料之外的结果。在MySQL中,这些特殊字符称为转义字符,在输入时需要 以反斜线符号(’’)开头,所以在使用单引号和双引号时应分别输入(’)或者("),输入反 斜线时应该输入(),其他特殊字符还有回车符( ),换行符( ),制表符(ab),退格 符()等。在向数据库中插入这些特殊字符时,一定要进行转义处理。

02 MySQL中可以存储文件吗?

MySQL中的BLOB和TEXT字段类型可以存储数据量较大的文件,可以使用这些数据类型 存储图像、声音或者是大容量的文本内容,例如网页或者文档。虽然使用BLOB或者TEXT可 以存储大容量的数据,但是对这些字段的处理会降低数据库的性能。如果并非必要,可以选择只 储存文件的路径。

03 MySQL如何执行区分大小写的字符串比较?

在Windows平台下,MySQL是不区分大小的,因此字符串比较函数也不区分大小写。如果 想执行区分大小写的比较,可以在字符串前面添加BINARY关键字。例如默认情况下,’a’=‘A’ 返回结果为1,如果使用BINARY关键字,BINARY’a’=‘A’结果为0,在区分大小写的情况下,’a’ 与’A’并不相同。

04 如何从日期时间值中获取部分日期或时间值?

MySQL中,日期时间值以字符串形式存储在数据表中,因此可以使用字符串函数分别截取日期时间值的不同部分,例如某个名称为dt的字段有值“2010-10-01 12:00:30”,如果只需要获 得年值,可以输入LEFT(dt, 4),这样就获得了字符串左边开始长度为4的子字符串,即YEAR 部分的值;如果要获取月份值,可以输入MID(dt,6,2),字符串第6个字符开始,长度为2的子 字符串正好为dt中的月份值。同理,读者可以根据其他日期和时间的位置,计算并获取相应的值。

05 如何改变默认的字符集?

CONVERT()函数改变指定字符串的默认字符集,在开始的章节中,向读者介绍使用GUI图形化安装配置工具进行MySQL的安装和配置,其中的一个步骤是可以选择MySQL的默认字符集。但是,如果只改变字符集,没有必要把配置过程重新执行一遍,在这里,一个简单的方式是 修改配置文件。

在Windows中,MySQL配置文件名称为my.ini,该文件在MySQL的安装目录下面。修改配置文件中的default-character-set和character-set-server参数值,将其改为想要的字 符集名称,如gbk、gb2312、latinl等,修改完之后重新启动MySQL服务,即可生效。读者可以在修改字符集时使用SHOW VARIABLES LIKE ’character_set_°%’;命令查看当前字符集,以进行对比。

06 DISTINCT可以应用于所有的列吗?

查询结果中,如果需要对列进行降序排序,可以使用DESC,这个关键字只能对其前面的列 进行降序排列。例如,要对多列都进行降序排序,必须要在每一列的列名后面加DESC关键字。

而DISTINCT不同,DISTINCT不能部分使用。换句话说,DISTINCT关键字应用于所有列而不 仅是它后面的***个指定列。例如,查询3个字段s_id,f_name,f_price,如果不同记录的这3个字段的组合值都不同,则所有记录都会被查询出来。

07 ORDER BY可以和LIMIT混合使用吗?

在使用ORDER BY子句时,应保证其位于FROM子句之后,如果使用LIMIT,则必须位 于ORDER BY之后,如果子句顺序不正确,MySQL将产生错误消息。

08 什么时候使用引号?

在查询的时候,会看到在WHERE子句中使用条件,有的值加上了单引号,而有的值未加。 单引号用来限定字符串,如果将值与字符串类型列进行比较,则需要限定引号;而用来与数值进 行比较则不需要用引号。

09 在WHERE子句中必须使用圆括号吗?

任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确操作顺序。 如果条件较多,即使能确定计算次序,默认的计算次序也可能会使SQL语句不易理解,因此使 用括号明确操作符的次序,是一个好的习惯。

10 更新或者删除表必须指定WHERE子句吗?

在前面中可以看到,所有的UPDATE和DELETE语句全都在WHERE子句中指定了条 件。如果省略WHERE子句,则UPDATE或DELETE将被应用到表中所有的行。

因此,除非 确实打算更新或者删除所有记录,否则要注意使用不带WHERE子句的UPDATE或DELETE 语句。建议在对表进行更新和删除操作之前,使用SELECT语句确认需要删除的记录,以免造 成无法挽回的结果。 

责任编辑:庞桂玉 来源: 中国统计网
相关推荐

2018-10-23 10:15:03

MySQL数据库技巧

2020-08-31 10:48:11

MySQL数据库数据库技巧

2018-09-17 16:30:24

数据库MySQL小技巧

2011-04-02 09:33:08

MySQL数据库查询效率

2018-09-08 17:17:52

数据库MySQL小技巧

2023-10-09 18:13:14

MySQL数据库查询

2011-04-01 13:56:12

SQL Server数

2015-06-24 10:18:32

MySQLMySQL调优

2011-03-17 16:35:20

Oracle数据库段管理

2010-05-31 17:15:39

MySQL数据库

2023-02-28 07:34:12

数据库索引

2018-03-20 15:25:03

前端JavaScript Vue

2018-03-12 10:15:10

前端Javascript反调试

2009-12-22 17:24:22

ADO.NET数据库

2020-02-06 10:02:45

MySQL数据库全局锁

2010-04-22 16:56:46

Oracle数据库

2018-04-10 14:36:18

数据库MySQL优化技巧

2011-03-10 11:17:03

数据库设计技巧

2021-09-15 09:51:36

数据库架构技术

2011-05-18 13:20:44

数据库开发
点赞
收藏

51CTO技术栈公众号