序文 この記事には 1. データベースのいくつかの主要な制約 制約: 主キー制約: 機能: データの妥当性と整合性を保証するために、MySQL でよく使用される制約: 主キー制約 (主キー)、一意制約 (一意)、空でない制約 (NULL ではない)、外部キー制約 (外部キー) 主キー制約: 変更されたフィールドは一意であり、空ではありません。注: テーブルには主キーを 1 つだけ設定できますが、複数のフィールドを含めることができます。方法 1: テーブルの作成時に制約を追加します。形式: フィールド名 フィールド タイプ 主キー 方法 2: テーブルの作成時に制約領域に制約を追加します。すべてのフィールドが宣言されたら、制約領域になります。形式: 主キー (フィールド 1、フィールド 2) テーブルpk01を作成します( id int、 ユーザー名varchar(20)、 主キー (ID) ); insert into pk01 values(1,'tom');-- 成功 insert into pk01 values(1,'tom');-- 失敗 キー 'PRIMARY' のエントリ '1' が重複しています insert into pk01 values(null,'tom');-- 失敗 列 'id' は null にできません テーブルpk01を作成します( id int 主キー、 ユーザー名varchar(20)、 主キー (ID) );-- エラー テーブルには主キーを 1 つしか持てません 方法3: テーブルを作成した後、テーブル構造を変更して制約を追加します。create table pk02( id int、 ユーザー名varchar(20) ); alter table pk02 主キーを追加します (フィールド名 1、フィールド名 2..) テーブル pk02 を変更し、主キー (id、username) を追加します。 insert into pk02 values(1,'tom');-- 成功 insert into pk02 values(1,'tomcat');-- 成功 insert into pk02 values(1,'tomcat');-- 失敗 ユニーク制約 変更されたフィールドは一意であり、nullでは機能しません。方法1: テーブルの作成時に制約を追加します。形式: フィールド名 フィールドタイプ 一意 テーブルを作成 un( id int ユニーク、 ユーザー名 varchar(20) 一意 ); insert into un value(10,'tom');-- 成功 insert into un value(10,'jack');-- エラー キー 'id' のエントリ '10' が重複しています un value(null,'jack') に挿入します。-- 成功 un value(null,'rose') に挿入します。-- 成功 方法 2: テーブルの作成時に制約領域に制約を追加します。すべてのフィールドが宣言された後、制約領域は一意になります (フィールド 1、フィールド値 2...) 方法 3: テーブルを作成した後、テーブル構造を変更して制約を追加します。 alter table table name add unique (field 1, field 2); -- ジョイントユニークを追加しました。 alter table table name add unique (field 1); -- 1 つにユニークを追加しました。 alter table table name add unique (field 2); -- 別のものにユニークを追加しました。 //////////////// テーブルun01を作成( id int、 ユーザー名varchar(20) ); テーブル un01 を変更し、unique(id,username) を追加します。 insert into un01 values(1,'tom');-- 成功 insert into un01 values(1,'jack');-- 成功 insert into un01 values(1,'tom');-- 失敗 キー 'id' のエントリ '1-tom' が重複しています 非 Null 制約 機能: 変更されたフィールドは空ではありません。方法: テーブルnnを作成( id int が null ではない、 ユーザー名varchar(20)がnullでない ); insert into nn values(null,'tom');-- エラー列 'id' は null にできません ケース1 1対多 – ユーザーテーブルを作成する テーブルユーザーを作成( id int 主キー auto_increment, ユーザー名varchar(20) ); -- 注文テーブルを作成する create table orders( id int 主キー auto_increment, 合計価格2倍、 ユーザーID int ); データの有効性と整合性を確保するには、制約 (外部キー制約) を追加します。 形式: 例えば: 外部キー制約を追加すると、次の機能が利用できるようになります。
開発における 1 対多の処理: ケース 2 1対多 – ユーザーテーブルの作成 -- 製品テーブルを作成する create table product( id int 主キー auto_increment, 名前varchar(20), 価格2倍 ); -- 中間テーブルを作成する create table orderitem( oid int、 pid 整数 ); – 外部キー制約を追加する 開発における多対多の処理: ケース3 - 複数テーブルクエリ デカルト積: 複数のテーブルの無条件の結合クエリ。意味がありません。 select a.*,b.* from a,b; 内部結合 形式 1: 明示的な内部結合 select a.*,b.* from a [inner] join b on ab join condition 形式 2: 暗黙的な内部結合 select a.*,b.* from a,b where ab join condition 外部結合 左外部結合: 結合条件で左[外部]結合bからa.*,b.*を選択します。 平均: まず、結合の左側のテーブル (a) のすべてのデータを表示し、次に結合の右側のテーブル (b) を条件に基づいてクエリします。条件が満たされている場合は表示します。満たされていない場合は、null 値として表示します。 右外部結合: b から a.*,b.* を右 [外側] から選択し、接続条件で a を結合します。 平均: まず結合の右側のテーブル (a) のすべてのデータを表示し、次に結合の左側のテーブル (b) を条件に基づいてクエリします。条件が満たされている場合はデータが表示され、そうでない場合は null 値として表示されます。 サブクエリ: 1 つのクエリは別のクエリに依存します。 以上が、私がご紹介したMySQLの基本操作の詳細な説明です。お役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信させていただきます。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
>>: Linux で圧縮ファイルの内容を表示する 10 の方法 (要約)
この記事では、docker pull がリセットされる問題を解決する方法を紹介し、皆さんと共有します...
この記事では、centos7 環境でバイナリ インストール パッケージを使用して mysql5.6 ...
Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コン...
準備のメリットPrepare SQL が生成される理由。まず、MySQL サーバー上で SQL を実...
前回の記事では、nginx がリクエスト ラインのデータを読み取って、リクエスト ラインを解析する方...
この記事では、ビュー、トランザクション、インデックス、自己接続、ユーザー管理など、MySQL データ...
目次COUNT 関数は何をするのですか? MyISAMの「魔法」シンプルなCOUNT最適化近似値を使...
この記事では、VUEの具体的なコードを共有して、下部吸引ボタンを実装する例を紹介します。具体的な内容...
よく食べて十分に休息を取るというのは簡単なことのように思えますが、実際に実行するのはそれほど簡単では...
PHP のコンパイル時に -enable-gd-jis-conv オプションを追加することで発生する...
1. マスタースレーブレプリケーションとは何ですか?マスター データベースの DDL および DML...
コンピュータ ルームのサーバー上の mysql がしばらく実行されていたのですが、突然、再起動しても...
最近、プロジェクトに取り組んでいるときに、Web ページ上のキーワードを強調表示する機能に遭遇しまし...
Dockerfile の紹介Docker は、Dockerfile の内容を読み取ってイメージを自動...
html ¶ <html></html> html:xml ¶ <ht...