In the ERC20 standard specification, there are a few functions present, but those are marked as optional functions. It is up to the developer to decide whether to implement these functions or not, as per their requirements.
The names of these functions are name, symbol, and decimals. In almost all of the ERC20 contracts, if they need these functions, they just define the public variable using these names as the state variable of the contract. This is because, as per Solidity, the getter methods are created automatically by the compiler for any public state variable. Hence, if you are creating an ERC20 token, you can simply add these state variables and assign the values according to your token metadata, as shown in the following code:
string public name = "My Test Token";...
string public symbol = "TKN";
uint8 public decimals = 18;