Re: [SQL ] 請問幾個SQL語法問題
※ 引述《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
05/14 18:33, 1F
推
05/15 11:35, , 2F
05/15 11:35, 2F
推
05/15 11:40, , 3F
05/15 11:40, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):