ぱーりー on rails

たまごにひびすらわれてない

SQL *基本的な関数

アルゴリズムを考えるのになにからしたらいいのかと
社員さんに相談したらSQL理解できてる?
ってきかれて
「」
ってなったので
そろそろSQLをちょっとかじってみようとおもって
関数をまとめてみました。

SELECTぐらいしか知りませんでしたが
やっぱこの辺理解するだけで
データベースに対する理解が深まったりテーブル結合のこととか
データの取り出しかたがパッと頭に浮かぶようになってきます。


基本的な関数の簡単な非常にざっくりなかんじで説明をします!


CREATE
作る

ex)
CREATE TABLE テーブル名 (列名, 型)
CREATE TABLE tbl_game ( name VARCHAR(20), score INT)

INSERT INFO
データを登録する
ex)
insert into テーブル名 (列名) values (データ名)
insert into tbl_datelist (no, datel, date2) values (1, '2004-04-03', '2004-07-03');


SELECT
取り出す
ex)
SELECT * FROM テーブル名
これでこのテーブルを取り出してくる。


WHERE
条件にあったデータを取り出す。
ex)
where category_id = ‘1’


ORDER BY
順番にならべる。


GROUP BY
データをグループ化する。
ex)
SELECT price COUNT(列名) FROM テーブル名 GROUP BY 列名


COUNT関数
集約関数のうつのひとつ。()内に指定した列に存在する行数を返す。


AS演算子
既存の列に別の名前をつけて表示しりことができる。一時的に変更できるだけで元の列名が書きかわるわけではない。


DISTINCT句
重複したデータを取り除いて表示することができる。
ex) SELECT DISTINCT 列名 FROM テーブル名
これだと列名が重複しているもののうちのひとつを残して重複している分を除去する。

*数値関数

CEILING関数、SEIL関数
引数以上で最も小さい整数値を返す。
CEILING(55.44) これなら、56を返す。



FLOOR関数
引数以下で最も大きい整数値を返す。
FLOOR(2.58) これなら、2を返す。


RAND関数
0以上1.0未満の範囲内で乱数を取得する。
データを無作為に取り出したいときい有効。


*文字列関数


LEN関数、LENGTH関数
文字列の文字数を返す。


SUBSTRING関数、SUBSTR関数
文字列から指定された部分だけを取り出して返す。
SUBSTRING('リンゴジュース', 3, 2)  => ゴジ
リンゴジュース:取り出す元の文字列または文字列型の列名
3:文字列の先頭(左端)から数えて何文字目から取り出すかを指定。
2:何文字取り出すか。


UPPER関数
文字列を大文字にする。


LOWER関数
文字列を小文字にする。


*日付関数


GETDATE関数(SQLserver)、SYSDATE関数(Oracle,MySQL)
ex) GETDATE () => 2016-04-22-12:30(現時間)
引数は指定しない。


このほかにも日付データから年、月、日を取得する関数(DAY,MONTH,YEAR)
日数、時間数を加算する関数(DATEADD)
日付の差を取得する関数(DATEDIFF)
がある。


*集約関数

AVG関数
列に含まれるすべての値(null除く)の平均値を求める。


SUM関数
列に含まれるすべての値(null除く)の合計を求める。


COUNT関数
列の数を求める。


*変換関数


CAST関数
データ型の変換
CAST(0.245 AS VARCHAR)



演算子


IN演算子
( )内に指定した値と一致したデータをとりだすことができる

NOT IN演算子
指定した値以外の物を取り出すことができる


*サブクエリ
SELECT文は抽出条件としてSELECT文をつかうことができる。
サブクエリを使うことでより複雑な条件付けをしてデータを取り出すことができる。


参考にした本はこちらです。
すごくわかりやすいです!!!!

読んでいただいてありがとうございました。
関数、随時追加していこうとおもいます。
それかまた別項目でSQLについて新しく書こう思ってます。

www.amazon.co.jp