最简单的方式就是定义为 SEX CHAR(2) 如果你用的是Oracle,那么可以配合DECODE函数,定义为 CHAR(1)或者NUMBER(1),理论上定义为CHAR(1)占用的空间最小。
公司主营业务:网站建设、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出石河子免费做网站回馈大家。
加入一个检查约束 alter table T_TEST add constraint CK_T_TEST check (c_sex ='男生'); 加入设置默认值 alter table T_TEST modify (c_sex VARCHAR2(10) default '男生');
--假设表test,字段sex是性别,cert_number是身份证号码,都是varchar2类型
--15位 最后一位奇数或偶数代表一个人的性别
update test t set t.sex = decode(mod(to_number(t.cert_number),2),0,'男','女')
where upper(t.cert_number) not like '%X' and length(t.cert_number) = 15;
--最后一位是X,且长度为15的,无法判断性别
update test t set t.sex = '最后一位是X,无法判断性别!'
where upper(t.cert_number) like '%X' and length(t.cert_number) = 15;
--18位 倒数第=位的奇数或偶数代表男性或女性
update test t set t.sex = decode(mod(to_number(substr(t.cert_number,17,1)),2),0,'男','女')
where length(t.cert_number) = 18;
举个例子吧
1、建表时建约束
create table tmp_20151106(gender char(2) constraint test_cons check(gender in ('男','女')))
2、表已建好后添加约束
alter table tmp_20151106 add constraint test_cons check(gender in ('男','女'))