SQL文 メモ

SELECT * FROM items; 
//データの一覧を表示する

INSERT INTO items SET ID=100, name='商品100'; 
//デーブルitemsにid=100,name=商品100を挿入する

CREATE TABLE my_items (id INT,item_name TEXT,price INT); 
//テーブルの作成

INSERT INTO my_items SET id=1,item_name='いちご', price=200; 
//テーブルmy_itemsにidを1item_nameにいちごを挿入する

UPDATE my_items SET price=180 WHERE id=1; 
//データの変更 WHEREでidの指定 priceを180に変更

DELETE FROM my_items WHERE id=1; 
//テーブルmy_itemsのid 1を削除する

SELECT id,item_name FROM my_items WHERE id=1; 
//データの検索

SELECT * FROM my_items WHERE id=1; 
//データの検索 フィールド名の指定はなし

SELECT * FROM my_items WHERE price=180; 
//フィールドmy_itemsの中からpriceが180のものを表示する

SELECT * FROM my_items WHERE price<180; 
//フィールドmy_itemsの中からpriceが180未満のものを表示する

SELECT * FROM my_items WHERE id<>1; 
//フィールドmy_itemsの中からid=1以外を表示する

SELECT * FROM my_items WHERE keyword LIKE '%甘い%'; 
//「甘い」が入っているkeywordを表示する

SELECT * FROM my_items WHERE keyword LIKE '赤い%'; 
//keywordの先頭が「赤い」になっているものを表示する(前方一致)

SELECT * FROM my_items WHERE price>=50 AND price<150; 
//50以上で150未満のものを表示する(かつ、さらにといった条件)

SELECT * FROM my_items WHERE id=1 OR id=3; 
//idが1または3を表示する

SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%甘い%'; 
//idが1または3で、150円未満でさらに「甘い」が含まれる商品を表示

SELECT * FROM my_items ORDER BY id ASC; 
//idを小さい順に並べる(ASCは標準なので省略できる)

SELECT * FROM my_items ORDER BY id DESC; 
//idを大きい順に並べる

SELECT * FROM my_items WHERE price<=180 ORDER BY price; 
//priceが180円以下のものを安い順に並べる

UPDATE my_items SET created = '2012-07-01' WHERE id=1; 
//id=1のcreatedに日付を入れる

UPDATE my_items SET created = NOW() WHERE id=2; //NOW() : 現在の日付と時刻を取得する

SELECT SUM(price) FROM my_items; 
//すべてのpriceを合計した値が表示される

SELECT MAX(price) FROM my_items; 
//最も高い商品を表示する

SELECT MIN(price) FROM my_items; 
//最も低い商品を表示する

SELECT COUNT(id) FROM my_items; 
//ヒットしたデータの件数

SELECT AVG(price) FROM my_items; 
//price の平均値を算出する
P164
///////////////////
P174
SELECT item_id, SUM(count) FROM carts GROUP BY item_id; 
//個別の集計(GROUP BY はどの商品か表示させるため)

SELECT i.item_name,SUM(c.count) FROM my_items i,carts c WHERE i.id=c.item_id GROUP BY c.item_id; 
//リレーションを使って商品名と集計を表示する


SELECT i.item_name,SUM(count) FROM my_items i LEFT JOIN carts c ON i.id=c.item_id GROUP BY i.id; 
//外部結合  書式[SELECTFROM テーブル1 LEFT JOIN テーブル2 ON 結合の条件 WHERE …]

DISTINCT 
// 重複をなくす  例 : SELECT DISTINCT item_id FROM carts;

SELECT * FROM my_items WHERE price BETWEEN 50 AND 149;
// BETWEENは「>=」と同じ意味?

SELECT * FROM my_items WHERE id IN(1,3); 
//複数の値を一気に指定できる「INSELECT * FROM carts LIMIT 2; 
//件数の制限「INSELECT * FROM carts LIMIT 1,2; 
//カンマ区切りで始まりの位置を指定

SELECT i.item_name,SUM(c.count) AS sales_count FROM my_items i,carts c WHERE i.id=c.item_id GROUP BY c.item_id; 
//「AS」SUM(c.count)のフィールド名を変更している