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

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

5
データベース全体で文字セット(およびコレクション)を変更するにはどうすればよいですか?
前のプログラマーがテーブル(Mysql)に間違った照合を設定しました。彼はUTF8であるはずのラテン照合でそれを設定しました、そして今私は問題を抱えています。中国語と日本文字のすべてのレコードは??? キャラクター。 照合順序を変更して、キャラクターの詳細を取得することはできますか?
172 mysql  sql  collation 

4
他のテーブルに存在しない行を選択してください
2つのpostgresqlテーブルがあります。 table name column names ----------- ------------------------ login_log ip | etc. ip_location ip | location | hostname | etc. にlogin_log行がないすべてのIPアドレスを取得したいip_location。 このクエリを試しましたが、構文エラーがスローされます。 SELECT login_log.ip FROM login_log WHERE NOT EXIST (SELECT ip_location.ip FROM ip_location WHERE login_log.ip = ip_location.ip) ERROR: syntax error at or near "SELECT" LINE 3: WHERE NOT EXIST (SELECT ip_location.ip` …

9
準備されたステートメントはSQLインジェクション攻撃からどのように保護できますか?
準備されたステートメントは、SQLインジェクション攻撃の防止にどのように役立ちますか? ウィキペディアは言う: 後で別のプロトコルを使用して送信されるパラメーター値を正しくエスケープする必要がないため、準備されたステートメントはSQLインジェクションに対して回復力があります。元のステートメントテンプレートが外部入力から派生していない場合、SQLインジェクションは発生しません。 その理由がよくわかりません。簡単な英語での簡単な説明といくつかの例は何でしょうか?

6
SQLまたはTSQLチューリングは完全ですか?
これは今日オフィスで思いついた。私はそのようなことをする予定はありませんが、理論的にはSQLでコンパイラを書くことができますか?一見したところ、多くの種類の問題にとって非常に厄介ですが、完全に対処しているように見えます。 それが完全に実現しない場合、それがそうなるには何が必要ですか? 注:SQLでコンパイラーを作成するようなことはしたくありません。ばかげたことであることはわかっているので、その議論を回避できればありがたいです。

12
タグ付けのためのデータベース設計
次のタグ付け機能をサポートするデータベースをどのように設計しますか? アイテムには多数のタグを付けることができます 特定のタグセットでタグ付けされたすべてのアイテムの検索は高速である必要があります(アイテムにはすべてのタグが必要であるため、OR検索ではなくAND検索です)。 アイテムの作成/書き込みは、迅速な検索/読み取りを可能にするために遅くなる可能性があります 理想的には、(少なくとも)n個の特定のタグのセットでタグ付けされたすべてのアイテムのルックアップは、単一のSQLステートメントを使用して実行する必要があります。検索するタグの数やアイテムのタグの数は不明であり、数が多い場合があるため、JOINを使用することは現実的ではありません。 何か案は? これまでのすべての答えをありがとう。 しかし、私が間違っていない場合、与えられた答えはタグでOR検索を行う方法を示しています。(1つ以上のnタグを持つすべてのアイテムを選択します)。効率的なAND検索を探しています。(すべてn個のタグを持つアイテムをすべて選択します。

10
変数としてのテーブル名
私はこのクエリを実行しようとしています: declare @tablename varchar(50) set @tablename = 'test' select * from @tablename これにより、次のエラーが発生します。 メッセージ1087、レベル16、状態1、行5 テーブル変数「@tablename」を宣言する必要があります。 テーブル名を動的に入力する正しい方法は何ですか?


15
SQL Serverで実行中の合計を計算する
次の表(と呼ばれるTestTable)を想像してみてください。 id somedate somevalue -- -------- --------- 45 01/Jan/09 3 23 08/Jan/09 5 12 02/Feb/09 0 77 14/Feb/09 7 39 20/Feb/09 34 33 02/Mar/09 6 次のように、日付順に実行合計を返すクエリが必要です。 id somedate somevalue runningtotal -- -------- --------- ------------ 45 01/Jan/09 3 3 23 08/Jan/09 5 8 12 02/Feb/09 0 8 77 14/Feb/09 7 15 …

17
親行を削除または更新できません:外部キー制約が失敗します
行うとき: DELETE FROM `jobs` WHERE `job_id` =1 LIMIT 1 エラー: #1451 - Cannot delete or update a parent row: a foreign key constraint fails (paymesomething.advertisers, CONSTRAINT advertisers_ibfk_1 FOREIGN KEY (advertiser_id) REFERENCES jobs (advertiser_id)) これが私のテーブルです: CREATE TABLE IF NOT EXISTS `advertisers` ( `advertiser_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT …
170 mysql  sql 

8
SQL WHERE ID IN(id1、id2、…、idn)
IDの大きなリストを取得するクエリを記述する必要があります。 多くのバックエンド(MySQL、Firebird、SQLServer、Oracle、PostgreSQLなど)をサポートしているため、標準SQLを作成する必要があります。 IDセットのサイズは大きくなる可能性があり、クエリはプログラムで生成されます。それで、最善のアプローチは何ですか? 1)INを使用してクエリを作成する SELECT * FROM TABLE WHERE ID IN (id1, id2, ..., idn) ここで私の質問です。nが非常に大きい場合はどうなりますか?また、パフォーマンスについてはどうですか? 2)ORを使用してクエリを記述する SELECT * FROM TABLE WHERE ID = id1 OR ID = id2 OR ... OR ID = idn このアプローチにはn制限はないと思いますが、nが非常に大きい場合のパフォーマンスはどうでしょうか? 3)プログラムによるソリューションの作成: foreach (var id in myIdList) { var item = GetItemByQuery("SELECT * FROM TABLE …
170 sql  select 

21
参加は怠惰な人のためですか?
私は最近、JOIN(SQL)は役に立たないと主張した別の開発者と話し合いました。これは技術的には真実ですが、ジョインを使用すると、コード(C#またはJava)で複数のリクエストとリンクテーブルを作成するよりも効率が悪いと付け加えました。 彼にとっての参加は、パフォーマンスを気にしない怠惰な人々のためのものです。これは本当ですか?結合の使用を避けるべきですか?
169 c#  java  sql  join 


10
Oracleの複数行の列値を連結するSQLクエリ
複数の行の列値を連結するSQLを構築することは可能でしょうか? 次に例を示します。 テーブルA PID あ B C 表B PID SEQ説明 A 1を持っている A 2いい 3日。 B 1よくできました。 C 1はい C 2できる C 3する C 4この作品! SQLの出力は- PID説明 A良い一日を。 Bよくできました。 Cはい、この作業を行うことができます! 基本的に、出力テーブルのDesc列は、テーブルBのSEQ値を連結したものですか? SQLに関するヘルプはありますか?

7
SQL OVER()句-いつ、なぜ役立つのですか?
USE AdventureWorks2008R2; GO SELECT SalesOrderID, ProductID, OrderQty ,SUM(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Total' ,AVG(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Avg' ,COUNT(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Count' ,MIN(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Min' ,MAX(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Max' FROM Sales.SalesOrderDetail WHERE SalesOrderID IN(43659,43664); その条項について読みましたが、なぜ必要なのかわかりません。関数Overは何をしますか?何をしPartitioning Byますか?なぜ書き込みでクエリを実行できないのGroup By SalesOrderIDですか?

5
OPTION(RECOMPILE)は常に高速です。どうして?
追加するという奇妙な状況に遭遇しました OPTION (RECOMPILE)クエリすると0.5秒で実行さしましたが、省略するとクエリに5分以上かかります。 これは、クエリがQuery AnalyzerまたはC#プログラムからを介して実行される場合SqlCommand.ExecuteReader()です。呼び出す(または呼び出さない)DBCC FREEPROCCACHEまたはDBCC dropcleanbuffers違いはありません。クエリ結果は常に瞬時に返されOPTION (RECOMPILE)、それがない場合は5分を超えます。クエリは常に[このテストのために]同じパラメータで呼び出されます。 SQL Server 2008を使用しています。 私はSQLの記述にはかなり慣れていますがOPTION、以前にクエリでコマンドを使用したことがなく、このフォーラムの投稿をスキャンするまではプランキャッシュの概念全体に精通していませんでした。投稿から私の理解は、それOPTION (RECOMPILE)は高価な操作です。それは明らかにクエリの新しいルックアップ戦略を作成します。それでは、なぜそれを省略した後続のクエリOPTION (RECOMPILE)が非常に遅いのですか?後続のクエリは、再コンパイルのヒントを含む以前の呼び出しで計算されたルックアップ戦略を利用するべきではありませんか? 呼び出しごとに再コンパイルのヒントを必要とするクエリがあるのは非常に珍しいことですか? エントリーレベルの質問で申し訳ありませんが、私は本当にこれの表裏を作ることができません。 更新:クエリの投稿を求められました... select acctNo,min(date) earliestDate from( select acctNo,tradeDate as date from datafeed_trans where feedid=@feedID and feedDate=@feedDate union select acctNo,feedDate as date from datafeed_money where feedid=@feedID and feedDate=@feedDate union select acctNo,feedDate as date from datafeed_jnl where …

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