数据库设计字段-null备注

在工作中,设计数据库难免会出现各种缺陷,例如产生null字段,这种缺陷有时候很有可能造成一些陷阱

例如:

1.在利用not in查询时无论在mssql还是mysql中都会产生数据库不准确的信息。

2.大量浪费空间字段,造成数据库的空间浪费

3.如果字符型的东西,最好设计为‘’字符串,因为在查询的时候 str=''即可,否则要写成 str='' or str is null

有顺便查询了一下其他资料:

      在数据库表设计的时候,对于这种类型的空字段要特别的留意。一方面,这个NULL字段,不是说其里面存储的是空格。若利用“’’”这个符号去查询空字段的 记录的话,往往查不到我们想要的结果。因为在数据库存储的时候,若字段为NULL,则这个值根本没有存储。另一方面,正因为上面这种特性,所以,在表设计 的时候,最好把允许NULL的字段放在表的末尾,当数据库比较大或者空字段比较多的话,则可以大大的减少数据库的存储空间。

摘自:http://hi.baidu.com/chenyuxinran/blog/item/eca8a6efa827d1e8cf1b3ec6.html

如果感兴趣的可以查看“sql 语言艺术“这本书,有些东东写的还是不错的。

在 **GBase 数据库**(如 GBase 8s/8a)中,建表时添加字段备注可以通过 **`COMMENT`** 关键字实现。以下是具体语法和示例: --- ### **1. 建表时添加字段备注** ```sql CREATE TABLE 表名 ( 字段1 数据类型 [约束] COMMENT '字段1的备注', 字段2 数据类型 [约束] COMMENT '字段2的备注', ... ); ``` #### **示例**: ```sql CREATE TABLE employee ( id INT PRIMARY KEY COMMENT '员工ID', name VARCHAR(50) NOT NULL COMMENT '员工姓名', salary DECIMAL(10,2) COMMENT '员工薪资', hire_date DATE COMMENT '入职日期' ); ``` --- ### **2. 修改表结构添加字段备注** 如果表已存在,可以通过 `ALTER TABLE` 添加或修改字段备注: ```sql ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 COMMENT '新的备注'; ``` #### **示例**: ```sql ALTER TABLE employee MODIFY COLUMN salary DECIMAL(10,2) COMMENT '月薪(税前)'; ``` --- ### **3. 查看字段备注** 通过查询系统表或使用数据库工具查看备注信息- **GBase 8s**(Informix 兼容模式): ```sql SELECT tabname, colname, coltype, colno, remark FROM systables, syscolumns WHERE systables.tabid = syscolumns.tabid AND tabname = 'employee'; ``` - **GBase 8a**(MySQL 兼容模式): ```sql SHOW FULL COLUMNS FROM employee; ``` 或查询 `information_schema`: ```sql SELECT COLUMN_NAME, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_NAME = 'employee'; ``` --- ### **4. 注意事项** 1. **语法兼容性**: - GBase 8s(基于 Informix)和 GBase 8a(基于 MySQL)的语法可能略有差异,需参考对应版本的文档。 - 在 GBase 8s 中,`COMMENT` 是可选的,而 GBase 8a 更接近 MySQL 的语法。 2. **备注长度限制**: - 通常支持最长 1024 字符的备注,但具体限制取决于数据库版本。 3. **工具支持**: - 使用 GBase 提供的客户端工具(如 GBase Manager)时,备注可能直接显示在表设计界面中。 --- ### **5. 完整示例(GBase 8a 风格)** ```sql -- 建表并添加备注 CREATE TABLE products ( product_id INT PRIMARY KEY COMMENT '商品ID', product_name VARCHAR(100) NOT NULL COMMENT '商品名称', price DECIMAL(10,2) COMMENT '商品价格(元)', stock INT DEFAULT 0 COMMENT '库存数量' ) COMMENT='商品信息表'; -- 修改字段备注 ALTER TABLE products MODIFY COLUMN price DECIMAL(10,2) COMMENT '商品单价(含税)'; -- 查看备注 SHOW FULL COLUMNS FROM products; ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值