SQL (Structured Query Language) ステートメント、つまり構造化クエリ言語は、リレーショナル データベースを操作および検索するための標準言語です。 SQL ステートメントは一般に次のカテゴリに分類されます。
注: SQL ステートメントでは大文字と小文字が区別されないため、create と CREATE は同じです。 1. DCLステートメント DCL ステートメントは、ユーザー権限の承認と取り消しに使用されます。さまざまなユーザーの権限を制御し、データベースのセキュリティを強化し、データベースのメンテナンスを実行できます。通常、データベース管理者はスーパーユーザー root を使用して操作を実行します。 MySQL の権限付与コマンドは grant で、権限取り消しコマンドは revoke です。 1. 許可書の形式: library.table の権限リストを、"password" で識別される username@'ip' に付与します。 2. 権限を取り消す形式: library.table の権限リストを username@'ip' から取り消します。 2. DDLステートメント データベース オブジェクト: テーブル、データ ディクショナリ、制約、ビュー、インデックス、関数、ストアド プロシージャ、トリガー CREATE、ALTER、および DELETE キーワードは、それぞれデータベース オブジェクトの作成、変更、および削除に使用されます。ここでは、テーブルに対する最も一般的な操作を例として使用します。
1.作成:
例えば CREATE TABLEテスト( StuId VARCHAR(8) 主キー、 StuName VARCHAR(30) NOT NULL、 StuAge SMALLINT NOT NULL、 StuBirth 日時 ); 注: テーブル構造を表示します: DESCRIBE テーブル名; 2.変更: 1) 列を追加します。
例えば ALTER TABLE テスト 列 StuMajor を追加します。VARCHAR(20) NOT NULL AFTER StuName; 2) 列を変更する
例えば ALTER TABLE test CHANGE StuBirth 誕生日年を変更します。 3) 列を削除する
例えば ALTER TABLE テストで列 StuMajor を削除します。 4) テーブル名を変更する
例えば テーブル test を変更して、名前を student に変更します。 3.ドロップ
例えば DROP TABLE 学生; 4.切り捨て
例えば TRUNCATE TABLE 学生; 3. DMLステートメント 1. 挿入
例えば 学生に VALUES('001','Lisa',20,1997),('002','Rose',21,1996) を挿入します。 2.更新
たとえば、20 歳以上のすべての学生の年齢に 1 を加算します。 学生を更新します。SET StuAge = StuAge+1 WHERE StuAge>20; 3.削除
例: 1997年生まれの学生情報をすべて削除する 誕生日が 1997 である学生から削除します。 4. クエリステートメント 1. 単一テーブルクエリ: 列1、列2を選択... データソースから[WHERE条件] [GROUP BY 列名] [ORDER BY 列名 DESC|ASC] たとえば、コンピューターサイエンスを専攻する学生を選択し、学生 ID の降順で並べ替えて、学生名のみを表示します。 学生からStuNameを選択 StuMajor = 'CS'の場合 ORDER BY StuId DESC; 2. 複数テーブルクエリ: 1) 単純な外部結合方式 VALUE1[,VALUE2]を選択します... テーブル名1、テーブル名2から ここで、tableName1.column1 = tableName2.column2[AND ...]; WHEREの後に接続条件とクエリ条件が続きます 2) 自己とのつながり: 時には自分自身とつながることが必要であり、これを自己とのつながりと呼びます。 例えば 次の表があります テーブルempを作成します( id INT AUTO_INCRETMENT 主キー、 名前 VARCAHR(255)、 マネージャーID INT、 FOREIGN KEY(managerId) は temp(id) を参照します ); 記録は4つあります
テーブルをクエリします: SELECT employee.id、employee.name 従業員名、manager.name マネージャー名 FROM emp employee、emp manager ここで、 employee.managerId = manager.id; このクエリは、自己結合を使用して従業員と管理者の関係を表示します。
5. トランザクション処理 1. トランザクションは、1 つまたは複数のデータベース操作シーケンスで構成される論理実行単位です。 この一連の操作は、完全に実行するか、完全に中止する必要があります。プログラムとトランザクションはまったく異なる概念です。一般的に、プログラムには複数のトランザクションが含まれる場合があります。 MySQL には複数のエンジンがあり、最もよく使用される 2 つのエンジンは InnoDB と MyISAM です。InnoDB はトランザクションをサポートしますが、MyISAM はサポートしません。これらは config 構成ファイルで変更できます。 2. 取引の4つの特徴:
これら4つの特性はACID特性とも呼ばれます 3. データベース トランザクションは、DML ステートメント、DDL ステートメント、および DCL ステートメントのセットで構成されます。
4. 取引の提出:
MySQL はデフォルトでトランザクション (自動コミット) をオフにします。デフォルトでは、ユーザーが DML ステートメントを入力すると、操作がコミットされます。トランザクションをオンにするには、次のステートメントで自動コミットを設定できます。 SET AUTOCOMMIT = {0|1} 0 は自動コミットをオフにする(トランザクションを開く)、1 は自動コミットをオンにする(トランザクションを閉じる) 5. トランザクションのロールバック トランザクションに含まれるデータベース操作が失敗した場合、トランザクションはロールバックされ、トランザクション内のすべての操作は無効になります。 2つの方法:
6. 例: 一時的にトランザクションを開始するだけの場合は、start transaction または begin を使用して一時的なトランザクションを開始できます。その後の DML ステートメントは、トランザクションがコミットまたはロールバックされるまですぐには実行されません。 例1 始める; 学生にVALUES(NULL,'001','aaa')を挿入します。 学生にVALUES(NULL,'002','bbb')を挿入します。 学生にVALUES(NULL,'003','ccc')を挿入します。 学生から*を選択; ① ロールバック; 学生から*を選択; ② ① クエリステートメントの結果には、挿入されたデータが含まれます。ただし、この時点で別のコマンドラインウィンドウでステートメントを実行すると、上記の 3 つのデータは表示されません。これは、トランザクションの分離を反映しています。これらの 3 つのデータは、実際には物理データベースに書き込まれません。 ロールバック操作が実行されると、begin以降の3つのデータはクエリステートメントの結果に表示されなくなります② 例2 学生にVALUES(NULL,'001','aaa')を挿入します。 学生にVALUES(NULL,'002','bbb')を挿入します。 セーブポイント p; 学生にVALUES(NULL,'003','ccc')を挿入します。 学生から*を選択; ① p にロールバックします。 学生から*を選択; ② MySQLでは中間点を設定するためのキーワードSAVEPOINTも用意されており、これを使ってロールバック位置を設定することができます。①のクエリ文の結果には3つの挿入データの結果が含まれていますが、②のクエリ結果には中間点p以降に挿入されたデータは含まれていません。中間点へのロールバックではトランザクションは終了しないことに注意してください。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: React における同期および非同期 setState の問題のコード分析
>>: CentOS 8/RHEL 8 に Cockpit をインストールして使用する方法
1. 関連する技術的なポイントバイト版ヴュー3 ts統合ルーティングvuexを統合するAxiosを統...
解決プロセス:方法1: CentOS7.3 のデフォルトのカーネル バージョンは低く、3.10.0-...
Tomcat テストで 404 問題が発生します。問題は次のとおりです。 HTTP ステータス 40...
必要:あるフィールドの同一項目を結合し、別の時間フィールドで並べ替えます。例:初めに テーブルから都...
目次1. 接続制御プラグイン(connection_control)の紹介1.1 connectio...
目次1. ダウンロード2. 展開1.Nginxのデプロイメント2. ModSecurityの展開3....
図書館管理ライブラリを作成する データベースを作成します [存在しない場合] ライブラリ名;ライブラ...
おそらく、この記事にこのようなタイトルを付けると、誰かがこう尋ねるでしょう。「なぜまだテーブルに注目...
背景色と透明度の設定上記のように、最初の画像の場合は、灰色の背景と左上隅に白い「カバー」という文字を...
解決 関数 mergeImgs(リスト) { const imgDom = document.cre...
目次1. はじめに2. Viteプロジェクトを作成する1. viteをインストールする2. プロジェ...
目次TomcatをインストールするTomcat 圧縮パッケージをダウンロードTomcatには3つの主...
HTTPとは何ですか?ウェブサイトを閲覧したいときは、ブラウザのアドレス バーにウェブサイトのアド...
Baidu には slot-scope に関する記事が既にたくさんありますが、以前よく学習しておら...
この記事では、例を使用して MySQL ビューの機能と使用方法を説明します。ご参考までに、詳細は以下...