Re: [SQL ] 請問幾個SQL語法問題

看板Database作者 (動靜:MSN暱稱為主)時間14年前 (2010/05/14 18:31), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《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

05/14 18:33, , 1F
2_1,應該可以用trigger的insert限制...不過我不會
05/14 18:33, 1F

05/15 11:35, , 2F
感謝回應,不過這是98年國安局考題啦!所以還是希望能有
05/15 11:35, 2F

05/15 11:40, , 3F
單純用sql語法的寫法, 再次感謝!
05/15 11:40, 3F
文章代碼(AID): #1BxIQ4Mt (Database)
文章代碼(AID): #1BxIQ4Mt (Database)