0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SQL概要

Posted at

目的

SQLの理解が薄いため言語化し定着に勤めたいと思います。

SQLとは

RDBの操作を行うための言語。
RDB(リレーショナルデータベース)表形式でデータを管理する、データベースです。カラムやレコードがある。
RDBMS(RDBマネジメント・システム)RDBを使用する際、それを管理するシステム。
MYSQLRDBMSの1つです。特徴:拡張機能が多い。:小規模から大規模のデータも取り扱いが可能。:柔軟性が高い。
SQLはデータベースやテーブルに対して様々な命令を行いますが、その命令は大きく分けて3つです。
データを定義するDDL(Data Definition Language)
データを操作するDML(Data Manipulation Language)
データを制御するDCL(Data Control Language)
DDLのできること
CREATE(データベースやテーブルの設定)
ALTER(データベースやテーブルの更新)
DROP(データベースやテーブルの削除)
DMLのできること
INSERT(データの登録)
UPDATE(データの更新)
DELETE(データの削除)
SELECT(データの検索)
DCLのできること
COMMIT(DBの変更の確定)
ROLLBACK(DBの変更の取り消し)
GRANT(ユーザーに操作権限を付与)
REVOKE(ユーザーの操作権限を無効化)

SQLはどのような種類のRDBに対しても、基本的に同じ文法で操作ができます。なので一つのSQLを学んでしまえば他のRDBを扱う時でもその知識は役立つ事が保証される。

SQLの裏側

SQLにも文法があり、ルールに沿って記述すると「データベースからデータを取得する」事ができる。
(例)投稿一覧ページ(index)には様々な処理がされている。ターミナルでログを確認すると色文字で書かれているところがSQL文です。あくまで例ですがSQL文を見ると
SELECT text FROM tweets;が書かれており。textは取得したいデータ。tweetsはテーブル名となっている。
なので一覧表示ページには、取得したSQLが表示される。

SQLを使用してみる

find_by_sql => Ruby on RailsでSQL文を使用し、データを検索し取得する際に使用するメソッドです。

def index
      #@tweets = Tweet.includes(:user).order("created_at DESC")
    query = "SELECT * FROM tweets"
    @tweets = Tweet.find_by_sql(query)
end

"SELECT * FROM tweets"tweetテーブルからすべてのレコードを取得するSQLなのでTweet.allと同義となる。
このように、SQLを直接記述することでテーブルからデータを取得できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?