1.“会”means can, and always means to learn a skill,and then can do it.
I can not swim before, after I study with a teacher for one month, I can swim now.
I don’t know how to drive.
You know in China, citizens can only get the drive license after they are 18 years old.
- “能”means be able to.
I drink, so I can’t drive a car.
I’m sick today, so I can’t go to work.
- “可以”emphasize permission.
After knocking on the door, and then you can say
A：我可以进来吗？May I come in?
B: 可以。/不可以。Yes,you can./No, you cannot.
But this reply is not polite. Chinese always answer “不好意思，请稍等”.That means “ Sorry, wait a moment please.”
You also can check this video:How to differentiate "会", "能" and "可以"？It can answer your question.