1、 某社区需建立本社区常住人口健康档案管理系统,涉及两张表。
基本信息表 Resident_Health
                   Resident_Health
Res_id                编号                 NUMBER(9)
CERT_ID          身份证号码               VARCHAR2(25)
NAME                姓名                 VARCHAR2(60)
HEALTH_INFO      健康状况                VARCHAR2(1000)
FAMILY_INCOME   家庭年收入              NUMBER(9,2)
社区居民的身份证信息表CERT:
                         CERT
CERT_ID           身份证号码              VARCHAR2(25)
FAMILY_ADDR       家庭住址                VARCHAR2(1000)
1) 给出RESIDENT_ HEALTH的建表语句;
        CREATE TABLE RESIDENT_HEALTH
        (Res_id NUMBER(9),
          CERT_ID VARCHAR2(25),
          NAME VARCHAR2(60),
          HEALTH_INFO VARCHAR2(1000),
          FAMILY_INCOME NUMBER(9,2));
2)请根据RESIDENT_HEALTH表的RES_ID字段给RESIDENT_HEALTH表建立一个索引IDX_RES,根据CERT_ID字段建立一个外键FK_RES,引用到CERT表的CERT_ID字段;
3)请参照以上两张表,统计出1956年出生的居民的姓名、家庭住址、健康状况和家庭年收入。主要是第2)和第3)问,

解决方案 »

  1.   

    3)请参照以上两张表,统计出1956年出生的居民的姓名、家庭住址、健康状况和家庭年收入。 select a.NAME , b.FAMILY_ADDR , a.HEALTH_INFO , a.FAMILY_INCOME
    from Resident_Health a, CERT b
    where a.CERT_ID = b.CERT_ID and ((len(a.CERT_ID) = 18 and substring(a.CERT_ID,7,4) = '1956') or (len(a.CERT_ID) = 15 and substring(a.CERT_ID,7,2) = '56'))
      

  2.   

    2)请根据RESIDENT_HEALTH表的RES_ID字段给RESIDENT_HEALTH表建立一个索引IDX_RESCREATE INDEX IDX_RES ON Resident_Health (Res_id)
      

  3.   

    2、create index IDX_RES on RESIDENT_HEALTH(RES_ID)
     
       alter table RESIDENT_HEALTH
       add constraint FK_RES foreign key CERT_ID on CERT(CERT_ID )
      

  4.   

    根据CERT_ID字段建立一个外键FK_RES,引用到CERT表的CERT_ID字段; CREATE TABLE CERT
    (
      CERT_ID VARCHAR(25) FOREIGN KEY REFERENCES Resident_Health(CERT_ID),
      FAMILY_ADDR VARCHAR(100)
      

  5.   

    注:你的表结构是oracle的,不知道上面在sql server中的语句是否适合oracle.
      

  6.   

         
            CREATE TABLE RESIDENT_HEALTH
            (Res_id NUMBER(9) not null Primary key,
              CERT_ID VARCHAR2(25) not null foreign key references [CERT](CERT_ID),
              NAME VARCHAR2(60),
              HEALTH_INFO VARCHAR2(1000),
              FAMILY_INCOME NUMBER(9,2));
    create index IX_RESIDENT_HEALTH on RESIDENT_HEALTH(CERT_ID)select 
    *--指定顯示列
    from RESIDENT_HEALTH a
    inner join [CERT] b on a.CERT_ID=b.CERT_ID
    where substring(a.CERT_ID,7,4)=1956