国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server 6.5 基本圖書館應用程序示例數據

2024-08-31 00:48:33
字體:
來源:轉載
供稿:網友
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 第一節 示例數據

    本文中使用的示例數據來自 sql server 6.5 基本圖書館應用程序。該圖書館應用程序用于跟蹤它的成員,它的圖書和借出。圖書館的數據庫方案如下圖所示。

    圖書館數據庫方案:

    表結構

    圖書館應用程序的主要的表之一是 member 表,圖書館中的每一個成員具有一條記錄。一個有趣的情況是少年成員(其信息保存于 juvenile 表中)必須有成人(其信息保存于 adult 表中)擔保。對于少年和成年人,分別設計兩個單獨的表 adult 和 juvenile。這種設計方法節約了磁盤空間,因為一但你知道擔保人,所有的少年的地址信息就是多余的。另外,少年的期滿日期與成年人的相同。將來,你不必介意成年人的出生日期而只需注意少年的出生日期,因為在他們的第18個生日后他們就成為了成年人。

    以下 sql server 語句用于創建 member,adult 和 juvenile 表:

    create table member  ( member_no        member_no    not null identity(1,1),    lastname         shortstring  not null ,    firstname        shortstring  not null ,    middleinitial    letter           null ,    photograph       image            null )create table adult  ( member_no        member_no    not null ,    street           shortstring  not null ,    city             shortstring  not null ,    state            statecode    not null ,    zip              zipcode      not null ,    phone_no         phonenumber      null ,    expr_date        datetime     not null )create table juvenile  ( member_no        member_no    not null ,    adult_member_no  member_no    not null ,    birth_date       datetime     not null )

    member 表中的 member_no 字段在添加新記錄時會由 sql server 自動生成。該字段是一個 identity 列。起始值為 1 ,增量值也是 1。這樣在表中輸入的第一條記錄的 member_no 值就是 1。對于后來插入到表中的記錄 member_no 的值自動增加 1。當添加一條記錄時如果客戶沒有指定 member_no 的值。sql server 自動維護它并詢問客戶使用什么值。

    在 adult 和 juvenile 表中的 member_no 不是 identity 列。這些記錄中的值必須與 member 表中相應的 member_no 值相匹配。當新記錄添加到圖書館庫時,一個記錄首先會添加到 member 表中。sql server 的全局變量 @@identity 包含了自動生成的 member_no。然后添加到 adult 或 juvenile 表中的記錄的 member_no 值將使用 @@identity 中的值。

    申明參照完整性

    在早期版本的 sql server 參照完整性是通過使用觸發器強制執行,這與 visual foxpro 強制參照完整性相同。sql server 6.0 添加了可申明的參照完整性,這允許你定義你自己的作為數據結構一部分的參照完整性規則。第一步是在各表中創建基本關鍵字約束,如以下代碼所示:

    alter table member  add constraint member_ident primary key clustered     (member_no) alter table adult  add constraint adult_ident primary key clustered    (member_no) alter table juvenile  add constraint juvenile_ident primary key clustered       (member_no) 

    基本關鍵字約束創建一個唯一索引,用于強制 member_no 的唯一性。在示例中創建一組索引用于對數據進行物理排序。

    定義可申明的參照完整性的第二步是在相關表之間創建外部關鍵字約束,如以下代碼所示:

    alter table adult  add constraint adult_member_link foreign key (member_no)       references member (member_no)alter table juvenile  add constraint juvenile_member_link foreign key     (member_no) references member (member_no)alter table juvenile  add constraint juvenile_adult_link foreign key     (adult_member_no) references adult (member_no)

    第一個 alter table 定義了一個 member 和 adult 表之間的關系。這是一個一對一關系,雖然這里沒有代碼指明或強制是這種類型的關系。第二個 alter table 在 member 和 juvenile 表部定義了一個關系。最后一個 alter table 在 adult 和 juvenile 表之間定義一個關系。這是一個一對多關系。

    要意識到 sql server 當前不支持級聯更新或刪除。如果你想那樣做就應該用觸發器代替約束。

    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 金坛市| 郑州市| 苍山县| 安福县| 余江县| 泸水县| 长岭县| 乐业县| 刚察县| 麟游县| 大同县| 诸暨市| 南城县| 黑龙江省| 肥西县| 南陵县| 张掖市| 长宁县| 长葛市| 昆山市| 高州市| 莱西市| 眉山市| 伊通| 太仓市| 于都县| 宕昌县| 民和| 马尔康县| 宁晋县| 侯马市| 邯郸市| 东乌珠穆沁旗| 任丘市| 铁岭县| 喜德县| 陇南市| 临城县| 达孜县| 弥勒县| 偏关县|