序文 この記事には 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 の方法 (要約)
1つ。 Nexus プライベート サーバーを構築する理由は何ですか?社内の開発メンバーは全員外部ネッ...
まず、データベース パーティショニングとは何でしょうか?以前、MySQL のテーブル パーティショニ...
Vue親コンポーネントは子コンポーネントの関数を呼び出す親コンポーネントはイベントを通じて子コンポー...
前回の記事でMySQLサービスが起動しない問題が解決したと分かった後、パスワードなしでrootユーザ...
追加説明、外部キー: 外部キーを使用しないでください。すべての外部キーの概念はアプリケーション層で解...
通常、Linux プログラムを開発する場合、次の 2 つのオプションがあります。 Linux上で直接...
目次序文環境インストールMySQLコンテナを作成して起動する落とし穴を避けるための注意MySQLコン...
リッチ テキスト コンポーネントは、Web プログラムで、特にブログやフォーラムなどの Web サイ...
Unix/Linux サービスsystemd サービス操作プロセス1. JDKがインストールされたC...
デモを作成するときにこのプラグインを使用していくつか問題が発生したため、プラグインの使用方法といくつ...
1. instanceofの使用法instanceof演算子は、コンストラクター関数のprototy...
VirtualBox は、技術者が異なる種類の複数の仮想マシン (VM) を同時に実行できるようにす...
コードをコピーコードは次のとおりです。 <iframe src="1.htm&quo...
方法1: CSSオーバーフロー省略を使用して解決する解決策は次のとおりです。 CSSコード: ディス...
vue と vue-router の紹介 <script src="https://...