MySQL基础:CharacterSet和Collation,netty常见面试题

本文详细介绍了MySQL的CharacterSet和Collation,包括如何查看、修改以及它们在数据库、表和列中的应用。同时,文章提到了Netty作为面试中的常见考点,强调了系统学习、源码阅读和面试刷题在技术提升中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

查看特定字符集信息(主要包含默认的Collation和MAXLEN):

show character set like ‘utf%’;; – 方法1

show charset like ‘utf%’;; – 方法2

show char set like ‘utf%’; – 方法3

select * from information_schema.character_sets

where CHARACTER_SET_NAME like ‘utf%’; – 方法 4

查看MySQL Server支持的Collation

==============================

SHOW COLLATION WHERE Charset = ‘utf8mb4’;

或者

select * from INFORMATION_SCHEMA.COLLATIONS where CHARACTER_SET_NAME=‘utf8mb4’;

查看MySQL Server当前的Charset和Collation

======================================

show variables like ‘character_set_server’;

show variables like ‘collation_server’;

或者使用语句:

select @@character_set_server, @@collation_server;

MySQL Server默认的Charset和Collation

====================================

MySQL官方文档可查看默认的Charset和Collation:

  • <=5.7 doc MySQL Server 5.7或之前版本默认的Charset和Collation是: latin1 和 latin1_swedish_ci

  • 8.x doc MySQL Server 8.x(当前版本)默认的Charset和Collation是: utf8mb4 和 utf8mb4_0900_ai_ci

修改MySQL Server默认的Charset和Collation

======================================

修改默认值,需要重新编译源码。

cmake . -DDEFAULT_CHARSET=latin1

或者

cmake . -DDEFAULT_CHARSET=latin1 \

-DDEFAULT_COLLATION=latin1_german1_ci

指定MySQL Server的Charset和Collation

====================================

可以在启动MySQL Server的时候指定Server的Charset和Collation,下面三种方法是等效的:

mysqld # 默认的charset是utf8mb4, 而且 utf8mb4 默认的collation是 utf8mb4_0900_ai_ci

mysqld --character-set-server=utf8mb4

mysqld --character-set-server=utf8mb4 \

–collation-server=utf8mb4_0900_ai_ci

数据库(Database)的Charset和Collation

===================================

创建数据库的时候,如果没有指定character set 和 collation,会自动用MySQL Server的 character set和collation。

查看数据的Character Set和Collation

================================

USE db_name;

SELECT @@character_set_database, @@collation_database;

不想改变当前数据库的话,可以使用语句:

SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME

FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ‘db_name’;

指定或修改数据库(Database)的Character Set和Collation

==============================================

创建db时指定:

CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;

修改:

ALTER DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;

表(Table)的Charset和Collation

==============================

如果创建表的时候没有指定表级别Charset和Collation,会默认使用数据库(Database)的Charset和Collation。

查看表(Table)的Charset和Collation

================================

SELECT

t.TABLE_SCHEMA,

t.table_name,

ccsa.*

FROM

information_schema.TABLES t,

information_schema.COLLATION_CHARACTER_SET_APPLICABILITY ccsa

WHERE ccsa.collation_name = t.table_collation

AND t.table_schema = “db_name”

AND t.table_name = “table_name”;

指定或修改表(Table)的Character Set和Collation

=========================================

CREATE TABLE tbl_name (column_list)

[[DEFAULT] CHARACTER SET charset_name]

[COLLATE collation_name]]

ALTER TABLE tbl_name

[[DEFAULT] CHARACTER SET charset_name]

[COLLATE collation_name]

列(Column)的Charset和Collation

===============================

如果创建表的时候没有指定列的Charset和Collation,会默认使用表(Table)的Charset和Collation。

查看列(Column)的Charset和Collation

=================================

SELECT

最后我们该如何学习?

1、看视频进行系统学习

这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

2、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

Spring源码深度解析:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Mybatis 3源码深度解析:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Redis学习笔记:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Spring Boot核心技术-笔记:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

3、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。

人生短暂,别稀里糊涂的活一辈子,不要将就。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

[外链图片转存中…(img-WqyJ6wdG-1713641293874)]

只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。

人生短暂,别稀里糊涂的活一辈子,不要将就。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-nPavnz41-1713641293875)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值