タグ付けされた質問 「sql」

構造化照会言語(SQL)は、データベースを照会するための言語です。質問には、コード例、テーブル構造、サンプルデータ、使用するDBMS実装(MySQL、PostgreSQL、Oracle、MS SQL Server、IBM DB2など)のタグを含める必要があります。質問が特定のDBMSにのみ関連している場合(特定の拡張機能を使用)、代わりにそのDBMSのタグを使用してください。SQLでタグ付けされた質問への回答には、ISO / IEC標準SQLを使用する必要があります。

7
リレーショナルデータベースに階層データを格納するためのオプションは何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 10か月前に閉鎖。 良い概要 一般的に言って、あなたは速い読み込み時間(例えば、入れ子になったセット)または速い書き込み時間(隣接リスト)の間で決定を下しています。通常、ニーズに最も適合する以下のオプションの組み合わせになります。以下に、いくつかの詳細な資料を示します。 もう1つのネストされた間隔と隣接リストの比較:隣接リスト、マテリアライズドパス、ネストされたセット、ネストされた間隔の最も優れた比較。 階層データのモデル:トレードオフと使用例の適切な説明を含むスライド MySQLでの階層の表現:特にネストされたセットの概要 RDBMSの階層データ:私が見た中で最も包括的でよく整理されたリンクのセットですが、説明の仕方はあまりありません オプション 私が知っているものと一般的な機能: 隣接リスト: 列:ID、ParentID 実装が簡単です。 安価なノードが移動、挿入、削除されます。 レベル、祖先と子孫、パスを見つけるのに費用がかかる それらをサポートするデータベースの共通テーブル式によるN + 1を回避する ネストされたセット(別名Modified Preorder Tree Traversal) 列:左、右 安い祖先、子孫 O(n/2)揮発性エンコーディングのため、非常に高価な移動、挿入、削除 ブリッジテーブル(別名クロージャテーブル/ wトリガー) 先祖、子孫、深さ(オプション)で個別の結合テーブルを使用します 安い祖先と子孫 O(log n)挿入、更新、削除にかかるコスト(サブツリーのサイズ) 正規化されたエンコーディング:RDBMS統計と結合のクエリプランナーに適しています ノードごとに複数の行が必要 系統列(別名マテリアライズドパス、パス列挙) 列:系統(例:/ parent / child / grandchild / etc ...) 接頭辞クエリによる安い子孫(例LEFT(lineage, #) = '/enumerated/path') O(log n)挿入、更新、削除にかかるコスト(サブツリーのサイズ) …

16
各GROUP BYグループの最初の行を選択しますか?
タイトルが示すように、でグループ化された各行セットの最初の行を選択したいと思いますGROUP BY。 具体的には、purchases次のようなテーブルがある場合: SELECT * FROM purchases; 私の出力: id | お客様| 合計 --- + ---------- + ------ 1 | ジョー| 5 2 | サリー| 3 3 | ジョー| 2 4 | サリー| 1 それぞれが行っidた最大の購入(total)について問い合わせたいのcustomerですが。このようなもの: SELECT FIRST(id), customer, FIRST(total) FROM purchases GROUP BY customer ORDER BY total DESC; 期待される出力: FIRST(id)| お客様| …

16
SQL ServerでJOINを使用してUPDATEステートメントを実行するにはどうすればよいですか?
SQL Serverでこのテーブルを「親」テーブルのデータで更新する必要があります。以下を参照してください。 テーブル:販売 id (int) udid (int) assid (int) テーブル:ud id (int) assid (int) sale.assid更新する正しい値が含まれていますud.assid。 これを行うクエリは何ですか?私は考えていますが、joinそれが可能かどうかはわかりません。



11
複数のMySQL行を1つのフィールドに連結できますか?
を使用するとMySQL、次のようなことができます: SELECT hobbies FROM peoples_hobbies WHERE person_id = 5; 私の出力: shopping fishing coding しかし、代わりに私は1行1列が欲しいだけです: 期待される出力: shopping, fishing, coding その理由は、複数のテーブルから複数の値を選択していて、すべての結合の後で、希望よりもはるかに多くの行があるためです。 MySQL Docで関数を探しましたが、CONCATまたはCONCAT_WS関数が結果セットを受け入れないようです。 それで、ここの誰かがこれを行う方法を知っていますか?
1214 mysql  sql  concat  group-concat 

28
指定した名前の列を含むすべてのテーブルを検索-MS SQL Server
この投稿を改善してみませんか?この質問に対する詳細な回答を提供してください。これには、引用や、回答が正しい理由の説明が含まれます。詳細が不十分な回答は編集または削除される場合があります。 列を含むテーブル名をクエリすることは可能ですか? LIKE '%myName%' ?


14
挿入された行のIDを取得する最良の方法?
IDENTITY挿入された行を取得する最良の方法は何ですか? 私が知っている@@IDENTITYとIDENT_CURRENTとSCOPE_IDENTITYが、それぞれに付属の長所と短所を理解していません。 誰かが違いを説明してくれませんか、それぞれをいつ使うべきですか?
1119 sql  sql-server  tsql 


30
SQL IN句をパラメーター化する
INこのように、引数の数が可変の句を含むクエリをパラメーター化するにはどうすればよいですか? SELECT * FROM Tags WHERE Name IN ('ruby','rails','scruffy','rubyonrails') ORDER BY Count DESC このクエリでは、引数の数は1〜5のいずれかになります。 これ(またはXML)に専用のストアドプロシージャを使用したくないのですが、SQL Server 2008に固有のエレガントな方法がある場合は、それを受け入れます。


17
注文後にOracleクエリによって返される行数を制限するにはどうすればよいですか?
OracleクエリにMySQL limit句が含まれているように動作させる方法はありますか? ではMySQL、これを行うことができます: select * from sometable order by name limit 20,10 21行目から30行目を取得するには(最初の20をスキップして、次の10を指定します)。行はの後に選択されるorder byため、実際には20番目の名前からアルファベット順に始まります。 ではOracle、人々が言及するのはrownum疑似列だけですが、それはの前 order byに評価されます。つまり、 select * from sometable where rownum <= 10 order by name 名前で並べられた10行のランダムなセットが返されますが、これは通常は必要ありません。また、オフセットを指定することもできません。

6
JOINとINNER JOINの違い
これらの結合はどちらも同じ結果になります。 SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK 対 SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK パフォーマンスなどのステートメントに違いはありますか? 異なるSQL実装間で異なりますか?

27
各グループの最後のレコードを取得する-MySQL
messages以下に示すようなデータを含むテーブルがあります。 Id Name Other_Columns ------------------------- 1 A A_data_1 2 A A_data_2 3 A A_data_3 4 B B_data_1 5 B B_data_2 6 C C_data_1 クエリを実行するselect * from messages group by nameと、結果は次のようになります。 1 A A_data_1 4 B B_data_1 6 C C_data_1 どのクエリが次の結果を返しますか? 3 A A_data_3 5 B B_data_2 6 C C_data_1 つまり、各グループの最後のレコードが返されます。 …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.