Snake case
Snake case (stylized as snake_case) is the naming convention in which each space is replaced with  an underscore (_) character, and the first letter of each word is written in lowercase. It is a commonly used naming convention in computing, for example for variable and subroutine names, and for filenames. One study has found that readers can recognize snake case values more quickly than camel case. However, "subjects were trained mainly in the underscore style", so the possibility of bias cannot be eliminated. History 
The use of underscores as word separators dates back to the late 1960s. It is particularly associated with C, is found in The C Programming Language (1978), and contrasted with pascal case (a type of camel case). However, the convention traditionally had no specific name: the Python programming language style guide refers to it simply as "lower_case_with_underscores". Within Usenet the term snake_case was first seen in the Ruby community in 2004, used by Gavin Kistner, writing:

However, former Intel engineer Jack Dahlgren has stated that he was using the term internally at Intel (and perhaps in dialogue with Microsoft engineers) in 2002. It is possible that the term developed independently in more than one community. , names for other delimiter-separated naming conventions for multiple-word identifiers have not been standardized, although some terms have increasing levels of usage, such as lisp-case, kebab-case, SCREAMING_SNAKE_CASE, and more. Examples 
A list of programming languages that conventionally use snake case
 ABAP
Ada, with initial letters also capitalized
C++, Boost
C, for some type names in the standard library, but not for function names. Eiffel, for class and feature names
Elixir, for atom, variable, and function names
Erlang, for function names
GDScript, for variable and function names
Java uses SCREAMING_SNAKE_CASE for static final constants and enum values. Kotlin uses SCREAMING_SNAKE_CASE for constants and enum values
Magik
OCaml, for value, type, and module names
Perl, for lexical variables and subroutines
Oracle SQL and PL/SQL, for all unquoted identifiers (tables, columns, indexes, constraints, PL/SQL variables, constants, procedures/functions, triggers,...), although not official by Oracle itself, still recommended by the majority of known "influencers" and used throughout the official Oracle documentation
All unquoted snake_case identifiers are actually internally represented as SCREAMING_SNAKE_CASE identifiers. Prolog, for both atoms (predicate names, function names, and constants) and variables
Python, for variable names, function names, method names, and module or package (i.e. file) names
PHP uses SCREAMING_SNAKE_CASE for class constants
R, for variable names, function names, and argument names, especially in the tidyverse style
Ruby, for variable and method names
Rust, for variable names, function names, method names, module names, and macros
Tcl
Terraform (software), for resources and variables

See also
 Camel case, more common in Java and C#
 Kebab case, more common in LISP
 Naming convention (programming)

References

External links
 Snake case converter

Capitalization
Naming conventions
Typography
Source code