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

コアSQLステートメントであるSELECTは、1つ以上のテーブル、またはビューやテーブル値関数などの行セットデータの他のソースからデータを取得します。


8
select *は、SQL Server 2012ではまだ大きな問題ではありませんか?
過去の時代に戻って、それはやるべきことselect * from tableやselect count(*) from tableパフォーマンスの打撃のために大きなノーと考えられていました。 SQL Serverの以降のバージョンでもこれは当てはまりますか(2012年を使用していますが、質問は2008〜2014年に適用されると思います)。 編集:ここで人々は私をわずかに軽視しているように見えるので、私はこれをベンチマーク/学問的観点から見ており、それが「正しい」ことであるかどうか(もちろんそうではありません)

3
このクエリが機能するのはなぜですか?
Oracle 12cでは、table_a(id、name)とtable_b(id)の2つのテーブルがあります。 このクエリが例外を返さないのはなぜですか? select * from table_a where name in (select name from table_b); 私が理解していることから、Oracleはこれを select * from table_a where name = name; しかし、私が得られないのはなぜですか?

7
クエリを再現するために必要なデータベースのサブセットをmysqldumpすることは可能ですか?
バックグラウンド selectクエリを再現するために必要なデータベースのサブセットを提供したいと思います。私の目標は、計算ワークフローを再現可能にすることです(再現可能な研究のように)。 質問 このselectステートメントを、クエリされたデータを新しいデータベースにダンプするスクリプトに組み込んで、データベースを新しいmysqlサーバーにインストールし、ステートメントが新しいデータベースで機能するようにする方法はありますか。新しいデータベースには、クエリで使用されたレコードに加えてレコードを含めるべきではありません。 更新: 明確にするために、クエリ結果のcsvダンプには興味がありません。私ができる必要があるのは、データベースのサブセットをダンプして、別のマシンにインストールできるようにすることです。そうすれば、クエリ自体を再現可能にすることができます(同じデータセットに関して変更可能です)。 例 たとえば、私の分析では、複数の(この例では3つの)テーブルからのレコードを必要とするデータのサブセットを照会します。 select table1.id, table1.level, table2.name, table2.level from table1 join table2 on table1.id = table2.table1_id join table3 on table3.id = table2.table3_id where table3.name in ('fee', 'fi', 'fo', 'fum');

5
SHOW TABLE STATUSの結果から選択する方法
から返される行と列を制限したい SHOW TABLE STATUS MySQL 5.1のコマンド。SELECT通常の方法で結果を操作できるように、ステートメントを介してこの同じ情報を取得する方法はありますか?
36 mysql  select 

1
JOIN句にUSING構文を使用すると、特定の場合に最適化の障壁が生じる可能性がありますか?
クエリの節のUSING(ではなくON)コンストラクトが、FROMSELECT一定の場合には、最適化の障壁を導入することがあります。 私はこのキーワードを意味します: 選択* から 参加b 使用した(A_ID) より複雑な場合にのみ。 コンテキスト:このコメントにこの質問。 私はこれをよく使いますが、これまでに気づいたことはありません。効果やリンクを示すテストケースに非常に興味があります詳細情報にます。私の検索努力は空っぽになりました。 完璧な答えは、表示するために、テストケースとなりUSING (a_id)、代替句に参加すると比較して劣った性能をON a.a_id = b.a_id- 場合はそれが実際に起こることができます。

5
PostgreSQLの選択クエリでデフォルト値を使用するにはどうすればよいですか?
行が返されない場合に使用する列のデフォルト値を使用したいと思います。PostgreSQLで可能ですか?どうすればいいですか?または、これを解決できる他の方法はありますか? たとえば、次のようなものです。 SELECT MAX(post_id) AS max_id DEFAULT 0 FROM my_table WHERE org_id = 3 そしてorg_id = 3、テーブルに行がない場合、私は返したいです0。

6
MySQLのSELECT句で整数をブール値にキャストする方法は?
私はここに新しいので、私に親切にしてください。次のシナリオがあります。 簡単にするために、MySQLデータベースのビューに表されるテーブルがたくさんあります。私の問題は、このビューに、ある種のイベントか別のイベント(単純なブール値)かを表す値が必要なことです。 `gu`.`StoppingUnitEventME` = `ese`.`MonitoringElement` AS `IsStopingEvent` 結果はintとして表されるため、Entity Frameworkによって読み取られます。問題は、ブール値の戻り値が本当に必要だということです。 CAST((`gu`.`StoppingUnitEventME` = `ese`.`MonitoringElement`) as boolean) AS `IsStopingEvent` これによりエラーが発生し、MySQL Workbenchで表示されません(「...にエラーがあります」といううっとうしいだけです)。 助けてくれませんか? 私のアプリケーションでそれを解決しようとしましたが、後で他のソフトウェアで使用されるので、私はデータベースでこれを解決することを本当に好みます。

2
SELECT *がSELECT fooよりもはるかに高速なのはなぜですか?
次のような値とハッシュの表を考えてみましょう。 +------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+----------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | val | char(9) | NO | | NULL | | | val_hashed | char(50) | YES | | NULL | …

2
oracle-特定のテーブルへのアクセス権を持つユーザーをリストします
これは以前に尋ねられたと確信していますが、以下に関連する詳細を見つけることができないようです。 以下を行うことができる事前構築テーブルのようなものはありますか(dba_tab_privsを使用しましたが、制限されており、私のニーズをすべて満たしていない)、誰かが次の質問に答えるためのクエリを持っていませんか? 特定の役割が割り当てられているすべてのユーザーをリストしますか? ユーザーに与えられたすべての役割をリストしますか? ユーザーに与えられたすべての特権をリストしますか? 特定のロールがSELECTアクセスを許可するテーブルをリストしますか? ユーザーが選択できるすべてのテーブルをリストしますか? 特定のテーブルでSELECTできるすべてのユーザーをリストします(関連するロールの付与または直接付与(joe toableでのselectの付与))。このクエリの結果には、ユーザーがどのロールを介してこのアクセス権を持っているか、それが直接許可であったかどうかも表示されます。

2
同じSELECTリスト内の列エイリアスを参照する
古いMS-AccessベースのシステムをPostgreSQLに変換しています。Accessでは、SELECTで作成されたフィールドは、次のように、後のフィールドの方程式の一部として使用できます。 SELECT samples.id, samples.wet_weight / samples.dry_weight - 1 AS percent_water, 100 * percent_water AS percent_water_100 FROM samples; PostgreSQLでこれを行うと、Postgresはエラーをスローします。 エラー:列「percent_water」は存在しません。 サブ選択から選択することで、これを回避する方法は次のとおりです。 SELECT s1.id, s1.percent_water, 100 * s1.percent_water AS percent_water_100 FROM ( SELECT samples.id, samples.wet_weight / samples.dry_weight - 1 AS percent_water FROM samples ) s1; 複雑なネストを回避するための最初のコードブロックのようなショートカットはありますか?私は単に言うこともできます100 * (samples.wet_weight / samples.dry_weight - 1) …

5
MySQLクエリでバックティック( `)を使用する利点は?
MySQLでは、バックティック(`)記号の有無にかかわらずクエリを作成できます。例: SELECT * FROM TEST; SELECT * FROM `TEST`; 両方ともmysql-consoleで正常に動作します。 それらの間に技術的な違いはありますか? `単純なクエリよりも()を使用する利点はありますか?
25 mysql  select 

3
列が存在する場合は特定の行を、列が存在しない場合はすべての行を選択する方法
いくつかのテーブルの行数を取得するスクリプトを作成していますが、一部のテーブルでは、フラグが設定されている行数のみを取得したい(この場合はactive = 1)。1つのクエリでこれを行う方法はありますか? 例えば: テーブルusersにactiveという列があります テーブルにclientsactiveという列がありません active = 1のユーザーの数を取得し、クライアントの数を取得したいだけです。 あなたが言う前に「だけでハードコードは、それが」これは、多くの異なるデータベース上で実行することができPythonスクリプト内で起こっているクエリであり、私は私のスクリプトを選択し、それらが列を持っている場合に呼び出されますどのようなテーブル知る方法はありませんactiveし、 2つの別々のクエリではなく、1つのクエリだけですべてを実行し、mysqlに依存してエラーをスローすることで、もう1つのクエリを使用することができます。
23 mysql  select  count 

2
別のSELECTのWHERE句でSELECTを使用する
私はのためのlibpqの上にドラフトリモートアプリケーション作ったPostrgreSQLを。うまく動作しますが、アプリケーションの一般的な機能をプロファイルしました。私が作成する最終的なビジネス結果ごとに、40のselect句(tcpip経由)などを呼び出すことがあります。 リモートアプリケーションとデータベースの間のやり取りの数を最小限に抑えることを思い出させるSQL-Serverの思い出があります。選択を分析した結果、SELECT結合を使用してこの数を3つの節に減らすことができると思います。しかしSELECT、別のの結果を使用するための構文を覚えていませんSELECT。 例えば: SELECT * FROM individual INNER JOIN publisher ON individual.individual_id = publisher.individual_id WHERE individual.individual_id = 'here I would like to use the results of a another select' これSELECTは単純に他の種類です: SELECT identifier FROM another_table WHERE something='something' 以下は、さまざまなitem_typesに対して何度も拒否された単純化されたテーブルレイアウトです...(3つのまったく異なるタイプ、したがって最適化された場合は3つのSQLクエリ)。 table passage id_passage PK business_field_passage bytea table item id_item PK id_passage FK business_field_item …


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