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

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

5
Oracle SELECT TOP 10レコード
OracleのSQLステートメントに大きな問題があります。他の選択ステートメントからリストにないSTORAGE_DBで注文された上位10件のレコードを選択したい。 これはすべてのレコードで正常に機能します。 SELECT DISTINCT APP_ID, NAME, STORAGE_GB, HISTORY_CREATED, TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') AS HISTORY_DATE FROM HISTORY WHERE STORAGE_GB IS NOT NULL AND APP_ID NOT IN (SELECT APP_ID FROM HISTORY WHERE TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') = '06.02.2009') しかし、私が追加しているとき AND ROWNUM <= 10 ORDER BY STORAGE_GB DESC なんらかの「ランダム」レコードを取得しています。制限は注文の前に行われるためだと思います。 誰かが良い解決策を持っていますか?その他の問題:このクエリは非常に遅い(1万レコード以上)
144 sql  oracle  top-n 

9
シンプルなデータベースエンジンの作成方法[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する データベースエンジンがどのように機能するか(つまり、内部について)知りたいです。私はCSで教えられている基本的なデータ構造(ツリー、ハッシュテーブル、リストなど)のほとんどを知っているだけでなく、コンパイラの理論をかなり理解しています(そして、非常に単純なインタプリタを実装しています)。データベースエンジンの作成について。このテーマについてチュートリアルを検索しましたが、見つからなかったので、他の誰かが私を正しい方向に向けてくれることを願っています。基本的に、私は以下についての情報をお願いします: データが内部に格納される方法(つまり、テーブルがどのように表されるかなど) エンジンが必要なデータを見つける方法(例:SELECTクエリの実行) 高速かつ効率的な方法でデータを挿入する方法 そして、これに関連するかもしれない他のトピック。ディスク上のデータベースである必要はありません。メモリ内のデータベースでさえ、その背後にあるプリンシパルを学びたいだけなので、(簡単であれば)結構です。 ご協力いただき誠にありがとうございます。

9
SQL-Group Byでのエイリアスの使用
SQL構文に興味があるだけです。だから私が持っているなら SELECT itemName as ItemName, substring(itemName, 1,1) as FirstLetter, Count(itemName) FROM table1 GROUP BY itemName, FirstLetter これは間違っているでしょう GROUP BY itemName, FirstLetter 本当にあるべき GROUP BY itemName, substring(itemName, 1,1) しかし、なぜ前者を便宜上使用できないのでしょうか。
143 sql  group-by  alias 

17
ソケット '/tmp/mysql.sock'(2)を介してローカルMySQLサーバーに接続できません
MySQLサーバーをインストールして接続しようとしましたが、エラーが発生します。 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) / tmpディレクトリを確認しましたが、mysql.sockがありません。mysql.sockがどこにも見つかりません。私はそれが中にあるかもしれないと読んだ /var/lib/mysql/mysql.sock しかし、私もそこをチェックしましたが、mysqlディレクトリもありません。/lib内のいくつかのpostfixだけです。誰かがこの問題を助けてくれますか?
143 mysql  sql 

11
SQL Server:2つのテーブルに同時に挿入することは可能ですか?
私のデータベースにはObject_Table、Data_Tableおよびという3つのテーブルが含まれていますLink_Table。リンクテーブルには、オブジェクトレコードのIDとデータレコードのIDの2つの列が含まれています。 私はからデータをコピーするDATA_TABLEことは、1つの与えられたオブジェクトIDにとにレコードを挿入し、対応するリンクされている場所Data_TableとLink_Table異なる特定のオブジェクト識別のために。 これを行うには、テーブル変数を選択し、反復ごとに2つの挿入を実行してループします。 これはそれを行うための最良の方法ですか? 編集:私は2つの理由でループを回避したいと思います。1つ目は怠惰で、ループ/一時テーブルにはより多くのコードが必要であること、より多くのコードはミスをする場所が多くなることを意味します。2つ目はパフォーマンスに関する懸念です。 すべてのデータを1回の挿入でコピーできますが、リンクテーブルを取得して、各レコードに新しいIDがある新しいデータレコードにリンクするにはどうすればよいですか?

8
各グループの最初の行を選択するにはどうすればよいですか?
次のように生成されたDataFrameがあります。 df.groupBy($"Hour", $"Category") .agg(sum($"value") as "TotalValue") .sort($"Hour".asc, $"TotalValue".desc)) 結果は次のようになります。 +----+--------+----------+ |Hour|Category|TotalValue| +----+--------+----------+ | 0| cat26| 30.9| | 0| cat13| 22.1| | 0| cat95| 19.6| | 0| cat105| 1.3| | 1| cat67| 28.5| | 1| cat4| 26.8| | 1| cat13| 12.6| | 1| cat23| 5.3| | 2| cat56| 39.6| | 2| …

9
CTEとSubQueryの違いは?
この投稿から次の手順でROW_NUMBERを使用するにはどうすればよいですか? 回答には2つのバージョンがあり、1つはa sub-queryを使用し、もう1つはa を使用しCTEて同じ問題を解決します。 さてCTE (Common Table Expression)、「サブクエリ」よりも使用することの利点は何ですか(したがって、クエリが実際に行っていることをより読みやすくします) 使用しての唯一の利点CTEを超えるにはsub-select、私が実際にできることである名前を付けますsub-query。CTEが単純な(再帰的でない)CTEとして使用される場合、これら2つの間に他の違いはありますか?

9
SQL文字列でのアンパサンド文字のエスケープ
SQLデータベースで特定の行を名前で照会しようとしていますが、アンパサンドがあります。エスケープ文字を設定してからアンパサンドをエスケープしようとしましたが、何らかの理由でこれが機能せず、問題が正確に何であるか不明です。 Set escape '\' select * from V1144engine.T_nodes where node_id in( select node2_id from V1144engine.T_edges where node1_id in( select node2_id from V1144engine.T_edges where node1_id in( select node2_id from V1144engine.T_edges where node1_id = (select node_id from V1144engine.T_nodes where node_name = 'Geometric Vectors \& Matrices'))) and edge_type_id = 1) and node_type_id = …
143 sql  oracle  escaping  sqlplus 


11
レコードが存在するかどうかを確認する最速の方法
タイトルが示すように...レコードがテーブルに存在するかどうかを判断するために、オーバーヘッドを最小限に抑えて最速の方法を見つけようとしています。 サンプルクエリ: SELECT COUNT(*) FROM products WHERE products.id = ?; vs SELECT COUNT(products.id) FROM products WHERE products.id = ?; vs SELECT products.id FROM products WHERE products.id = ?; 言う?と交換される'TB100'...第1および第2の両方のクエリは(...と言うまったく同じ結果を返します。1この会話のため)。最後のクエリは'TB100'期待どおりに返すかid、テーブルにない場合は何も返しません。 目的はid、テーブルにあるかどうかを把握することです。そうでない場合、プログラムは次にレコードを挿入します。そうである場合、プログラムはそれをスキップするか、この質問の範囲外の他のプログラムロジックに基づいてUPDATEクエリを実行します。 どちらが速く、オーバーヘッドが少ないですか?(これはプログラムの実行ごとに数万回繰り返され、1日に何度も実行されます)。 (M $提供のJDBCドライバーを介してJavaからM $ SQL Serverに対してこのクエリを実行)

2
Eloquent / Fluentを使用して単一のクエリから複数の行を挿入する方法
次のクエリがあります。 $query = UserSubject::where('user_id', Auth::id())->select('subject_id')->get(); 予想どおり、次の結果が得られます。 [{"user_id":8,"subject_id":9},{"user_id":8,"subject_id":2}] 上記の結果を別のテーブルにコピーして、テーブルが次のようになるようにする方法はありますか? ID|user_id|subject_id 1 |8 |9 2 |8 |2 私が抱えている問題は、$queryが任意の数の行を期待できるため、不明な数の行を反復処理する方法が不明であることです。
143 php  sql  laravel  eloquent 

10
MySQLの「between」節は含まれていませんか?
between句を使用してクエリを実行すると、終了値が除外されているようです。 例えば: select * from person where dob between '2011-01-01' and '2011-01-31' これによりdob、「2011-01-01」から「2011-01-30」までのすべての結果が取得されます。dob「2011-01-31」のレコードをスキップします。このクエリがこのように動作する理由、およびdob「2011-01-31」がどこにあるレコードを含めるように変更することができるかを誰かが説明できますか?(ユーザーが選択したため、終了日に1を追加しません。)
142 sql  mysql  between 


8
SQL Serverテーブルへの変更を確認しますか?
トリガーを使用したり、データベースの構造を変更したりせずに、SQL Serverデータベースでテーブルの変更を監視するにはどうすればよいですか?私が好むプログラミング環境は.NETとC#です。 SQL Server 2000 SP4以降をサポートできるようにしたいのですが。私のアプリケーションは、他社製品のボルトオンデータ視覚化です。私たちの顧客ベースは数千にのぼるので、すべてのインストールでサードパーティベンダーのテーブルを変更するという要件を課す必要はありません。 「表への変更」表データへのI平均変化、テーブル構造に変わりはありません。 結局のところ、変更をアプリケーションで定期的にトリガーするのではなく、変更を定期的にチェックする必要があります。 私の要件(トリガーやスキーマの変更なし、SQL Server 2000および2005)を考慮した場合の最善の行動BINARY_CHECKSUMは、T-SQLで関数を使用することです。私が実装する予定の方法はこれです: X秒ごとに次のクエリを実行します。 SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM sample_table WITH (NOLOCK); そして、それを保存された値と比較します。値が変更されている場合は、クエリを使用して行ごとにテーブルを調べます。 SELECT row_id, BINARY_CHECKSUM(*) FROM sample_table WITH (NOLOCK); そして、返されたチェックサムを保存された値と比較します。

4
テーブル追加列構文の変更
プログラムでID列をEmployeesテーブルに追加しようとしています。構文で何が間違っているのかわからない。 ALTER TABLE Employees ADD COLUMN EmployeeID int NOT NULL IDENTITY (1, 1) ALTER TABLE Employees ADD CONSTRAINT PK_Employees PRIMARY KEY CLUSTERED ( EmployeeID ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 何が悪いのですか?スクリプトをエクスポートしようとしましたが、SQL Mgmt Studioは一時テーブル全体の名前変更を行います。 更新:「キーワード 'COLUMN'の近くの構文が正しくありません。
142 sql  sql-server  tsql  ddl 

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