各类数据库的数据存储⼤⼩写问题
标准形式:
Oracle:Oracle 是⼤⼩写敏感的,我们创⾃⼰写Sql脚本创建表的时候Oracle会⾃动将我们的表名,字段名转成⼤写,但是 Oracle 同样⽀持""语法,将表名或字段名加上""后,Oracle不会将其转换成⼤写
db2:在 DB2 UDB 中除⾮另外指定,否则,所有名称都可包括下列字符:(于Oracle相同)
·A 到 Z。当在⼤多数名称中使⽤时,字符 A 到 Z 将从⼩写形式转换为⼤写形式。
·0 到 9
·@、#、$ 和 _(下划线)
·名称不能以数字或下划线字符开始。
因此即使⽤户创建表时使⽤的名称是⼩写的,DB2 仍会⾃动将其转化为⼤写的形式,
mysql:mysql数据库⼀般表名都是不区分⼤写⼩的,但这个不区分⼤⼩写只在windows系统中有效,在linux系统中是区分⼤⼩写的,所以需要修改mysql的配置⽂件myf,在[mysqld]加⼊⼀⾏: lower_case
_table_names=1
Sybase ASE:默认就是区分⼤⼩写。所以user.lei 和user.LEI 是同⼀个user下的两个不同的表。
MSSQLserver:在安装SQLServer时,可以选择排序规则,排序规则决定Table是否区分⼤⼩写。
PostgreSQL:除⾮特别声明,PostgreSQL 数据字典中存放的是转为⼩写后的表名。greenplum数据库
hive:hive SQL 创建数据库,创建hive表、查询时,其表名,字段,统统不区分⼤写(在底层⼀律转换为⼩写)
impala:
转载于:
PostgreSQL:1,PostgreSQL对表名、字段名都是区分⼤⼩写的。但是,PostgreSQL在SQL语句中对⼤⼩写是不敏感的,在不加双引号的情况下,创建时⽆论使⽤⼤写还是⼩写,表中都会统⼀转为⼩写显⽰的,因此查询时也会将语句中的字段名统⼀改成⼩写,因此,此时使⽤⼤⼩写查询均可。
2,⽤SQL语句的时候需要加双引号,或者转义符号。如果要创建名称为⼤写字母的字段名,需加双引
号,此时表中的字段名不含双引号,但是查询时需加上双引号,执⾏时语句中的双引号将被抹去,因此能查出对应字段。
3,查询执⾏时,只会发⽣字段"双引号被抹去"和“⼤写转⼩写”中其中⼀个,优先发⽣"双引号被抹去"。
sqlserver:默认不区分表名、字段名和值的⼤⼩写的
转载于:
teradata:12、⼤⼩写规范:
  1)所有的SQL语句中的保留字均采⽤全部⼤写,表别名也要⼤写。例如:ALL  AS  CASE  CREATE  OUT  DATABASE  DELETE FROM  IN  INSERT  JOIN  LEFT  NO  NOT  NULL    SELECT  TABLE  TITLE  UPDATE  VIEW  WHERE等。
  2)表名、视图名、宏和存储过程名:全部⼩写。
  3)字段名:每个单词的⾸字母⼤写,其余部分⼩写,如:Acct_Id,Type_Id等。
mongodb:mongodb⼤⼩写敏感,开启mongdb服务后,在数据库test2⾥创建三个collection,虽然名⼦“⼀样”,但由于⼤⼩写不⼀样,所以是不同的集合
greenplum:gp系统表保存的表名称都是以⼩写保存。通常sql语句中表名对⼤⼩写不敏感,但不允许在建表语句中使⽤双引号(“”)包括表名,这样会影响系统表中存储的名称,使得表名存在⼤⼩写或特殊字符。表命名也不允许出现中⽂名。
inceptor:
vertica:默认数据⼤⼩写敏感,数据库对象名称不区分⼤⼩写mongodb:对⼤⼩写敏感,
postgresql :对⼤⼩写敏感

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。