婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Oracle動(dòng)態(tài)交叉表生成

Oracle動(dòng)態(tài)交叉表生成

熱門標(biāo)簽:語(yǔ)音電話機(jī)器人缺點(diǎn) 宜賓外呼系統(tǒng)廠家 地圖標(biāo)注原件 語(yǔ)音電話機(jī)器人營(yíng)銷方案 百變地圖標(biāo)注 廣州市400電話辦理 淮安自動(dòng)外呼系統(tǒng)開發(fā) 南通防封外呼系統(tǒng)運(yùn)營(yíng)商 修改高德地圖標(biāo)注
正在看的ORACLE教程是:Oracle動(dòng)態(tài)交叉表生成。Oracle是應(yīng)用最廣的大型數(shù)據(jù)庫(kù),而在范式下進(jìn)行Oracle數(shù)據(jù)庫(kù)設(shè)計(jì)則可以大大減少數(shù)據(jù)冗余,使數(shù)據(jù)庫(kù)維護(hù)更方便,可惜范式下的數(shù)據(jù)表一般不能直接輸出。今天我們就來(lái)探討一下范式下的數(shù)據(jù)表的動(dòng)態(tài)交叉表生成的方法。

  范式下的Oracle數(shù)據(jù)庫(kù)設(shè)計(jì)

  數(shù)據(jù)關(guān)系的復(fù)雜性導(dǎo)致了表中數(shù)據(jù)冗余的存在,數(shù)據(jù)冗余增加了維護(hù)數(shù)據(jù)庫(kù)的負(fù)擔(dān),也占用了大量的磁盤空間,直接造成性能下降。為了消除這些負(fù)面影響,就應(yīng)該對(duì)數(shù)據(jù)庫(kù)表格進(jìn)行規(guī)范化,使其遵守一定的規(guī)則的,尤其是數(shù)據(jù)庫(kù)設(shè)計(jì)范式。

  關(guān)系必須是規(guī)范化的,簡(jiǎn)單說(shuō)來(lái),就是在結(jié)構(gòu)表設(shè)計(jì)時(shí),消除冗余性和不協(xié)調(diào)的從屬關(guān)系。即每一個(gè)分量必須是不可分的數(shù)據(jù)項(xiàng),但是這只是最基本的規(guī)范化。規(guī)范化理論就是研究如何將一個(gè)不好的關(guān)系模式轉(zhuǎn)化為好的關(guān)系模式的理論,規(guī)范化理論是圍繞范式而建立的。規(guī)范化理論認(rèn)為,一個(gè)關(guān)系數(shù)據(jù)庫(kù)中所有的關(guān)系,都應(yīng)滿足一定的規(guī)范(約束條件)。規(guī)范化理論把關(guān)系應(yīng)滿足的規(guī)范要求分為幾級(jí),滿足最低要求的一級(jí)叫做第一范式(1NF),在第一范式的基礎(chǔ)上提出了第二范式(2NF),在第二范式的基礎(chǔ)上又提出了第三范式(3NF),以后又提出了BCNF范式,4NF,5NF,以及“域/關(guān)鍵字”范式。范式的等級(jí)越高,應(yīng)滿足的約束集條件也越嚴(yán)格。規(guī)范的每一級(jí)別都依賴于它的前一級(jí)別,例如若一個(gè)關(guān)系模式滿足2NF,則一定滿足1NF。

  在Oracle上設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)更要符合范式的要求,如果把一個(gè)不符合規(guī)范的數(shù)據(jù)庫(kù)放在Oracle中,是不會(huì)突出Oracle的性能的,甚至是非常糟糕。

  例如:學(xué)生的成績(jī)表,我們一般都要求打印一目了然。

  這也是符合1NF的,但如果是在數(shù)據(jù)庫(kù)中定義的表結(jié)構(gòu)也這樣,則是不完善的,是有潛在沖突的。如要增加考試科目,就得更改表結(jié)構(gòu),特別是大學(xué),專業(yè)多、科目多,而有些科目是選學(xué)的,這將會(huì)使表結(jié)構(gòu)變得相當(dāng)復(fù)雜,有多少科目就得有多少個(gè)科目的字段,有部分字段值必然為空;這個(gè)表是指某次測(cè)驗(yàn)的還是期中或期末考試的成績(jī)呢?分辨不出,于是每一次成績(jī)都要造一張類似的表,必然表格較多。不僅浪費(fèi)大量的磁盤空間,還會(huì)給程序的編寫帶來(lái)極大的困難。

  在數(shù)據(jù)范式理論的指導(dǎo)下,對(duì)數(shù)據(jù)庫(kù)表格進(jìn)行規(guī)范化,使其結(jié)構(gòu)更合理,消除存儲(chǔ)異常,使數(shù)據(jù)冗余盡量最小,便于插入、刪除和更新,進(jìn)一步保持了數(shù)據(jù)的完整性。經(jīng)過探索,我在成績(jī)管理系統(tǒng)的設(shè)計(jì)上采用了如下的表結(jié)構(gòu),這個(gè)表結(jié)構(gòu)能以不變應(yīng)用多變,不管是科目的增加,還是教師的變動(dòng),都能適應(yīng),符合數(shù)據(jù)的規(guī)范要求。 

    由此看出,經(jīng)數(shù)據(jù)規(guī)范化的數(shù)據(jù)雖然使數(shù)據(jù)冗余小,便于插入、刪除和更新,但如果直接輸出是不符合人們觀看習(xí)慣的,必需要把其輸出為上面表1的格式才行,這就是列向表生成橫向表的問題,即交叉表的生成。

    動(dòng)態(tài)交叉表的生成

  為了簡(jiǎn)述起見,在學(xué)生基本信息表中,只建兩個(gè)字段,學(xué)號(hào)、姓名,其他的諸如性別、科代碼等則略。其中班、教師代碼庫(kù)、考試次數(shù)標(biāo)志(即第幾次測(cè)驗(yàn),還是期中、期末考試)等也略,只保留下面數(shù)據(jù)結(jié)構(gòu)足以能說(shuō)明交叉表生成的過程。

  各表結(jié)構(gòu)簡(jiǎn)化如下:

  學(xué)生基本信息表:JBXX

  xh char(13) //學(xué)號(hào)

  xm char(8) //姓名,針對(duì)不同情況,可用變長(zhǎng)字符。

  科目代碼表:KMDM

  no  number(3) //科目代號(hào),現(xiàn)可用900多科目可用,若不夠,可定義四位。

  mc varchar(20) //科目中文名稱。

  成績(jī)表: CJ

  xh char(13) //學(xué)號(hào),關(guān)聯(lián)JBXX的XH。

  xq  number(2) //學(xué)期,指該學(xué)生所在校的學(xué)期。

  km  number(3) //科目代號(hào)。

  cj  number(3) //該科成績(jī)。

  至此,數(shù)據(jù)表結(jié)構(gòu)已全部建好,此時(shí)的任務(wù)是把下面表3的數(shù)據(jù)進(jìn)行生成交叉表,表4。
  
  交叉表的生成,在Oracle中可以用SQL語(yǔ)句實(shí)現(xiàn)。

  select jbxx.xh,jbxx.xm , (select cj.cj from cj where cj.xh=jbxx.xh and cj.xq=1 and cj.km=1) as km1 , (select cj.cj from cj where cj.xh=jbxx.xh and cj.xq=1 and cj.km=2) as km2 , (select cj.cj from cj where cj.xh=jbxx.xh and cj.xq=1 and cj.km==3) as km3 from jbxx where 班級(jí)或?qū)I(yè)條件> order by jbxx.xh

  Java語(yǔ)言有“編寫一次,隨處運(yùn)行”的跨平臺(tái)能力,具有強(qiáng)大的網(wǎng)絡(luò)能力。Oracle是一種關(guān)系型的大型數(shù)據(jù)庫(kù),可在多種硬件平臺(tái)上運(yùn)行,支持多種操作系統(tǒng),支持大數(shù)據(jù)庫(kù)、多用戶的高性能的事務(wù)處理,以其強(qiáng)大的功能和穩(wěn)定性而著稱。因此建議用Java結(jié)合Oracle編寫程序。下面給出在Java語(yǔ)言中的具體實(shí)現(xiàn)過程。

  注:為了簡(jiǎn)述方便,下面的程序已簡(jiǎn)略,在實(shí)踐應(yīng)用中,還要考慮很多問題,并且一般把它做成bean來(lái)用。

  程序如下:

  import java.sql.*;//導(dǎo)入類庫(kù)
  public class sjk{
    public static void main(String[] args)  throws Exception {
  Connection conn;
     try
   {
       Class.forName("oracle.jdbc.driver.OracleDriver");
       String sourceURL="jdbc:oracle:thin:@server:1521:orcl";
       String user="scott";
       String password="tiger";
       conn=DriverManager.getConnection(sourceURL,user,password);
       Statement stmt = conn.createStatement();
       Statement stmt1 = conn.createStatement();
       String sql_km="select no,mc from km";
      // String bb_tj="0441010101";以后實(shí)際使用要加上班或級(jí)或?qū)I(yè)條件.
       ResultSet rs_km = stmt.executeQuery(sql_km);
       String title="  學(xué)號(hào)     姓名   ";
       String sql1="( select cj.cj from cj where cj.xh=jbxx.xh and cj.xq=1 and cj.km=";
       String sql=" select jbxx.xh,jbxx.xm ,";
        while (rs_km.next())
        {
         String sql_sum=" select sum(cj) as s1 from cj where "+
            " cj.xq=1 and cj.km="; //在實(shí)際使用中要加上班級(jí)條件
        sql_sum=sql_sum+rs_km.get

[1] [2] 下一頁(yè)

正在看的ORACLE教程是:Oracle動(dòng)態(tài)交叉表生成。String(1);//統(tǒng)計(jì)該班該科目的總成線。
        ResultSet rs_sum = stmt1.executeQuery(sql_sum);
        rs_sum.next();
         //統(tǒng)計(jì)符合班級(jí)條件的成績(jī)CJ總和,如果為0則認(rèn)為該班不開設(shè)該科目,略掉。
          if (rs_sum.getInt(1)>0)
          {
                title = title + rs_km.getString(2);
       sql = sql + sql1 + rs_km.getString(1) + ") as km" + rs_km.getString(1)+" ,";
  //構(gòu)造動(dòng)態(tài)語(yǔ)句.
             }
             rs_sum.close();
           } //獲取動(dòng)態(tài)科目及名稱
       sql=sql.substring(1,sql.length()-1); //去掉最后一個(gè)逗號(hào)。
       sql=sql+"from jbxx order by jbxx.xh"; //在實(shí)際使用中要加上班級(jí)條件
       ResultSet rs=stmt.executeQuery(sql);
    ResultSetMetaData data = rs.getMetaData();
    int col=data.getColumnCount(); //獲取所有曾生成的字段,實(shí)行動(dòng)態(tài)輸出。
    System.out.println(title);
  
       while (rs.next())
       {
         for  (int i=1;i=col;i++)
         {
       if (i==col)
       System.out.println(rs.getString(i));
       else
        System.out.print(rs.getString(i)+"  ");
         }
       }
  System.out.println("數(shù)據(jù)已打印完成!");
  rs_km.close();
  rs.close();
  stmt1.close();
  stmt.close();
  conn.close();
  
   ///////////////////////////
   }
        catch (Exception  e) {
          System.err.println(e);
   }
  }
  }
  
  以上代碼已在j2sdk1.4.2,Oracle 8.1.7編譯通過,在應(yīng)用中,一般需要把其做成bean去使用,還可加入學(xué)期、班級(jí)的動(dòng)態(tài)變量,即可獲得全動(dòng)態(tài)的的數(shù)據(jù)了。

上一頁(yè)  [1] [2] 

標(biāo)簽:南平 池州 股票投資 聊城 嘉峪關(guān) 通化 南平 襄陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle動(dòng)態(tài)交叉表生成》,本文關(guān)鍵詞  Oracle,動(dòng)態(tài),交叉表,生成,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle動(dòng)態(tài)交叉表生成》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Oracle動(dòng)態(tài)交叉表生成的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色综合欧美在线| 日韩vs国产vs欧美| 岛国一区二区三区| 久久久三级国产网站| 久久99精品久久久久久动态图| 欧美日韩另类国产亚洲欧美一级| 亚洲一二三专区| 欧美亚洲国产怡红院影院| 亚洲国产综合色| 欧美系列一区二区| 无码av中文一区二区三区桃花岛| 欧美顶级少妇做爰| 美女在线视频一区| 久久久久久97三级| 91一区一区三区| 亚洲午夜久久久久久久久电影院| 欧美人妖巨大在线| 久久99精品久久只有精品| 精品国产一区二区三区久久影院| 国产一区二区美女诱惑| 国产日产精品1区| 99riav一区二区三区| 亚洲一区二区三区精品在线| 91麻豆精品国产91久久久资源速度| 蜜臀av一区二区在线观看| 国产三级三级三级精品8ⅰ区| 91污在线观看| 日韩中文欧美在线| 国产日韩欧美综合一区| 91高清在线观看| 久久精品72免费观看| 国产精品视频你懂的| 欧美日韩精品专区| 国产一区二区三区视频在线播放| 最新中文字幕一区二区三区| 精品视频一区三区九区| 国产很黄免费观看久久| 亚洲免费视频成人| 精品国产乱码久久久久久久久| gogogo免费视频观看亚洲一| 日韩国产欧美三级| 国产精品久久久久久久久果冻传媒| 欧美在线短视频| 国产在线精品一区二区三区不卡 | 午夜伦理一区二区| 2021中文字幕一区亚洲| 欧美伊人精品成人久久综合97| 麻豆精品久久精品色综合| 日韩毛片高清在线播放| 精品动漫一区二区三区在线观看| 欧美艳星brazzers| 成人午夜精品在线| 老鸭窝一区二区久久精品| 亚洲久本草在线中文字幕| 国产色一区二区| 欧美一区二区三级| 欧美最猛黑人xxxxx猛交| 国产激情91久久精品导航 | 一区二区日韩av| 久久午夜电影网| 91精品国产色综合久久久蜜香臀| 91在线小视频| 国产·精品毛片| 激情成人午夜视频| 日本女优在线视频一区二区| 亚洲国产日韩一区二区| 中文字幕日韩欧美一区二区三区| 精品国一区二区三区| 欧美一级专区免费大片| 欧美乱熟臀69xxxxxx| 欧美日韩在线播放三区| 成a人片国产精品| 国产成人精品亚洲777人妖 | 色天天综合久久久久综合片| 丰满白嫩尤物一区二区| 国产精品综合网| 国产综合久久久久影院| 国产制服丝袜一区| 韩国成人福利片在线播放| 九九在线精品视频| 久久成人18免费观看| 麻豆国产一区二区| 精品无人码麻豆乱码1区2区| 日本91福利区| 日韩福利电影在线观看| 日本欧美一区二区| 久久精工是国产品牌吗| 国产一区美女在线| 高清不卡在线观看| 91无套直看片红桃| 91搞黄在线观看| 欧美日韩免费观看一区二区三区 | 麻豆精品视频在线观看免费| 青椒成人免费视频| 看片的网站亚洲| 久久er99热精品一区二区| 国产在线一区二区| 成人动漫av在线| 91老师国产黑色丝袜在线| 色中色一区二区| 欧美日韩国产精品成人| 日韩免费高清电影| 亚洲国产精品成人综合色在线婷婷| 中文字幕视频一区| 亚洲chinese男男1069| 久久精品国产99国产| 国产成人av一区| 91在线国产福利| 欧美猛男男办公室激情| 精品剧情v国产在线观看在线| 欧美国产精品v| 一区二区三区国产| 久久精品国产秦先生| 国产suv精品一区二区883| 色94色欧美sute亚洲13| 日韩欧美国产一区在线观看| 国产欧美一区二区三区在线看蜜臀 | 亚洲人123区| 首页国产丝袜综合| 国产成人免费在线视频| 在线观看日韩精品| 欧美xfplay| 亚洲啪啪综合av一区二区三区| 日韩中文字幕1| 国产成人av自拍| 欧美日韩精品一区二区三区四区| 日韩视频免费观看高清完整版在线观看 | 91麻豆免费看片| 欧美一级日韩一级| 亚洲天堂免费看| 精品亚洲国产成人av制服丝袜| 91偷拍与自偷拍精品| 精品国产露脸精彩对白| 亚洲一区二区三区中文字幕在线| 精久久久久久久久久久| 在线看国产日韩| 国产亚洲一二三区| 日韩av电影免费观看高清完整版在线观看| 国产揄拍国内精品对白| 欧美日韩和欧美的一区二区| 中文字幕精品一区二区三区精品| 日韩成人伦理电影在线观看| 91色九色蝌蚪| 精品国产一二三区| 午夜成人免费电影| 日本高清不卡一区| ㊣最新国产の精品bt伙计久久| 国产自产v一区二区三区c| 欧美日韩一区二区三区高清| 中文字幕亚洲电影| 国产美女视频一区| 欧美一区二区视频网站| 亚洲综合成人在线| 色综合中文字幕| 欧美激情一区二区三区四区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久精品免费看| 欧美中文字幕一区| 亚洲欧洲精品一区二区精品久久久| 国内久久婷婷综合| 欧美成人一区二区| 免费观看一级欧美片| 欧美体内she精高潮| 一区二区三区不卡在线观看| a4yy欧美一区二区三区| 国产精品伦理一区二区| 国产98色在线|日韩| 国产免费成人在线视频| 懂色av一区二区三区免费观看| 久久综合狠狠综合久久激情| 精品亚洲成a人在线观看| 日韩精品一区二区三区老鸭窝| 日本色综合中文字幕| 51精品国自产在线| 美女被吸乳得到大胸91| 精品日韩一区二区| 极品瑜伽女神91| 婷婷中文字幕综合| 日本高清不卡在线观看| 亚洲成人自拍偷拍| 91精品国产综合久久久久久漫画 | 欧美mv日韩mv国产| 激情综合亚洲精品| 久久久国产午夜精品| 成人一区在线看| 日韩毛片视频在线看| 欧美少妇性性性| 日韩va亚洲va欧美va久久| 26uuu国产电影一区二区| 国产老肥熟一区二区三区| 国产精品丝袜在线| 日本丶国产丶欧美色综合| 亚洲一区二区三区在线看| 欧美系列日韩一区| 麻豆免费精品视频| 国产日产欧产精品推荐色| 91官网在线观看| 美女脱光内衣内裤视频久久影院| 久久午夜老司机| 91久久精品一区二区三|