数据库的表名字段名大小写问题

  今天发现它真的是一个问题。

  拿我最喜欢的Oracle来说吧。一般情况下,建表不管大小写,建完表名、字段名总是大写的,这样你不得不在单词之间加下划线,从而增加了字段名长度,有时就超长了。在select的结果中显示也不美观。Oracle也支持以双引号括起来的字段名,不过,你可要注意啦,用"Ok"建的字段名用"OK"、"ok"和Ok都是查不到的,必须用"Ok"。我只想说一句,Oracle在这点上你就搞不懂用户的需求了吧。也许Oracle也很委屈:“大小写敏感和不敏感的方案我都提供了,你们还要我怎么样?”

  我认为,良好的大小写方案应该是这样的:忠实地记录建表时的大小写,显示也美观,也不必加下划线了。对select等DML语句大小写不敏感。比如用Ok建的字段,用ok、OK、Ok、oK都能查到,结果显示为Ok。这就完美了。对了,Sql Server就是这么干的。

  MySql呢,需要修改config文件的一个参数,但这个参数的值还有版本的兼容问题,有些版本需要修改值为2,有些版本不支持2,汗。

----我是分隔线----

Q:为什么要忠实记录建表时的大小写时?

A:一是因为显示的美观,不用加下划线就比加下划线美观,多个单词全大写(全小写)没有分隔就相当不美观,简直无法看。二是从数据库来生成代码的时候,代码需要大小写。

Q:为什么DML语句需要大小写不敏感?

A:人工书写DML方便。

----我是分隔线----

  以上是一家之言,也许具有深厚的Windows使用习惯,在不要人参公鸡的前提下,欢迎来表达你的观点。各种观点。

时间: 2024-10-24 10:27:29

数据库的表名字段名大小写问题的相关文章

获取sqlserver数据库中所有库、表、字段名的方法

1.获取所有数据库名: SELECT Name from Master..SysDatabases ORDER BY Name 2.获取所有表名: SELECT Name from DatabaseName..SysObjects Where XType='U' ORDER BY Name XType='U':表示所有用户表; XType='S':表示所有系统表; 3.获取所有字段名: SELECT Name from SysColumns WHERE id=Object_Id('TableNa

KO ------- 表中字段名和实体类属性名不一致

-----------------------siwuxie095 KO ------- 表中字段名和实体类属性名不一致 如果数据库表中的字段名和实体类的属性名不一致,那么在查询时, 相应字段的结果就会为空 (一)问题复现 1.先创建数据库 mybatis_db, 再创建表 t_user,并插入若干数据 注意:user_id 为主键,且为自动增长 2.创建实体类 User.java: package com.siwuxie095.entity; // 实体类 public class User

DM7表名/字段名等对象的命名长度限制

一 问题   业务升级过程中,涉及到数据库结构的更改,对于某些表的字段进行了重命名,在修改表的字段名的过程中,遇到了"标志符长度非法"的问题,如下图所示:  这里先说明一下,对于DM7数据库,表名.字段名等对象命名字节个数限制在了128个字节,是无法更改的!具体参见<DM7_SQL语言使用手册>中的3.6.1 基表定义语句中的说明,摘录如下: 表名的要求:<表名> 指明被创建的基表名,基表名最大长度 128 字节:如果是分区表,主表名和分区名遵循"主表

创建数据库一定要注意字段名不能是关键字!

创建数据库一定要注意字段名不能是关键字! 创建数据库一定要注意字段名不能是关键字!,布布扣,bubuko.com

postgress数据库 出现大写字母 字段名但是提示说不存在

select BSK001 from dbdata 报错: column "bsk001" of relation "dbdata" does not exist. 原因是数据库中字段名为BSK001,而sql语句中将大写字母自动转为小写; 也就是select BSK001 from dbdata与select bsk001 from dbdata是一样的; 难道postgress数据库遇到大写的字段名就无法操作绿吗? select "BSK001&quo

数据库,表,字段,类型等查询

--获取所有数据库名 SELECT Name FROM Master..SysDatabases ORDER BY Name --获取所有表名 XType='U':表示所有用户表; XType='S':表示所有系统表; SELECT Name FROM [GWI-Pay]..SysObjects Where XType='U' ORDER BY Name --获取表中的字段名 SELECT Name FROM SysColumns WHERE id=Object_Id('Order') --获取

将数据库所有表和字段首字母变成大写

随着数据库的规模越来越大,数据库的表也有成百上千,如果需要对数据库表名及字段名做操作,单个还好,直接一条语句搞定了,但如果要对整个库的所有表和字段名做操作,那就显得有点麻烦了.因此,我们需要利用sql语句做批量表名字段名修改操作. 首先,来了解一下数据库中读取表名字段名的函数: 1.获取所有数据库名: Select Name FROM Master..SysDatabases 2.获取所有表名: select name from sysobjects where type='U' XType='

sql server DDL语句 建立数据库 定义表 修改字段等

一.数据库:1.建立数据库 create database 数据库名;use 数据库名; create database exp1;use exp1; mysql同样 2.删除数据库 drop database 数据库名;drop database exp1; mysql同样 二.表:1.创建表 create table 表名(    列名1 类型1 [约束],    列名2 类型2 [约束],    ...); create table Student(    Sno Char(7) prim

mysql数据库、表、字段、记录:增、删、改、查

数据库.表.字段.记录:增.删.改.查.分类进行学习,重点是查询. /* 数据库.表.字段.记录:增.删.改.查 */ -- 1.数据库:增删改查 create datebase if not exists jkxy; drop database if exists jkxy; rename database jkxy to jikexueyuan; --这条语句官方说不能用了 show databases; use jikexueyuan; /* 1.CREATE DATABASE new_d

删除约束名字段名

ALTER TABLE UserInfo DROP CONSTRAINT  DF__UserInfo__YJ_Win__2AC04CAA ALTER TABLE UserInfo   DROP COLUMN YJ_WinNum GO USE [hsh_db_2013_11_18] GO DECLARE @return_value int EXEC @return_value = [dbo].[p_SelectByPage]   @SelectList = N'*',   @TableSource