Rock Types
Rock type Pokemon tend to have a high defense stat and are resilient on the physical side. They tend to have above average to high attack and are usually very slow. The downside to Rock types is they usually have a low special defense. Although they tend to be slow, Rock types are a solid addition to a team.
Strong Against: Flying, Bug, Fire, Ice
Bad Against: Fighting, Ground, Steel
Weak Against: Water, Grass, Fighting, Steel, Ground
Resistant To: Fire, Normal, Poison, Flying
Although they have many weaknesses, Rock types' high defense helps Fighting, Ground and Steel moves do less damage even though they are Super Effective. Just remember to watch out for those special attacks from Water and Grass types!
Ground Types
Ground types are a lot like Rock types in that most of them have higher defense and attack stats. Every Ground type seems to be a little different, but they seem to focus on physical attacks and have a higher than average defense. The great thing about Ground types is that they are not affected by Electric moves at all and are the only type good against Electric types. The downside to Ground types is that they cannot hit Flying type Pokemon.
Strong Against: Fire, Electric, Rock, Steel, Poison
Bad Against: Grass, Bug, Flying (no effect)
Weak Against: Water, Grass, Ice
Resistant To: Poison, Rock, Electric (no effect)
Having a Ground type in your team can be a tactical advantage if you have a Pokemon in your team weak against Electric types. If you think your opponent will use an Electric attack on your Pokemon weak against Electric types, switch it out for a Ground type that is in your team so that none of your Pokemon will be hurt and your opponent wasted a move.
Fighting Types
Fighting types tend to be very powerful physical combatants, having a high attack stat. Fighting types are the only types good against Normal type Pokemon, so having a Fighting type Pokemon or a Pokemon that knows Fighting type moves can come in handy in any battle that you don't know what your opponent's Pokemon are. However, like Normal types, Fighting types cannot hit Ghost type Pokemon, so be wary that your Fighting type Pokemon does not only know Fighting type moves.
Strong Against: Normal, Rock, Steel, Ice, Dark
Bad Against: Flying, Poison, Psychic, Bug, Ghost (no effect)
Weak Against: Flying, Psychic
Resistant To: Rock, Dark, Bug
Although Fighting types cannot hit Ghost types, there is a move called "Foresight" that allows Fighting type moves to hit Ghost types.
Steel Types
Steel types are masters of defense, who tend to have the highest defense ratings out of any other Pokemon (with the exception of Shuckle). Steel types have the most resistances out of any other type, being resistant to 11 different types, and not being affected by 1. Steel types are a lot like Rock types, having high defense, and above average attack. The difference is, Steel types tend to have more defense whereas Rock types tend to have more attack (this is just a generalization because some Steel types are just better than other Rock types statistically, and vice versa).
Strong Against: Rock, Ice
Bad Against: Fire, Water, Electric, Steel
Weak Against: Fire, Ground, Fighting
Resistant To: Normal, Grass, Ice, Rock, Flying, Psychic, Bug, Ghost, Dark, Dragon, Steel, Poison (no effect)
Although Steel types have many resistances, they tend to have a low special defense, so watch out for those Fire types especially!