Cocoapodsを任意のバージョンに固定する方法
bundlerを使ってCocoapodsを任意のバージョンに固定する事が出来ます。
チームで開発している場合などにメンバー間の環境統一に便利です。
cocoapodsの0.33.xと0.34.x系はpodファイルのディレクトリが変化しており、0.33.xから0.34.xへアップデートする際にエラーが出る事がある。
その際にもダウングレードバージョンを使用して、エラーが出ない環境で作業を進める事が出来ます。
■bundlerのインストール(Cocoapodsを使用しているディレクトリで実施)
sudo gem install bundler --no-ri --no-rdoc
■初期化コマンドを実行
bundle init
■Gemfileという名前のファイルが生成されるので、使用したいcocoapodsのバージョンを記載
source 'https://rubygems.org'
gem 'cocoapods', '0.33.1'
■インストールを実行
bundle install --path vendor/bundle
※podコマンドを実行する時にbundle exec podで叩くと上記の固定バージョンで実行できる
■cocoaposをインストール
sudo gem install cocoapods
■podインストール
bundle exec pod install
■セットアップ
bundle exec pod setup
■cocoapodsバージョン確認
bundle exec pod --version
※bundle exec を付けずにpodコマンドを実行すると自PCの最新バージョンで実行されるので注意。
【SQL】MySQLデータの並べ替え、グループ分けコマンドまとめ
■テーブルのデータを降順で表示する
SELECT 表示する列名 FROM テーブル名 ORDER BY キーとなる列名 DESC;
■テーブルのデータを昇順で表示する
SELECT 表示する列名 FROM テーブル名 ORDER BY キーとなる列名 ASC;
■複数の列を基準にして並び替える
SELECT 表示列名 FROM テーブル名 ORDER BY 列名1 ASC又はDESC, 列名2 ASC又はDESC;
※列名1で指定した列を基準に並べ替え。同じ値のデータがあれば列名2で指定した列を基準に並べ替え。
■グループ化する
SELECT category FROM market GROUP BY category;
※テーブルmarketの列categoryをグループ化
■グループ化したものをさらにグループ化
SELECT category, name FROM market GROUP BY category, name;
※列categoryのグループ化し、さらにnameごとにグループ化。categoryごとにnameを表示することができます。
■グループ化して登録件数を調べる
SELECT category, COUNT(category) AS "件数" FROM market GROUP BY category;
※列category別の登録件数が表示
■グループ化したものをさらにグループ化したデータの登録件数を調べる
SELECT category, name, COUNT(*) AS "件数" FROM market GROUP BY category, name;
※COUNT(*)にした場合は、NULLの件数もカウント,COUNT(name)にした場合はNULLの件数はカウントされない。
■グループ化して合計値を表示する
SELECT category, SUM(sales) AS "受注額" FROM market GROUP BY category;
※列categoryごとの列salesの合計値を表示
■グループ化して平均値を表示する
SELECT category, AVG(sales) AS "平均受注額" FROM market GROUP BY category;
※列categoryごとの列salesの平均値を表示
■平均値の小数点以下を四捨五入する(ROUND)
SELECT category, ROUND(AVG(sales)) AS "平均受注額" FROM market GROUP BY category;
※3218.7500 → 3219,3225.0000 → 3225
※ROUN()関数では、第二引数で四捨五入後の桁数を指定できる。ROUND(123.45,1)→123.5 ROUND(123.456,-1) → 120
■グループ化して最大値を表示
SELECT category, name, MAX(sales) AS "最大受注額" FROM market GROUP BY category, name;
■グループ化したデータに条件を付けて抽出する(HAVING)
SELECT name, SUM(sales) AS "受注額" FROM market GROUP BY name HAVING SUM(sales) >= 4000;
■データを抽出してからグループ化
SELECT name, COUNT(*) FROM market WHERE category = '魚介' GROUP BY name;
■グループ化してから並び替え
SELECT name, AVG(sales) FROM market GROUP BY name ORDER BY AVG(sales) DESC;
■HAVINGとWHEREの違い
HAVING句の役割はグループに対する条件を指定する事。
WHERE句の役割は行にたいする条件を指定する事。
WHERE句で条件を指定した場合は、ソートの前に行が絞り込まれる。
HAVING句で条件を指定した場合は、ソートが完了してグループ化された後で行が絞り込まれる。
【SQL】MySQLデータ集計コマンドまとめ
■列同士の値を四則演算(足す+,引く-,掛ける*,割る/)する
(例)SELECT name, price * number AS "売上" FROM sales;
※列priceと列numberを掛け合わせた値を売上という列名で表示
■列の合計を表示する(SUM)
(例)SELECT SUM(price) FROM sales;
※テーブルsalesの列priceの合計値を表示
■列の平均値を表示する(AVG)
(例)SELECT AVG(price) AS "平均売上額" FROM sales;
※テーブルsalesの列priceの平均値を平均売上額という列名で表示
■列の最大値を表示する(MAX)
(例)SELECT MAX(price) AS "最大売上" FROM sales;
※テーブルsalesの列priceの最大値を最大売上という列名で表示
■列の最小値を表示する(MIN)
(例)SELECT MIN(price) AS "最小売上" FROM sales;
※テーブルsalesの列priceの最小値を最小売上という列名で表示
■列の件数を表示する(COUNT)
(例)SELECT COUNT(price) AS "件数" FROM sales;
※テーブルsalesの列priceの件数を件数という列名で表示
■重複するデータを外して集計する(DISTINCT)
(例)SELECT DISTINCT category FROM total;
※テーブルtotalの列categoryに登録されているデータの種類を表示(重複なし)
(例)SELECT COUNT(DISTINCT category) AS "カテゴリの種類数" FROM total;
※テーブルtotalの列categoryに登録されているカテゴリの種類件数を表示
■条件によって表示する値を変える(CASE)
(例)SELECT name, sales, CASE
WHEN sales >= 5000 THEN 'OK'
WHEN sales >= 3000 THEN 'まあまあ'
ELSE 'ダメ'
END AS "評価"
FROM total;
name | sales | 評価 |
---|---|---|
りんご | 4800 | まあまあ |
みかん | 2100 | ダメ |
いちご | 7900 | OK |
桃 | 4950 | まあまあ |
(例)SELECT name, sales, CASE category
WHEN '果物' THEN 'フルーツ'
WHEN '野菜' THEN 'ベジタブル'
END AS "分類"
FROM total;
※CASEの後に条件判断の対象となる列を記述。WHEN category = '果物' THEN 'フルーツ'と同じ。
(例)SELECT COUNT(category) AS "総数",
SUM( CASE category
WHEN '果物' THEN 1
ELSE 0
END ) AS "果物の数",
SUM( CASE category
WHEN '野菜' THEN 1
ELSE 0
END ) AS "野菜の数"
FROM total;
総数 | 果物の数 | 野菜の数 |
---|---|---|
8 | 5 | 3 |
※果物の数=列cateogryが果物のものは1を返しその合計を表示
(例)SELECT SUM(sales) AS "売上合計",
SUM( CASE category
WHEN '果物' THEN sales
ELSE 0
END ) AS "果物の売上額",
SUM( CASE category
WHEN '野菜' THEN sales
ELSE 0
END ) AS "野菜の売上額"
FROM total;
※上記のように条件に一致する列の合計を表示していくことも可能
【SQL】MySQLデータ検索コマンドまとめ
■全ての列のデータを表示する
SELECT * FROM テーブル名;
■特定の列のデータを表示する
SELECT 列名1, 列名2, ・・・ FROM テーブル名;
■特定の列を別名を使って表示する
SELECT 列名1 AS 別名1, 列名2 AS 別名2・・・FROM テーブル名;
■データを条件付きで検索する
SELECT 結果として表示する列名 FROM テーブル名 WHERE 検索する条件;
(例)SELECT * FROM fruit WHERE name = 'メロン';
※テーブルfruitからnameにメロンが登録されている全ての行を表示
■検索条件の範囲を指定して検索する
SELECT 結果を表示する列名 FROM テーブル名 WHERE 検索対象の列名 BETWEEN 値1 AND 値2;
(例)SELECT * FROM fruit WHERE price BETWEEN 500 AND 800;
※テーブルfruitからpriceが500〜800の範囲にあるデータ全てを表示
■複数の候補に一致するデータを検索する
SELECT 結果を表示する列名 FROM テーブル名 WHERE 検索対象の列名 IN(値1, 値2・・・);
(例)SELECT * FROM fruit WHERE name IN('オレンジ', 'メロン');
※テーブルfruitからnameがオレンジとメロンに一致する全てのデータを表示
■全ての値に一致しない値を検索する
SELECT * fruit WHERE name NOT IN('りんご', 'パイナップル');
※テーブルfruitからnameがりんごとパイナップル以外の全てのデータを表示
■NULLを検索する
SELECT 表示する列名 FROM テーブル名 WHERE 検索対象の列名 IS NULL;
■NULLではない行を検索する
SELECT 表示する列名 FROM テーブル名 WHERE 検索対象の列名 IS NOT NULL;
■検索結果を降順で表示する
SELECT 表示する列名 FROM テーブル名 WHERE 検索条件 ORDER BY キーとなる列名 DESC;
※DESC=大きい順,10,9,8,7・・・
■検索結果を昇順で表示する
SELECT 表示する列名 FROM テーブル名 WHERE 検索条件 ORDER BY キーとなる列名 ASC;
※ASC=小さい順,1,2,3,4,5・・・
■WHERE句で使用出来る論理演算子(AND,OR,NOT)
SELECT * FROM food WHERE category = '野菜' AND price >= 350;
※野菜かつ350以上のデータを表示
SELECT * FROM food WHERE category='野菜' AND price >= 350;
※野菜又は350以上のデータを表示
※BETWEEN・・・AND,INなどで簡潔に記述出来る場合は、そちらを使うのが一般的
【SQL】MySQLデータの登録、削除、更新コマンドまとめ
■データを登録する
INSERT INTO テーブル名 VALUES(列1のデータ, 列2のデータ, ・・・);
(例)INSERT INTO shop VALUES('100', 'お花', 300);
(例)INSERT INTO shop VALUES('101', '桃', 620),('102', 'メロン', 670);
■全ての列のデータを表示する
SELECT * FROM テーブル名;
■特定の列のデータを表示する
SELECT 列名1,列名2 FROM テーブル名;
■特定の行のデータを削除する
DELETE FROM テーブル名 WHERE 条件;
(例)DELETE FROM fruit WHERE name = 'メロン';
■テーブル内のすべてのデータを削除する
DELETE FROM デーブル名;
■行を指定してデータを修正する
UPDATE テーブル名 SET 列名 = 修正後のデータ WHERE 条件;
(例)UPDATE fruit SET price = 180 WHERE name = 'オレンジ';
※nameがオレンジの行のpriceを180に変更
■特定の列の全データを修正する
UPDATE テーブル名 SET 列名 = 修正後の値;
■特定の列にデータを登録する
INSERT INTO テーブル名(列名1, 列名2・・・) VALUES (列名1のデータ,列名2のデータ・・・);
(例)INSERT INTO fruit(code,name) VALUES('1001', 'りんご');
※何も登録されなかった列にはNULLが表示される
■特定の列を未入力不可にする(NOT NULL制約)
ALTER TABLE テーブル名 MODIFY 列名 データ型 NOT NULL;
(例)ALTER TABLE fruit MODIFY code CHAR(4) NOT NULL;
■デフォルト制約の設定
ALTER TABLE テーブル名 ALTER 列名 SET DEFAULT デフォルト値;
(例)ALTER TABLE fruit ALTER price SET DEFAULT 0;
ALTER TABLE テーブル名 ADD PRIMARY KEY(列名);
※PostgreSQLとSQL Serverはコマンドが異なります。
■NOT NULL制約解除
ALTER TABLE テーブル名 MODIFY 列名 データ型;
■デフォルト値の削除
ALTER TABLE テーブル名 ALTER 列名 DROP DEFAULT;
【SQL】MySQLテーブル作成・変更コマンドまとめ
■テーブルを作成する
CREATE TABLE テーブル名 (
列名1 データ型,
列名2 データ型,
・・・・・・・
);
(例)
CREATE TABLE shop (
code CHAR(4),
name VARCHAR(30),
price INTEGER);
■テーブルを削除する
DROP TABLE テーブル名;
(例) DROOP TABLE shop;
■テーブルの設定情報を見る
SHOW CREATE TABLE テーブル名;
DESC テーブル名;
■列のデータ型を変更する(ALTER=アルター)
ALTER TABLE テーブル名 MODIFY 列名 変更後のデータ型;
■列を追加する
ALTER TABLE テーブル名 ADD COLUMN 列名 データ型;
■列を削除する
ALTER TABLE テーブル名 DROP COLUMN 列名;
■テーブルの名前を変更する
ALTER TABLE 変更前のテーブル名 RENAME TO 変更後のテーブル名;
■列の名前を変更する
ALTER TABLE テーブル名 CHANGE 変更前の列名 変更後の列名 データ型;
【SQL】MySQLデータベースの作成コマンドまとめ
■データベースを作成する
CREATE DATABASE データベース名;
(例)CREATE DATABABASE shop;
※shopという名前のデータベースを作成
■データベースに接続する
USE データベース名;
(例)USE shop;
※shopという名前のデータベースに接続する
■データベースを削除する
DROP DATABASE データベース名;
(例)DROP DATABASE shop;
※shopという名前のデータベースを削除する