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

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

19
テーブルをロックせずにALTER TABLE?
MySQLでALTER TABLEステートメントを実行すると、ステートメントの期間中、テーブル全体が読み取りロックされます(同時読み取りは許可されますが、同時書き込みは禁止されます)。大きなテーブルの場合、INSERTまたはUPDATEステートメントが長時間ブロックされる可能性があります。テーブルがプロセス全体でまだ更新可能であるような方法で列を追加するような「ホットオルター」を行う方法はありますか? ほとんどの場合、MySQLのソリューションに興味がありますが、MySQLで解決できない場合は、他のRDBMSにも興味があります。 明確にするために、私の目的は、追加のテーブル列を必要とする新機能が本番環境にプッシュされたときのダウンタイムを回避することです。すべてのデータベーススキーマは時間の経過とともに変化しますが、それは現実です。これらの変更が必然的にダウンタイムにつながることを受け入れる必要がある理由はわかりません。それはただ弱いです。
107 sql  mysql  ddl  alter-table 

12
SQL Serverは「無効な列名」を報告しますが、列は存在し、クエリはManagement Studioを通じて機能します
ちょっと行き詰まりました。一部のC#コードによって生成されたクエリがあります。クエリMicrosoft SQL Server Management Studioは、同じデータベースに対して実行すると正常に機能します。 しかし、私のコードが同じクエリを実行しようとすると、無効な列に関する同じエラーが発生し、例外がスローされます。この列を参照するすべてのクエリは失敗します。 問題の列は最近データベースに追加されました。という日付列Incident_Begin_Time_tsです。 失敗する例は次のとおりです。 select * from PerfDiag where Incident_Begin_Time_ts > '2010-01-01 00:00:00'; のような他のクエリSelect MAX(Incident_Being_Time_ts);も、列がないと判断するため、コードで実行すると失敗します。 何か案は?
107 sql  sql-server 

6
PostgreSQLのソートで固定数の行を削除するにはどうすればよいですか?
Наэтотвопросестьответына スタックオーバーフローнарусском:PostgreSQLのвDELETEиのLIMIT 私はいくつかの古いMySQLクエリをPostgreSQLに移植しようとしていますが、これに問題があります。 DELETE FROM logtable ORDER BY timestamp LIMIT 10; PostgreSQLでは、削除構文での順序付けや制限が許可されていません。また、テーブルに主キーがないため、サブクエリを使用できません。さらに、クエリが指定された数またはレコードを正確に削除するという動作を維持したいと思います。たとえば、テーブルに30行が含まれているが、それらすべてに同じタイムスタンプがある場合、重要ではありませんが、10を削除します。その10。 そう; PostgreSQLのソートで固定数の行を削除するにはどうすればよいですか? 編集:主キーがないということは、log_id列などがないことを意味します。ああ、レガシーシステムの喜び!
107 sql  postgresql 

14
JavaでSQL文字列を作成する最もクリーンな方法
データベース操作(更新、削除、挿入、選択など)を行うSQL文字列を構築したい-何百万もの「+」と引用符を使用したひどい文字列連結メソッドではなく、せいぜい読めない-そこでより良い方法でなければなりません。 私はMessageFormatを使用することを考えましたが、それはユーザーメッセージに使用されることになっていますが、妥当な仕事をすると思いますが、Java sqlライブラリのSQLタイプの操作にもっと整合したものがあるはずです。 Groovyは良いでしょうか?
107 java  sql  oracle  string 

12
SQL Server 2008の「WHERE」句内の「CASE」ステートメント
"WHERE"句内に "CASE"ステートメントを含むクエリを使用しています。しかし、SQL Server 2008では、実行中にいくつかのエラーが発生しています。誰かが正しいクエリで私を助けてくれますか?これがクエリです: SELECT tl.storenum 'Store #', co.ccnum 'FuelFirst Card #', co.dtentered 'Date Entered', CASE st.reasonid WHEN 1 THEN 'Active' WHEN 2 THEN 'Not Active' WHEN 0 THEN st.ccstatustypename ELSE 'Unknown' END 'Status', CASE st.ccstatustypename WHEN 'Active' THEN ' ' WHEN 'Not Active' THEN ' ' ELSE st.ccstatustypename END …
107 sql  sql-server  case 

6
MySQL-すべてのフィールドにインデックスを付けないのはなぜですか?
最近、インデックスの素晴らしさを学び、パフォーマンスが劇的に向上しました。しかし、私が学んだすべてのことを考えると、この質問に対する答えを見つけることができないようです。 インデックスは素晴らしいですが、なぜすべてのフィールドにインデックスを付けて、テーブルを信じられないほど高速にできないのでしょうか。これを行わないのには十分な理由があると思いますが、30フィールドテーブルの3つのフィールドはどうでしょうか。30フィールドで10?どこに線を引くべきか、そしてその理由は?
107 mysql  sql  indexing 

7
PostgreSQLのテーブルの行数をすばやく見つける方法
パーセンテージを計算するには、テーブルの行数を知る必要があります。総数が事前定義された定数よりも大きい場合は、定数値を使用します。それ以外の場合は、実際の行数を使用します。 使用できますSELECT count(*) FROM table。しかし、私の定数値がある場合は500,000と私が持っている5,000,000,000多くの時間を無駄になるすべての行を数え、私のテーブルの行を。 私の定数値を超えるとすぐにカウントを停止することはできますか? 特定の制限を下回っている場合にのみ、正確な行数が必要です。それ以外の場合、カウントが制限を超えている場合は、代わりに制限値を使用して、できるだけ早く答えを求めます。 このようなもの: SELECT text,count(*), percentual_calculus() FROM token GROUP BY text ORDER BY count DESC;
107 sql  postgresql  count  row 

3
SQL Serverでの奇妙な操作の問題:-100 / -100 * 10 = 0
実行するSELECT -100/-100*10と結果はになり0ます。 実行するSELECT (-100/-100)*10と結果はになり10ます。 実行するSELECT -100/(-100*10)と結果はになり0ます。 実行するSELECT 100/100*10と結果はになり10ます。 BOLの状態: 式内の2つの演算子の優先順位が同じ場合、それらは式内での位置に基づいて左から右に評価されます。 そして Level Operators 1 ~ (Bitwise NOT) 2 * (Multiplication), / (Division), % (Modulus) 3 + (Positive), - (Negative), + (Addition), + (Concatenation), - (Subtraction), & (Bitwise AND), ^ (Bitwise Exclusive OR), | (Bitwise OR) BOLは間違っていますか、それとも何か不足していますか?そうです-(予想される)の優先順位をオフに投げています。

2
SQL Server 2008データベースを強制的にオフラインにする方法
何を使用しているか、すでに誰が使用しているかに関係なく、データベースを強制的にオフラインにするにはどうすればよいですか? 私は試した: ALTER DATABASE database-name SET OFFLINE; しかし、7分経過してもまだぶら下がっています。 これは、シナリオをテストする必要があるためです。 それさえ可能なら?

2
PostgreSQLの関数内でSELECTの結果を返す方法は?
私はPostgreSQLにこの関数を持っていますが、クエリの結果を返す方法がわかりません。 CREATE OR REPLACE FUNCTION wordFrequency(maxTokens INTEGER) RETURNS SETOF RECORD AS $$ BEGIN SELECT text, count(*), 100 / maxTokens * count(*) FROM ( SELECT text FROM token WHERE chartype = 'ALPHABETIC' LIMIT maxTokens ) as tokens GROUP BY text ORDER BY count DESC END $$ LANGUAGE plpgsql; しかし、PostgreSQL関数内でクエリの結果を返す方法がわかりません。 戻り値の型はであることがわかりましたSETOF RECORDよね?しかし、returnコマンドは正しくありません。 …

15
Javaプログラミング-SQLステートメントの保存場所 [閉まっている]
休業。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 この質問を改善する JDBC準拠のアプリケーションは、SQLステートメントをどこに保存する必要がありますか。その理由は何ですか。 これまでのところ、これらのオプションを特定することができました。 ビジネスオブジェクトにハードコーディング SQLJ句に埋め込まれる データアクセスオブジェクトなどの個別のクラスにカプセル化する メタデータ駆動型(オブジェクトスキーマをデータスキーマから分離-メタデータでのそれらの間のマッピングを記述) 外部ファイル(プロパティやリソースファイルなど) ストアドプロシージャ それぞれの「長所」と「短所」は何ですか? SQLコードは「コード」または「メタデータ」と見なす必要がありますか? ストアドプロシージャは、パフォーマンスの最適化のみに使用すべきですか、それともデータベース構造の正当な抽象化ですか? 決定はパフォーマンスが重要な要素ですか?ベンダーロックインについてはどうですか? 何がより良い–疎結合または密結合とその理由? 編集:回答ありがとうございます–要約は次のとおりです: メタデータ駆動型、つまりオブジェクトリレーショナルマッピング(ORM) 長所: 非常に抽象的-モデルを変更せずにDBサーバーを切り替えることができます 広範囲-実際には標準 必要なSQLの量を削減 SQLをリソースファイルに格納できます パフォーマンスは(通常)許容範囲です メタデータ主導のアプローチ (データベース)ベンダー非依存 短所: SQLと真の開発者の意図を隠す SQLはDBAによるレビュー/変更が困難 SQLはまだ奇妙なケースで必要になるかもしれません HQLなどの独自のクエリ言語を強制的に使用できます 最適化に向いていない(抽象化) 参照整合性に欠ける SQLの知識不足またはDBでのコーディングの注意不足の代替 ネイティブデータベースのパフォーマンスに決して一致しない(たとえ近づいても) モデルコードはデータベースモデルと非常に緊密に結合されています DAOレイヤーにハードコード/カプセル化 長所: SQLはデータにアクセスするオブジェクトに保持されます(カプセル化) SQLは書きやすい(開発速度) SQLは、変更が必要なときに簡単に追跡できます シンプルなソリューション(乱雑なアーキテクチャなし) 短所: SQLはDBAがレビュー/変更することはできません SQLはDB固有になる可能性が高い SQLは保守が困難になる可能性があります ストアドプロシージャ 長所: データベースに保持されているSQL(データに近い) …
106 java  sql 


5
最新の日付で行を選択するSQL
次のクエリと結果を使用して、ChargeIdとChargeTypeが一意である最新のエントリを探しています。 select chargeId, chargeType, serviceMonth from invoice CHARGEID CHARGETYPE SERVICEMONTH 1 101 R 8/1/2008 2 161 N 2/1/2008 3 101 R 2/1/2008 4 101 R 3/1/2008 5 101 R 4/1/2008 6 101 R 5/1/2008 7 101 R 6/1/2008 8 101 R 7/1/2008 望ましい: CHARGEID CHARGETYPE SERVICEMONTH 1 101 R 8/1/2008 …
106 sql  oracle 

4
列数が異なる2つのテーブルを結合する
2つのテーブルがあります(テーブルAとテーブルB)。 これらの列の数は異なります-テーブルAにもっと列があるとしましょう。 これら2つのテーブルを結合して、テーブルBにない列に対してnullを取得するにはどうすればよいですか?
106 sql  mysql 


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