Is there a reason why Oracle is case sensitive and others like SQL Server, and MySQL are not by default?
I know that there are ways to enable/disable case sensitivity, but it just seems weird that oracle differs from other databases.
I’m also trying to understand reasons for case sensitivity. I can see where “Table” and “TaBlE” can be considered equivalent and not equivalent, but is there an example where case sensitivity would actually make a difference?
I’m somewhat new to databases and am currently taking a class.
By default, Oracle identifiers (table names, column names, etc.) are case-insensitive. You can make them case-sensitive by using quotes around them (eg:
SELECT * FROM "My_Table" WHERE "my_field" = 1). SQL keywords (SELECT,WHERE,JOIN, etc.) are always case-insensitive.On the other hand, string comparisons are case-sensitive (eg:
WHERE field='STRING'will only match columns where it’s'STRING') by default. You can make them case-insensitive by settingNLS_COMPandNLS_SORTto the appropriate values (eg:LINGUISTICandBINARY_CI, respectively).Some databases (Oracle, IBM DB2, PostgreSQL, etc.) will perform case-sensitive string comparisons by default, others case-insensitive (SQL Server, MySQL, SQLite). This isn’t standard by any means, so just be aware of what your db settings are.