2009-04-17
Database vol.2
列に別名を付ける
AS句を使って別名を設定する。
SELECT ProductName AS "商品名" , Price AS "単価" FROM Products ;
別名が日本語だった時、"で囲まないとなぜか文字化けを起こしました。
理由はわからないが、つけておいた方が無難。
実行結果
$ mysql5 -uroot sql_drill < 041701.sql 商品名 単価 まぐろ 500 金魚 35 ぶり 350 あじ 200 あなご 150 ねずみ肉 120 (以下略)
問題3-2
テーブルCustomersのCustomerCodeを顧客コード、
CustomerNameを顧客名という別名で取り出しなさい。
SELECT CustomerCode AS "顧客コード" ,CustomerName AS "顧客名" FROM Customers ;
実行結果
$ mysql5 -uroot sql_drill < 041702.sql 顧客コード 顧客名 2001 タマ 2002 ハナ 2003 ミケ 2004 キク 1005 ウメ 1006 トラネコ商会 (以下略、これからは以下略も省略します。)
問題3-4
テーブルCustomersのCustomerNameを顧客名、得意先名という別名で取り出しなさい。
SELECT CustomerName AS "顧客名" ,CustomerName AS "得意先名" FROM Customers ;
問題3-5
テーブルEmployeesのEmployeeNameを社員名、Emailをメールアドレス、連絡先という別名で取り出しなさい。
SELECT EmployeeName AS "社員名" ,Email AS "メールアドレス" ,Email AS "連絡先" FROM Employees ;
実行結果
$ mysql5 -uroot sql_drill < 041713.sql 社員名 メールアドレス 連絡先 シマゴロー simagoro@nekoyasudo simagoro@nekoyasudo ゴッチン gochin@nekoyasudo gochin@nekoyasudo マキ子 maki@nekoyasudo maki@nekoyasudo マル maru@nekoyasudo maru@nekoyasudo ミチロー michiro@nekoyasudo michiro@nekoyasudo チー coo@nekoyasudo coo@nekoyasudo サラ sara@nekoyasudo sara@nekoyasudo みなみ minami@nekoyasudo minami@nekoyasudo プリン prin@nekoyasudo prin@nekoyasudo ぴー子 pko@nekoyasudo pko@nekoyasudo
実行結果
$ mysql5 -uroot sql_drill < 041703.sql 顧客名 得意先名 タマ タマ ハナ ハナ ミケ ミケ キク キク ウメ ウメ
- AS句が使えず、空白を使う物もある。
列の値に対して演算を行う
テーブルから取り出した値を加工して出力する。
SELECT 列名 演算子 値 FROM テーブル名 ;
実際に行ってみた。
SELECT ProductName AS "商品名" ,Price * 1.05 AS "税込価格" FROM Products ;
実行結果
$ mysql5 -uroot sql_drill < 041704.sql 商品名 税込価格 まぐろ 525.00 金魚 36.75 ぶり 367.50 あじ 210.00 あなご 157.50 ねずみ肉 126.00
問題4-2
テーブルEmployeesで、Heightの半分を求めなさい。
SELECT Height / 2 AS "Heightの半分" FROM Employees ;
実行結果
$ mysql5 -uroot sql_drill < 041705.sql Heightの半分 84.0000 80.5000 77.5000 79.0000 85.0000
問題4-3
テーブルEmployeesで、Weightの3倍から50を引いた物を求めなさい。
SELECT (Weight * 3) - 50 AS "Weightの3倍から50を引いた物を求めなさい。" FROM Employees ;
実行結果
$ mysql5 -uroot sql_drill < 041706.sql Weightの3倍から50を引いた物を求めなさい。 166 130 106 85 160 178 100
問題4-5
テーブルSalesで、Quantityに200を加え、3で割ったものを求めなさい。
SELECT Quantity ,(Quantity + 200) / 3 AS "Quantityに200を加え、3で割ったものを求めなさい。" FROM Sales ;
実行結果
$ mysql5 -uroot sql_drill < 041707.sql Quantity Quantityに200を加え、3で割ったものを求めなさい。 5 68.3333 1 67.0000 1 67.0000 6 68.6667 2 67.3333 3 67.6667 24 74.6667 12 70.6667 10 70.0000 1 67.0000
- ()で括ってもよい。
列同士で演算を行う
SELECT 列名 演算子 列名 FROM テーブル名 ;
BMIで計算して表示する。
SELECT Weight ,Height ,Weight / (Height/100) / (Height/100) AS BMI FROM Employees ;
実行結果
$ mysql5 -uroot sql_drill < 041708.sql Weight Height BMI 72 168 25.51020408 60 161 23.14725512 52 155 21.64412071 45 158 18.02595738 70 170 24.22145329 76 173 25.39343112 50 162 19.05197378
問題15-
テーブルEmployeesで、Heightの3倍からWeightの2.5倍を引いたものを求めなさい。
別名は結果とします。
SELECT (Height * 3) - (Weight * 2.5) AS "結果" FROM Employees ;
実行結果
$ mysql5 -uroot sql_drill < 041709.sql 結果 324.0 333.0 335.0 361.5 335.0 329.0 361.0 354.0 324.0 338.0 345.0 317.5 316.0 389.0
問題5-3
テーブルSalesで、CustomerID、ProductID、EmployeeIDの積を加えたものを求めなさい。
別名は結果とします。
SELECT Quantity + (CustomerID * ProductID * EmployeeID) AS "結果" FROM Sales ;
実行結果
$ mysql5 -uroot sql_drill < 041710.sql 結果 1202 1121 721 1986 9242 9353 3424 1712 44 571 7905 8515 10711 13468 14995 2526
問題5-4
テーブルProductsで、PriceからProductCode、CategoryIDの積を引いたものを求めなさい。
SELECT Price - (ProductCode * CategoryID) AS "結果" FROM Products ;
実行結果
$ mysql5 -uroot sql_drill < 041711.sql 結果 -501 -967 -653 -804 -855 -3892 -3814 -3716
- カンマを忘れやすいので忘れないように気をつける。
文字列の連結を行う
SELECT CONCAT(列名 , 列名または文字列) FROM テーブル名 ;
SELECT 列名 || 列名または文字列 FROM テーブル名 ;
でもできる。
- SQLServerの場合、||は使用できず+を使う。
お客様の名前に「様」を付ける。
SELECT CustomerName ,CONCAT(CustomerName , "様") AS "お名前" FROM Customers ;
Copyright © crazyup. All rights reserved.


