PIXNET Logo登入

程式開發學習之路

跳到主文

本站 程式開發教學學習交流,主要提高開發程式效率同時分享一些開發程式經驗。

深入探討開發程式體驗等技術和教學,相關技術等學習交流: 語言(Languages)及框架(Framework): Java、 JSP/Tag/JSTL/Servlet、 Grails、 jQuery、 JavaScript、 Spring、 SpringMVC、 SpringSecurity、 Hibernate、 Struts、 PHP、 C/C++、 GoogleAppEngine、 HTML5/CSS3、 Android、 Xml、 Ajax、 Json、 Ant、 UML、 ShellScripts、 AngularJS等。
工具(Software)/環境(Environment): Windows7、 Eclipse、 Linux、 Subversion、 maven、 Tomcat、 Weblogic、 Jboss、 Apache 等。
資料庫(Database): MySQL、 Oracle SQL、 PostgerSQL、 SQL Server 等。
本站內容僅供分享學習交流之用,將不對任何資源負法律責任。如有侵犯您的版權,請來信或留言給我們,我們將盡快為您處理。

部落格全站分類:職場甘苦

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 12月 28 週三 201117:58
  • [MySQL]2-15 宣告變數及其應用


MySQL的變數長相為@zzzxxxyyy,小老鼠+你想取的名稱,整串@zzzxxxyyy為一個變數。
宣告分兩種,其一外在宣告,其二內在宣告

首先介紹內在宣告,以下將舉例講解︰
先新增測試假資料
CREATE TABLE heyf_t10 (
empid INT ,
deptid INT ,
salary DECIMAL(10, 2)
);
INSERT INTO heyf_t10 VALUES
(1,10,5500.00),
(2,10,4500.00),
(3,20,1900.00),
(4,20,4800.00),
(5,40,6500.00),
(6,40,14500.00),
(7,40,44500.00),
(8,50,6500.00),
(9,50,7500.00);


接著,開始對這些假資料做操作,下方SQL中(SELECT @rownum := 0, @pdept := NULL , @rank := 0) AS a ,這裡就是做初步的變數宣告,而此變數宣告必須給初值,給值的符號為 := 中間不可空格,先宣告後就可以使用了。
SELECT
         empid,
         deptid,
         salary,
         rank
FROM
         (SELECT
                  heyf_tmp.empid,
                  heyf_tmp.deptid,
                  heyf_tmp.salary,
                  @rownum := @rownum+1 ,
                  /*上句意義是,變數@rownum每歷經一筆資料都加1*/
                  IF(@pdept = heyf_tmp.deptid, @rank := @rank+1, @rank := 1) AS rank,
                  /*上句意義是,變數@pdept 如果等於deptid值則@rank+1,否則@rank 給值 1*/
                  @pdept := heyf_tmp.deptid
                  /*上句意義,變數@pdept給值deptid*/
         FROM
                  (SELECT @rownum := 0, @pdept := NULL , @rank := 0) AS a ,
                  (SELECT
                           empid,
                           deptid,
                           salary
                  FROM
                           heyf_t10
                  ORDER BY
                           deptid ASC ,salary DESC
                  ) heyf_tmp
         ) AS result

結果︰先依照deptid分組,再依照salary來做排序的動作。
(繼續閱讀...)
文章標籤

PG Levin Li 發表在 痞客邦 留言(0) 人氣(6,194)

  • 個人分類:MySQL-進階系列教學
▲top
  • 12月 27 週二 201115:18
  • [MySQL]2-14 UNION ALL 及 UNION 使用比較(附加FULL JOIN)


UNION ALL 與UNION 是MySQL能使用的聯集查詢,兩種語法相同但是效果不同,以下將會舉例介紹。

語法︰
<SELECT查詢一>
UNION [ALL]
<SELECT查詢二>
(繼續閱讀...)
文章標籤

PG Levin Li 發表在 痞客邦 留言(0) 人氣(1,828)

  • 個人分類:MySQL-進階系列教學
▲top
  • 12月 27 週二 201110:24
  • [MySQL]2-13 DISTINCT vs GROUP BY 的差異比較


DISTINCT 及GROUP BY 都是用來做去除重複資料的關鍵字,但用法不同,以下將針對這兩種做比較介紹


使用DISTINCT,必須放在SELECT區塊內第一個欄位的前方,如下列語句所示位置,其代表的意義是後面所跟的所有欄位都必須相同才能算重複的資料,換言之如果確認欲查出的欄位必須同時去除重複資料才能使用這個。
SELECT      DISTINCT id, user_id, order_date, order_status
FROM         user_order
ORDER BY id

結果︰
(繼續閱讀...)
文章標籤

PG Levin Li 發表在 痞客邦 留言(0) 人氣(9,862)

  • 個人分類:MySQL-進階系列教學
▲top
  • 12月 26 週一 201118:33
  • [MySQL]2-12使用COUNT及GROUP BY




計算出每筆訂單有幾筆商品

SELECT 
      user_order_A.id,
      user_order_A.name,
      COUNT(user_order_A.id)
FROM  user_order_A
      JOIN products_table
        ON(user_order_A.id= products_table.order_id)
GROUP BY user_order_A.id;

結果:

(繼續閱讀...)
文章標籤

PG Levin Li 發表在 痞客邦 留言(0) 人氣(10,947)

  • 個人分類:MySQL-進階系列教學
▲top
  • 12月 26 週一 201118:27
  • [MySQL]2-11使用SUM及GROUP BY



使用SUM及GROUP BY

SUM是總合,將此欄位加總
GROUP BY 是群組,也可以說是分組。
GROUP BY 可以配合SUM ,COUNT。

此查詢將同一訂單編號,的金額加總。

SELECT 
              user_order_A.id,
              user_order_A.name,
              SUM(products_table.price)AS price
FROM user_order_A
            JOIN products_table
            ON(user_order_A.id= products_table.order_id)
GROUP BY user_order_A.id;

(繼續閱讀...)
文章標籤

PG Levin Li 發表在 痞客邦 留言(0) 人氣(11,391)

  • 個人分類:MySQL-進階系列教學
▲top
  • 12月 26 週一 201117:22
  • [MySQL]2-10使用MAX及MIN及GROUP BY



使用MAX
找出每個訂單裡的最貴的商品價格
SELECT MAX(p.price),p.order_id,p.product_name
FROM products_table ASp
GROUP BY p.order_id;

(繼續閱讀...)
文章標籤

PG Levin Li 發表在 痞客邦 留言(0) 人氣(5,991)

  • 個人分類:MySQL-進階系列教學
▲top
  • 12月 26 週一 201116:48
  • [MySQL]2-9使用子查詢


子查詢,意即查詢中還有另一個查詢,子查詢放置的位置可以在select、from、where中,有其個別用法及意義。


        位置
Select區間
From區間
Where區間
意義
一個子查詢回傳資料給母查詢當作一個欄位使用,只能回傳一筆單欄資料,此時的where條件能與母查詢的from區塊比對。
當作一個templatetable,可以給select、where直接使用,也可以與join系列聯合使用。
當作一種條件比對資料,透過in、exist、=等運算子來做條件限制
個別用法將在底下一一介紹

#假如這是記錄使用者的訂單
drop table user_order_A;
CREATE TABLE user_order_A (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '訂單ID',
name varchar(20) NOT NULL COMMENT '誰的訂單',
PRIMARY KEY(id)
)AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
#假如有A、B、C三位使用者下單
insert into user_order_A(id,name) values (1, 'A');
insert into user_order_A(id,name) values (2, 'B');
insert into user_order_A(id,name) values (3, 'C');
insert into user_order_A(id,name) values (4, 'A');
insert into user_order_A(id,name) values (5, 'B');
insert into user_order_A(id,name) values (6, 'C');

#假如這是記錄每訂單的項目價錢
drop table products_table;
CREATE TABLE products_table (
  order_id bigint(20) NOT NULL COMMENT '關連訂單id',
  product_name varchar(255) NOT NULL,
  price bigint(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into products_table(order_id,product_name,price) values (1, "商品1", 20);
insert into products_table(order_id,product_name,price) values (3, "商品2", 10);
insert into products_table(order_id,product_name,price) values (2, "商品3", 50);
insert into products_table(order_id,product_name,price) values (5, "商品4", 10);
insert into products_table(order_id,product_name,price) values (5, "商品5", 10);
insert into products_table(order_id,product_name,price) values (6, "商品6", 80);
insert into products_table(order_id,product_name,price) values (1, "商品7", 10);
insert into products_table(order_id,product_name,price) values (2, "商品8", 10);
insert into products_table(order_id,product_name,price) values (3, "商品9", 40);
insert into products_table(order_id,product_name,price) values (2, "商品2", 10);
insert into products_table(order_id,product_name,price) values (4, "商品1", 20);

#使用子查詢select底下
SELECT user_order_A.id,
               user_order_A.name,
               (SELECT 
                              SUM(products_table.price)
               FROM
                              products_table
               WHERE user_order_A.id = products_table.order_id
               ) AS price
FROM
               user_order_A ;
結果:
(繼續閱讀...)
文章標籤

PG Levin Li 發表在 痞客邦 留言(0) 人氣(2,973)

  • 個人分類:MySQL-進階系列教學
▲top
  • 12月 26 週一 201114:34
  • [MySQL]2-8表格連接用法(NATURAL JOIN)


NATURAL JOIN 自動依據相同名稱的欄位來做聯集,方式與INNER JOIN相同,結果略為不同

使用一般JOIN
語句︰
SELECT *
FROM occupation AS occ
            JOIN
                    user_order AS uo
            ON
                    occ.user_id = uo.user_id

結果︰所有有對應上的欄位都會出現
(繼續閱讀...)
文章標籤

PG Levin Li 發表在 痞客邦 留言(0) 人氣(2,352)

  • 個人分類:MySQL-進階系列教學
▲top
  • 12月 26 週一 201112:08
  • [MySQL]2-7表格連接用法(STRAIGHT_JOIN)


 STRAIGHT_JOIN 強迫MySQL使用我們的順序去做JOIN,其JOIN結果跟INNER JOIN相同

首先先CREATE新關聯TABLE以及INSERT資料

CREATE TABLE user_order (
id bigint(20) NOT NULL AUTO_INCREMENT ,
user_id varchar(20) NOT NULL ,
order_date datetime NOT NULL,
order_status int(20) NOT NULL DEFAULT 0 COMMENT '0未確認訂單,1待付款,2已結案',
PRIMARY KEY(id),
FOREIGN KEY fk_user_order(user_id) REFERENCES user(id)
)AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

INSERT INTO user_order (user_id, order_date, order_status )
         VALUES (1, '2011-05-21', 2),
                           (2, '2011-06-25', 2),
                           (3, '2011-09-13', 1),
                           (4, '2011-12-25', 0);

一般JOIN情況如下
SELECT *
FROM occupation
         JOIN user ON occupation.user_id = user.id
         JOIN user_order ON user_order.user_id = user.id

結果


使用EXPLAIN 來看執行順序
EXPLAIN SELECT *
FROM occupation
         JOIN user ON occupation.user_id = user.id
         JOIN user_order ON user_order.user_id = user.id
執行順序 user_order → occupation→ user
(繼續閱讀...)
文章標籤

PG Levin Li 發表在 痞客邦 留言(0) 人氣(464)

  • 個人分類:MySQL-進階系列教學
▲top
  • 12月 24 週六 201117:19
  • [MySQL]2-6 表格連接用法(RIGHT JOIN)



RIGHT JOIN是將右邊表格全顯示,意即以右邊表格的資料為主關聯左邊表格,若左邊表格有右邊表格的對應則顯示對應資料,若左邊沒右邊的資料則顯示null。

我們將occupation table insert 一筆資料,是沒有與user關連。
INSERT INTO occupation (occupation,salary,user_id)
VALUES ('程式設計師',40000,7);


SELECT *
FROM user AS u
     LEFT JOIN occupation AS o
     ON(u.id = o.user_id);

如果使用INNER JOIN 及 LEFT JOIN,因新資料尚未有關連所以不會出顯剛新增的資料。

必須使用RIGHT JOIN
SELECT *
FROM user AS u
     RIGHT JOIN occupation AS o
     ON(u.id = o.user_id);
結果:
(繼續閱讀...)
文章標籤

PG Levin Li 發表在 痞客邦 留言(0) 人氣(18)

  • 個人分類:MySQL-進階系列教學
▲top
12»

廣告

B 組廣告版面

個人資訊

PG Levin Li
暱稱:
PG Levin Li
分類:
職場甘苦
好友:
累積中
地區:

熱門文章

  • (37,225)Oracle SQL DECODE用法教學
  • (14,872)Oracle SQL INSERT INTO TABLE 基本用法
  • (10,464)Oracle SQL MOD 取餘數
  • (8,966)Oracle SQL to_date的用法
  • (6,026)Oracle SQL full outer join 用法教學
  • (5,110)Oracle SQL AVG GROUP BY 用法教學
  • (4,502)Oracle SQL TRUNC無條件捨去
  • (4,002)Oracle SQL minus 用法教學
  • (677)Oracle SQL next_day用法教學
  • (255)Oracle SQL nonequal join 不對等join

文章分類

toggle ZK (1)
  • ZK (2)
toggle SQLite (2)
  • SQLite for Java (11)
  • SQLite (2)
toggle Java (19)
  • Servlet (4)
  • JAVA-綀習分享 (3)
  • JAVA 7 (1)
  • JAVA-流程控制類 (10)
  • JAVA_IDE (2)
  • JAVA_其它_itext套件 (1)
  • JAVA-WEB (1)
  • JAVA-lang套件 (16)
  • java mail (1)
  • JAVA-OCJP (1)
  • JAVA-問題 (2)
  • JAVA_IO (1)
  • JAVA-OCWCD (7)
  • Joda Time (1)
  • JAVA-程式分享 (4)
  • JAVA.util套件 (6)
  • JAVA-基本類 (19)
  • JAVA (4)
  • JAVA其它 (1)
toggle Android (4)
  • Android NDK (3)
  • Android Studio (7)
  • Android基本類 (2)
  • Android (7)
toggle SSH (12)
  • Struts 2 (1)
  • Spring Mobile (3)
  • Hibernate-基本類 (3)
  • Spring MVC (3)
  • grails-其它類 (1)
  • Spring i18n (2)
  • grails-基本類 (13)
  • Spring Batch (2)
  • SpringHibernate (5)
  • Spring-基本類 (4)
  • Spring (3)
  • Spring AOP (2)
toggle Oracle (10)
  • Oracle join (14)
  • sqldeveloper (9)
  • Oracle_VirtualBox (1)
  • Oracle DDL (4)
  • Oracle Date (17)
  • Oracle (5)
  • Oracle Sub Query (17)
  • Oracle GROUP BY (20)
  • Oracle SQL (49)
  • Oracle DB (16)
toggle SQL Server/MSSQL (1)
  • SQL Server (1)
toggle MySQL (8)
  • MySQL (7)
  • MySQL-語法快速查詢 (2)
  • MySQL-基本系列教學 (10)
  • MySQL-其它類 (1)
  • MySQL-進階系列教學 (15)
  • MySQL-DATE相關 (8)
  • MySQL-函式相關 (11)
  • MySQL DB Toad (9)
toggle PostgreSQL (1)
  • PostgreSQL (5)
toggle Tool (11)
  • TortoiseSVN (1)
  • Subversive (1)
  • Dev-C++ (4)
  • Squid (3)
  • UML (1)
  • Eclipse IDE for C/C++ (3)
  • Tool (1)
  • eclipse (13)
  • Jboss (1)
  • JBoss-問題 (2)
  • SWT (1)
toggle C/C++ (5)
  • c語言綀習題 (2)
  • c/c++ (2)
  • c (4)
  • c++ (2)
  • MinGw (6)
toggle Apache (9)
  • Apache_Tomcat (3)
  • Apache_JMeter (1)
  • Apache套件_BeanUtils (1)
  • Apache套件_StringUtils (1)
  • Apache套件_POI (5)
  • maven (3)
  • Apache (2)
  • apache_Maven (2)
  • Tomcat 8 (2)
toggle jQuery (8)
  • jQuery UI (1)
  • jQuery Datepicker (26)
  • jQuery-事件處理 (2)
  • jQuery-套件類 (3)
  • jQuery-基本類 (3)
  • jQuery-進階 (1)
  • jQuery Mobile (2)
  • jQuery-Selector (11)
toggle JavaScript (8)
  • JavaScript-基本類 (20)
  • JavaScript (14)
  • JavaScript-Date物件 (5)
  • JavaScript-其它類 (3)
  • JavaScript-陣列類 (7)
  • JavaScript HTML DOM (37)
  • JavaScript-String類 (8)
  • JavaScript-數學類 (6)
toggle Web/HTML/CSS/JS/JQ (6)
  • css-基本類 (18)
  • CSS (4)
  • CSS2 (2)
  • CSS3 (1)
  • CSS Selector (42)
  • HTML5 (3)
toggle 其它 (6)
  • 生活其它 (3)
  • PHP (11)
  • 其它類 (3)
  • 基本資訊 (3)
  • 開發資訊 (1)
  • 圖片工具 (1)
toggle Win/OS/linux (4)
  • Linux_其它 (1)
  • Linux (14)
  • Windows (3)
  • WIN7-基本類 (14)
toggle 生活點點 (1)
  • 生活新聞 (29)
  • 未分類文章 (1)

最新文章

  • 生機生技引進營養製劑 產品廣獲好評
  • 【芋頭鮮奶盲測】超狂給料像拌水泥 強者迷客夏輸了
  • 口碑行銷、網紅行銷當道 品牌企業合作首選 達摩媒體BloggerAds
  • 想知道最夯時事分析?邀請你加入BloggerAds市場調查!
  • 日本FSK隔熱紙-居家隔熱、防曬、節能好幫手
  • AROFLY開箱實測、從退貨評價到獲取消費者認同!
  • 五個健康理由讓您考慮吃「有機食品」
  • 美食推薦 新北泰山 霸王櫻桃鴨 聚餐聊天好去處
  • 一心好文,農藥最後會流到這裡
  • 360°康健指數打破生活迷思,掌握美好生活的妙招

最新留言

  • [14/04/11] 匿名 於文章「[Android]Android系統調用...」留言:
    多謝分享,對我有幫助。...
  • [14/02/24] Levin Li 於文章「[JAVA]String-取出字串某個位...」留言:
    使用 subSequence(起始位置,結束位置); Str...
  • [14/02/22] JHANG allen 於文章「[JAVA]String-取出字串某個位...」留言:
    如果我有一串數字1234567890abcdefghihk ...
  • [13/08/19] 洪甫 於文章「[JAVA]OCJP(SCJP)免費的考...」留言:
    太感謝了 我終於看到中文版了!!...
  • [13/06/23] Levin Li 於文章「[Apache_Tomcat] Tomc...」留言:
    (^^) 我不懂你說的「不會過」,是何事 不會過????...
  • [13/06/22] 丁丁 於文章「[Apache_Tomcat] Tomc...」留言:
    第6點有問題,在我的電腦上, rolename和roles填...
  • [13/05/17] 歐兆傑 於文章「強大的JQuery圖表套件...」留言:
    當時我所用的是IE9,是可呈現的,請問你版本是?...
  • [13/05/16] 王暉鈞 於文章「強大的JQuery圖表套件...」留言:
    請問大大,如何能讓此在IE上呈現?...

動態訂閱

文章精選

文章搜尋

參觀人氣

  • 本日人氣:
  • 累積人氣:

C 組廣告版面

留言板