MySQL の最適化 - 追加、削除、変更の具体的な分析 (図)
MySQL の最適化 - 追加、削除、および変更の具体的な分析 (図)
Insert
複数行のクエリ結果をテーブルに挿入します
構文
INSERT INTO table_name1(column_list1) SELECT (column_list2) FROM table_name2 WHERE (condition)
table_name1 は挿入されるテーブルを指定します; column_list1 は、テーブルにデータを挿入するテーブルを指定します; table_name2 は、挿入されたデータのクエリ元のテーブルを指定します; このリストには、同じ数のフィールドが必要です。 ;
condition は、column_list1 リストと同じデータ型です
SELECT ステートメントのクエリ条件を指定します
person_old テーブルのすべてのレコードをクエリし、それらを person テーブルに挿入します
CREATE TABLE person ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, NAME CHAR(40) NOT NULL DEFAULT '', age INT NOT NULL DEFAULT 0, info CHAR(50) NULL, PRIMARY KEY (id) ) CREATE TABLE person_old ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, NAME CHAR(40) NOT NULL DEFAULT '', age INT NOT NULL DEFAULT 0, info CHAR(50) NULL, PRIMARY KEY (id) ) INSERT INTO person_old VALUES (11,'Harry',20,'student'),(12,'Beckham',31,'police') SELECT * FROM person_old
レコードが次であることがわかります。正常に挿入され、person_old テーブルには 2 つのレコードが追加されました。次に、person_oldperson_old テーブル内のすべてのレコードを person テーブルに挿入します
INSERT INTO person(id,NAME,age,info) SELECT id,NAME,age,info FROM person_old; SELECT * FROM person
ここで、id フィールドが自動インクリメントされた主キーであることがわかります。挿入時に値を確認する必要があります。よくわからない場合は、挿入時にフィールドを無視できます。
他のフィールドの値のみを挿入します。
再度実行するとエラーが発生します
MYSQL と SQLSERVER の違い:
違い 1
インポートされるデータに重複する値がある場合、MYSQL には 3 つのオプションがあります
オプション 1:ignore キーワードを使用します
オプション 2: replace into を使用します
オプション 3: ON DUPLICATE KEY UPDATE
2 番目と 3 番目のオプションは、より複雑で要件を満たしていないため、ここでは紹介しません。ここでは最初のオプションについてのみ説明します
TRUNCATE TABLE person TRUNCATE TABLE persona_old INSERT INTO person_old VALUES (11,'Harry',20,'student'),(12,'Beckham',31,'police') ##注意下面这条insert语句是没有ignore关键字的 INSERT INTO person(id,NAME,age,info) SELECT id,NAME,age,info FROM person_old; INSERT INTO person_old VALUES (13,'kay',26,'student') ##注意下面这条insert语句是有ignore关键字的 INSERT IGNORE INTO person(id,NAME,age,info) SELECT id,NAME,age,info FROM person_old;
。
挿入が成功したことがわかります
SQLSERVER
SQLSERVER側で、重複キーを無視するには、WITH (IGNORE_DUP_KEY=ON)を指定する必要がありますオン [PRIMARY]
そのため、重複する値を挿入すると、SQLSERVER はその値を一度保持し、重複する値が 2 回目に見つかった場合、SQLSERVER はそれを無視します違い2
自動インクリメント列を挿入する場合の違い
SQLSERVERはSETを使用する必要がありますIDENTITY_INSERTテーブル名ONは自動インクリメントフィールドの値をテーブルに挿入できます。 SET IDENTITY_INSERT テーブル名 ON
を追加しない場合、テーブル値にデータを挿入するときに自動インクリメント フィールドの値を指定できず、SQLSERVER は自動的に値を追加できません。あなたのためINSERTINTO person(NAME,age,info) VALUES ('feicy',33,'student')
ID フィールドの値を NULL として指定することができ、MYSQL が自動的に ID フィールドを追加します
INSERTINTO person(id,NAME,age,info) VALUES (NULL,'feicy',33,'student')
値を指定することもできます
INSERT IGNORE INTO person(id,NAME,age,info) VALUES (16,'tom',88,'student')
または id の値を書き込むことはできません。MYSQL が自動的に追加します
INSERT IGNORE INTO person(NAME,age,info) VALUES ('amy',12,'bb')
id フィールドの値を指定するかどうかを指定するときは、現在の id フィールドの列に挿入する値がない限り、つまり重複する値がない限り、自由度は非常に高くなります。指定する必要はありません
オプション
違い 3
一意のインデックスでの NULL 値の重複の問題MYSQL
MYSQL では、NULL フィールドに対して UNIQUE インデックスが失敗します
insert into test(a) values(null) insert into test(a) values(null)
上記の挿入ステートメントは繰り返し挿入できます (ジョイントユニークインデックスについても同様です)
SQLSERVER
SQLSERVER が機能しません
CREATE TABLE person ( id INT NOT NULL IDENTITY(1,1), NAME CHAR(40) NULL DEFAULT '', age INT NOT NULL DEFAULT 0, info CHAR(50) NULL, PRIMARY KEY (id) ) CREATE UNIQUE INDEX IX_person_unique ON [dbo].[person](name) INSERT INTO [dbo].[person] ( [NAME], [age], [info] ) VALUES ( NULL, -- NAME - char(40) 1, -- age - int 'aa' -- info - char(50) ), ( NULL, -- NAME - char(40) 2, -- age - int 'bb' -- info - char(50) )
消息 2601,级别 14,状态 1,第 1 行 不能在具有唯一索引“IX_person_unique”的对象“dbo.person”中插入重复键的行。重复键值为 (<NULL>)。 语句已终止。
Update は比較的簡単なので、これ以上は言いませんりー
删除
删除person表中一定范围的数据
DELETE FROM person WHERE id BETWEEN 14 AND 17 SELECT * FROM person
如果要删除表的所有记录可以使用下面的两种方法
##方法一 DELETE FROM person ##方法二 TRUNCATE TABLE person
跟SQLSERVER一样,TRUNCATE TABLE会比DELETE FROM TABLE 快
MYISAM引擎下的测试结果,30行记录
跟SQLSERVER一样,执行完TRUNCATE TABLE后,自增字段重新从一开始。
################################ INSERT IGNORE INTO person(id,NAME,age,info) SELECT id,NAME,age,info FROM person_old; SELECT * FROM person TRUNCATE TABLE person INSERT IGNORE INTO person(NAME,age,info) VALUES ('amy',12,'bb') SELECT * FROM person
当你刚刚truncate了表之后执行下面语句就会看到重新从一开始
SHOW TABLE STATUS LIKE 'person'
以上がMySQL の最適化 - 追加、削除、変更の具体的な分析 (図)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

MySQLをエレガントにインストールするための鍵は、公式のMySQLリポジトリを追加することです。特定の手順は次のとおりです。MYSQLの公式GPGキーをダウンロードして、フィッシング攻撃を防ぎます。 mysqlリポジトリファイルを追加:rpm -uvh https://dev.mysql.com/get/mysql80-community-rease-el7-3.noarch.rpm update yumリポジトリキャッシュ:yumアップデートインストールmysql:yumインストールmysql-server startup mysql sportin
