作者tedcat (动静:MSN昵称为主)
看板Database
标题Re: [SQL ] 请问几个SQL语法问题
时间Fri May 14 18:31:30 2010
※ 引述《fjf1980 (Yes We Can!)》之铭言:
: 1.有两个关联表:
: 病人(病历号,姓名,入院日期,护士编号)
: 护士(员工编号,姓名,联络电话)
: 请问:
: on update restrict的意义?
ON UPDATE RESTRICT (为预设处理方式)
一笔记录的主键值只有没被参考时才可被修改
也就是该护士没有对应的照顾病人时可以赶快删除该护士资料,
或是更新该护士的唯一值(primary key值)
: foreign key的删除与更改的限制应该宣告为何?
照理说护士资料应该有某个栏位标注是否被删除,而不是直接删...
: [me]:我知道on delete cascade就是要删除时依照cascade删掉,那restrict呢?
: 2.有一个表格如下:
: 客户(客户编号,姓名,称谓,性别,地址,电话,手机号码)
: 其附带限制为
: (1)因为联络上的必要,电话与手机号码不容与两者同时为虚值
这边应该是由程式控制,输入的时候必须要有一个有值才可以让他写进资料库
: (2)性别要建立一个自订资料型别,限定其值域必须为{男、女}
我忘记是不是enum...{'男','女'}
不过这边照理说也是由程式控制...
一般比较少用资料库定这种男女的自订资料型别,(sql有个自订函式跟自订型别功能)
: (3)称谓的预设值为 先生/小姐
: [me]:以下这样写对吗? 好像有错
: (1)电话 char(10) not NULL
: 手机号码 char(10) not NULL 可是没表达到 或 的意思
: (2)create domain 性别 char(5) default '男'
: 可是要怎样表达预定可以男或女?
: (3)create domain 称谓 char(15) default '先生/小姐'
: 其实不太了题目是否要 或 的意思
default这边是对的
: 3.有一个表格,其中一个栏位'财产编号',里面的值分别是
: A1-01
: B2-12
: H-03
: B5-03
: A1-11
: 问:若要查询财产编号的第一码英文字母A到J(为大写字母)的任一字元;
: 第三码为『-』;第二码与第四码(含)以後则不限,而财产编号的
: 资料型别为char(6)。
: [me]:请问以下这样写对吗?
: select *
: from财产
: where 财产编号 >= 'A_-%' and 财产编号 <='J_-%'
我不太懂数字字母规格的直接表达式,
我的话会用简单的(找字母a-j之间这个的函数我忘记是不是能够><=..)
where
(left(财产编号,1)>='A' and left(财产编号,1)<='J')
and substring(财产编号,3,1)='-'
: 以上麻烦高手指导一下,感激不尽! 谢谢!
--
欢迎参观我的相簿
http://www.pixnet.net/tedcat
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.11.147.68
1F:→ tedcat:2_1,应该可以用trigger的insert限制...不过我不会 05/14 18:33
2F:推 fjf1980:感谢回应,不过这是98年国安局考题啦!所以还是希望能有 05/15 11:35
3F:推 fjf1980:单纯用sql语法的写法, 再次感谢! 05/15 11:40