Skynet

          ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks

          #

          引用:http://bbs.mysql.cn/thread-9135-1-2.html
          引用:21. 觸發(fā)程序

          create table a (sa int);
          create table b (sb int);
          drop trigger  a_bi ;

          delimiter 
          //
          create trigger a_bi
          before 
          insert on a
          for each row Begin
            
          insert into b values(new.sa*100);
          end;//
          delimiter ;

          insert into a values(1);

          select * from b ;> 100
          posted @ 2008-10-01 18:13 劉凱毅 閱讀(1567) | 評論 (0)編輯 收藏

          在線文檔參考

          jdbc url: 詳細(xì)屬性可參考

          Eg: jdbc:mysql://localhost:3306/test?user =root&password=&useUnicode=true&characterEncoding=utf8

          mysql URL: mysql -uroot -p --default-character-set=utf8


          協(xié)調(diào) SQL 詳細(xì):

            這就重點(diǎn)說下:SHOW

            1. 查看全部庫支持字符 如:'gb%'  -gbk,gb2312

                SHOW CHARACTER SET LIKE '%' ;

            2. 查看列

            show columns from user from mysql ;
            show columns from mysql.user ;
            desc mysql.user ;
            //簡化
            //更方便的 查看 列名 模糊查詢列名為 'Select%' (desc  information_schema.columns 還有更多驚喜)

            select column_name from information_schema.columns where column_name like 'Select%' ;

            3. 查看數(shù)據(jù)庫,表結(jié)構(gòu);當(dāng)然你們也可以仿照下此再建自己的庫,表

             show
             show create database information_schema"G
             show create table mysql.user"G

            4.權(quán)限查看

             SHOW GRANTS FOR 'root'@'localhost';

            .....(詳細(xì)參考


          SQL 詳細(xì)

          這就上寫自己一些有感覺的sql :參考

          1.只查詢重復(fù) Eg:

          create   table  c (id  int  );
          insert   into  c  values  ( 1 ),( 2 ),( 3 ),( 4 ),( 3 ),( 5 ),( 6 ),( 1 );
          結(jié)果:
              
          select  id  from  c  group   by  id  having   count (id) > 1  ;

          2.報(bào)表查詢橫向輸出 Eg:

          Create table d(id int,name varchar(50));
          insert into d values(1,'gly');
          insert into d values(2,'ptgly');
          insert into d values(3,'ybgly');
          insert into d values(4,'ptgly');
          insert into d values(5,'ybgly');
          +---+-----+------+
          |gly |ptgly|ybgly|     
          +---+-----+------+-
           |1   |2     |2      |
          +---+-----+------+

          select  
              
          sum ( case   when  name = ' gly '   then   1   else   0   end  )  as  gly  ,
              
          sum ( case   when  name = ' ptgly '   then   1   else   0   end  )  as  ptgly  ,
              
          sum ( case   when  name = ' ybgly '   then   1   else   0   end  )  as  ybgly  
          from  d ;

          3.復(fù)雜組合查詢

          create table table_a (No int, No2 int,num double,itime date);
          insert into table_a values
               (1234,567890,33.5,'2004-12-21'),
               (1234,598701,44.8,'2004-11-21'),
               (1234,598701,45.2,'2004-10-01'),
               (1234,567890,66.5,'2004-9-21'),
               (3456,789065,22.5,'2004-10-01'),
               (3456,789065,77.5,'2004-10-27'),
               (3456,678901,48.5,'2004-12-21');
          按月統(tǒng)計(jì)銷售表中貨物的銷售量數(shù)
          查詢結(jié)果如下:
            No, No2 ,   九月,  十月,十一月,十二月
          1234,567890, 66.5 ,  0 ,  0  ,  33.5
          1234,598701,  0   , 45.2, 44.8, 0
          3456,789065, 0  ,  100,  0  ,  0
          3456,678901, 0 ,    0,    0  ,  48.5
          -----------------------------------------------------------------------

          //當(dāng)然也可以 使用mysql 時(shí)間函數(shù) 在軟件編輯時(shí) 你可以輸入 String[] 并根據(jù)數(shù)據(jù)動(dòng)態(tài)拼寫 sql( case部分!! )
          //這個(gè) 例子很好 哦!報(bào)表可以一句sql 得出!

          select  NO,NO2,
              
          sum ( case    when  itime  like   ' 2004-%9% '   then  num  else   0   end as  9M,
              
          sum ( case    when  itime  like   ' 2004-10% '   then  num  else   0   end as  10M,
              
          sum ( case    when  itime  like   ' 2004-11% '   then  num  else   0   end as  11M,
              
          sum ( case    when  itime  like   ' 2004-12% '   then  num  else   0   end as  12M
          from  table_a  group   by  no,no2  order   by  no,no2 ;


          4.字符集子層關(guān)系
          1     a
          2     b
          11    c
          (代碼11表示為1的下級)
          我要通過一條句子,得出如下結(jié)果:
          Create table TabTest(t_Code varchar(10),t_Name varchar(10));
          insert into TabTest values('1','a');
          insert into TabTest values('2','b');
          insert into TabTest values('11','c');
          --------------------------------------------------------------

          select  tt1.t_Code,tt1.t_name,( 
               
          case  
                       
          when   exists  ( select   1   from  tabtest tt2 
                                                 
          where  tt2.t_code  like  CONCAT(tt1.t_code, ' % ' and  
                                                  tt2.t_code 
          <>  tt1.t_code )   then   ' you '  
                       
          else   ' wu '
                
          end  )  as  you_wu
          from  tabtest  tt1 ;
          posted @ 2008-10-01 17:22 劉凱毅 閱讀(2337) | 評論 (0)編輯 收藏

          就用數(shù)據(jù)數(shù)據(jù)庫表地址數(shù)據(jù)(中國地區(qū)) 來說吧(用Windows 請使用 gbk !!)

          可直接運(yùn)行(去除注解)

          存儲(chǔ)過程:

          DELIMITER //
          drop procedure if exists  findLChild//
          /* iid 遞歸父節(jié)點(diǎn) , layer 允許遞歸深度 */

          CREATE PROCEDURE findLChild(iid bigint(20),layer bigint(20))
           
          BEGIN
             
          /*創(chuàng)建接受查詢的臨時(shí)表 */
              
          create temporary  table if not exists tmp_table(id bigint(20),name varchar(50)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
              
          /*最高允許遞歸數(shù)*/
             
          SET @@max_sp_recursion_depth = 99 ;
              call iterative(iid,layer);
          /*核心數(shù)據(jù)收集*/
             
          select * from tmp_table ;/* 展現(xiàn) */
              
          drop temporary  table if  exists  tmp_table ;/*刪除臨時(shí)表*/
            
          END;//
          DELIMITER ;

          DELIMITER 
          //
          drop procedure if exists  iterative //
          CREATE PROCEDURE iterative(iid bigint(20),layer bigint(20))
              
          BEGIN
                   
          declare tid bigint(20default -1 ;
                   
          declare tname varchar(50character set utf8;

                   
          /* 游標(biāo)定義 */
                   
          declare cur1 CURSOR FOR select id,name from location where fid=iid ;
                   
          declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tid = null;
                
                
          /* 允許遞歸深度 */
                
          if layer>0 then
                   
          OPEN cur1 ;
                   
          FETCH cur1 INTO tid,tname ;
                     
          WHILE ( tid is not null ) 
                       DO
                        
          /* 核心數(shù)據(jù)收集 */
                     
          insert into tmp_table values(tid,tname);
                        call iterative(tid,layer
          -1);
                        
          FETCH cur1 INTO tid,tname ;
                     
          END WHILE;
                 
          end if;
              
          END;//
          DELIMITER ;

          //運(yùn)行!!

          mysql> call findLChild(1,1);
          +------+------------------+
          | id   | name             |
          +------+------------------+
          |    2 | 北京             |
          |    4 | 上海             |
          |    6 | 香港特別行政區(qū)   |
          |    8 | 澳門特別行政區(qū)   |
          |   10 | 河北             |
          |   23 | 山西             |
          |   35 | 遼寧             |
          |   50 | 吉林             |
          |   60 | 黑龍江           |
          |   74 | 江蘇             |
          |   88 | 浙江             |
          |  101 | 安徽             |
          |  119 | 福建             |
          |  129 | 江西             |
          |  142 | 山東             |
          |  160 | 河南             |
          |  179 | 湖北             |
          |  198 | 湖南             |
          |  213 | 廣東             |
          |  235 | 甘肅             |
          |  250 | 四川             |
          |  272 | 貴州             |
          |  282 | 海南             |
          |  301 | 云南             |
          |  318 | 青海             |
          |  327 | 陜西             |
          |  348 | 廣西壯族自治區(qū)   |
          |  363 | 西藏自治區(qū)       |
          |  371 | 寧夏回族自治區(qū)   |
          |  377 | 新疆維吾爾自治區(qū) |
          |  400 | 內(nèi)蒙古自治區(qū)     |
          |  413 | 臺(tái)灣省           |
          +------+------------------+
          32 rows in set (0.02 sec)




          posted @ 2008-10-01 17:19 劉凱毅 閱讀(4076) | 評論 (0)編輯 收藏

          僅列出標(biāo)題
          共12頁: First 上一頁 4 5 6 7 8 9 10 11 12 
          主站蜘蛛池模板: 崇信县| 平潭县| 高清| 西盟| 苍溪县| 舟曲县| 牟定县| 通渭县| 独山县| 枣庄市| 明水县| 饶河县| 永和县| 遵义县| 宝应县| 房产| 尼勒克县| 巴青县| 鄂尔多斯市| 苍山县| 达日县| 抚顺县| 仁化县| 麻栗坡县| 牙克石市| 郎溪县| 普定县| 潞西市| 阿拉善右旗| 万州区| 资中县| 易门县| 色达县| 平塘县| 林芝县| 安阳市| 乳山市| 衡水市| 商南县| 阳江市| 常山县|