How can you determine whether a bash command is internal or external?

How can you determine whether a bash command is internal or external? Which type of command (internal or external) in the bash shell results in the creation of a new process when executed?

type command-name

For example:

$  type echo
echo is a shell builtin

$ type dnf
dnf is /usr/bin/dnf

and what about the second part of the question Which type of command (internal or external) in the bash shell results in the creation of a new process when executed?

Everything that is not internal will run the program in a new process.
With the exception of when you use the exec command which runs the program in the current process. Beware that if you use exec from the bash command line you lose bash.