MySQL における単一テーブルと複数テーブル、およびビューと一時テーブルに対する Update と Select の違い

MySQL における単一テーブルと複数テーブル、およびビューと一時テーブルに対する Update と Select の違い

1. テーブルAのデータを使用してMySQLのテーブルBの内容を更新する

たとえば、データ テーブル内の一部の列属性を更新したいが、変更された属性の内容は chanpin テーブルから取得されます。選択キーワードはSQL言語には現れない

データ d、chanpin c を更新し、d.zhulei=c.zhulei、d.xiaolei=c.xiaolei、d.fenxiang=c.fenxiang、d.zhuanye=c.zhuanye、d.jiliang=c.jiliang、d.gs=c.zgs、d.xzgs=c.zgs、d.bjgs=(c.zgs*d.jdxs*d.jishu*d.xs1*d.xs2*d.xs3)、d.wygs=d.bjgs、d.hzgs=? と設定します。ここで、d.id=?、c.chanpin=?、c.fenlei=?";

2. MySQLでの更新と選択のテーブルは同じテーブルです

MySQL で少し面倒なのは、select from ステートメントの後に更新するテーブルの名前を続けることができないことです。たとえば、次のようになります。

TBCP_SELLER を更新し、ステータスを設定します =( TBCP_SELLER から STATUS を選択します。ここで、tbid は 2011645303 です)。ここで、tbid は 2011645303 です。

更新するテーブルの名前は、クエリするテーブルの名前と同じです。SQL を実行すると、エラー メッセージが表示されます: FROM 句で更新対象テーブル 'TBCP SELLER' を指定することはできません。
この問題に対処するには、次に示すように、ビューを構築し、ネストされた選択を使用してクエリと更新を実装します。

TBCP_SELLER を更新し、ステータスを設定します =( STATUS を選択 ( * を TBCP_SELLER から選択) として x where tbid=2011645303 ) where tbid=2011645303

上記の SQL では次の点に注意してください。

(TBCP_SELLERから*を選択)xとして

x は必須です。そうでない場合はエラーが報告されます: すべての派生テーブルには独自のエイリアスが必要です (すべての派生テーブルには独自のエイリアスが必要です)

3. 一時テーブルとビューの違い

一時テーブル

一時テーブルは、システムの一時フォルダに作成されるテーブルです。適切に使用すれば、通常のテーブルと同様にさまざまな操作が可能で、VFP 終了時に自動的に解放されます。 MySQL の一時テーブルの作成は簡単です。通常の CREATE TABLE ステートメントに TEMPORARY キーワードを追加します。SQL コード:

一時テーブル tmp_table を作成します (名前 VARCHAR(10) NOT NULL、値 INTEGER NOT NULL)

一時テーブル tmp_table を作成します (名前 VARCHAR(10) NOT NULL、値 INTEGER NOT NULL)

ビュー

ユーザーの視点から見ると、ビューはデータベース内のデータを特定の観点から見ることです。

データベース システムの観点から見ると、ビューは SELECT ステートメントで構成されるクエリによって定義される仮想テーブルです。

データベース システムの観点から見ると、ビューは 1 つ以上のテーブルのデータで構成されます。

データベース システムの外部から見ると、ビューはテーブルとまったく同じです。クエリ、挿入、変更、削除など、テーブルで実行できる一般的な操作はすべてビューに適用できます。

以下もご興味があるかもしれません:
  • MySQL 選択最適化ソリューションに関する簡単な説明
  • MySQL で結果を選択して更新を実行する例のチュートリアル
  • MySQLの読み書き分離により挿入後にデータが選択されなくなる問題を解決
  • MySQL SELECT文の実行方法
  • サブクエリ最適化における MySQL 選択の実装
  • MySQL 学習ノート: 完全な SELECT ステートメントの使用例と詳細な説明
  • MySQL の選択、挿入、更新バッチ操作ステートメントのコード例
  • MySQL SELECT実行順序の簡単な理解
  • 更新とデータ整合性処理のためのMySQLトランザクション選択の説明
  • MySQL セレクトキャッシュメカニズムの使用に関する詳細な説明
  • MySql データベースでの Select の使用法の概要
  • MySQLでSELECT文が実行される仕組み

<<:  Vue を使用してパブリック アカウントの Web ページを開発する方法

>>:  組み込み Linux 開発環境で ping と nfs を構築するためのソリューション

推薦する

Tomcat イメージをインストールして Docker に Web プロジェクトをデプロイする方法を簡単に説明します。

1. Tomcatをインストールする1. Docker HubでTomcatイメージを見つける d...

MySQL 中断された接続警告ログの分析

序文:場合によっては、MySQL に接続されたセッションが異常終了することが多く、エラー ログに「通...

ウェブページの読み込み速度を上げる25の方法とヒント

はじめに<br />誰もが高速インターネット接続にアクセスできるわけではありません。たと...

CSS scroll-snap スクロールイベント停止と要素位置検出の実装

1. スクロールスナップはフロントエンド開発者にとって必須のスキルですCSS スクロール スナップは...

動的なテーブル効果を実現するJavaScript

この記事では、動的なテーブル効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

フォント名に従ってフォントを呼び出すと、ブラウザに必要なフォントが表示されます。

質問 1: ブラウザに必要なフォントを表示するように指示するにはどうすればよいでしょうか? フォント...

Nginx の一般的な設定とテクニックの概要

序文この記事では、Nginx の一般的な、実用的で興味深い構成をいくつか紹介します。この記事を読んだ...

DockerはホストのMysql操作に接続します

今日、会社のプロジェクトでは docker を設定する必要があります。Windows に正常にインス...

Ubuntu 18.04 で apt-get ソースを変更する方法

apt-get を使用してインストールすると、非常に遅くなります。国内のソースを変更すると、この問題...

繰り返し送信、繰り返し更新、バックオフ防止に関する問題と解決策の分析

1つ。序文<br />この種の質問は、どの専門掲示板でも見かけます。Google で検索...

M1 ProチップでVueプロジェクトを開始する方法

目次導入Homebrewをインストールするnvmをインストールするノードをインストールするインストー...

いくつかの CSS3 タグの短縮形 (推奨)

border-radius: CSS3 丸い角構文: border-radius: 25px;楕円...

Oracle10パーティションとMySQLパーティションの違いの詳細な説明

一般的に使用される Oracle10g パーティションは、範囲 (範囲パーティション)、リスト (リ...

Reactスロットの使い方

目次必要コアアイデアReactでスロットを実装する2つの方法必要コンポーネントを自分で書きました。コ...

CSS3 でクールなスライス画像カルーセル効果を実現

今日は、CSS を使用してクールな画像カルーセル コンポーネントを作成する方法を学びます。その原理は...