2016-11-17 6 views
-2

"Sequel"宝石をインストールしました。私は、SQLをもっと簡単にする方法がたくさんあることを知っていますが、それはちょっと混乱していると思います。Sequelを使用して生のクエリ文字列を送信する方法

ように、生のSQLクエリを送信する方法があります:

table.all 

は次のようになりますか? documentationから

"SELECT * FROM table" 
+1

紛らわしいように見えるかもしれませんが、新しいテクノロジーや言語は、あなたが始めたときに混乱するようです。また、その背後にある概念を研究し、文書を読み、ツールが貴重なものであるかどうか、そしてそれを学ぶ努力を惜しまないかどうかを判断することも、本当に重要です。 Sequelのようによく書かれたORMには、未処理のSQLを書くことに比べて多くの利点があり、いくつかの欠点があります。異なるDBMに変更する場合には、これらのクエリを書き直す必要があるため、SQLの作成を主張するときには利点がありません。 ORMを学んでください。それは起こらないでしょう。 –

+1

あなたの質問はSequelのドキュメントでカバーされています。 READMEとチートシートは、どのように動作するかを知る上での優れた出発点です。このような質問をすることで、少しでも努力することができます。 "[どのくらいの研究努力がStack Overflowユーザーに期待されていますか?](http://meta.stackoverflow.com/questions/261592)"が該当します。 –

答えて

2

DB['SELECT * FROM table'].each do |row| 
    p row 
end 
0

You Can Just Use SQLは」続編式にSQLを埋め込む方法について説明しますが、あなたはそれを行う場合はORMのパワーを利用するつもりはありません。代わりに、 "Cheat Sheet"の例を読み、試してみることをお勧めします。インメモリのSQLite DBが存在するであろうと行を含むことになり、この時点で

require 'sequel' 

DB = Sequel.sqlite 

DB.create_table :items do 
    primary_key :id 
    String :name 
    Float :price 
end 

items = DB[:items] 
items.insert(:name => 'abc', :price => rand * 100) 
items.insert(:name => 'def', :price => rand * 100) 
items.insert(:name => 'ghi', :price => rand * 100) 

ここREADMEから微調整例です。

itemsのベースクエリは選択です:私たちは、変数を検査した場合

items.sql # => "SELECT * FROM `items`" 

は、我々が得る:

items # => #<Sequel::SQLite::Dataset: "SELECT * FROM `items`"> 

が再びクエリを示します。

all方法は、クエリを実行して結果を返します:

items.all # => [{:id=>1, :name=>"abc", :price=>41.416988254871455}, {:id=>2, :name=>"def", :price=>40.44638070518766}, {:id=>3, :name=>"ghi", :price=>65.1898528586475}] 

同じが使用して行うことができます。

DB["select * from items"] # => #<Sequel::SQLite::Dataset: "select * from items"> 

と、再び、allはDBとリターンから情報を取得しますそれ:

DB["select * from items"].all # => [{:id=>1, :name=>"abc", :price=>33.294219608356926}, {:id=>2, :name=>"def", :price=>29.25412438270755}, {:id=>3, :name=>"ghi", :price=>6.19681273957694}] 

ORMのような続編。 READMEを使って作業し、チートシートの例を試してみると意味があります。

関連する問題