序文 この記事には 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 の方法 (要約)
ハイパーリンクの下線を削除するには、スタイルシート CSS を使用する必要があります。当面は CSS...
不明な点があるときはいつでも、Blog Park にアクセスして、いつでも答えやインスピレーションを...
最近、毎日変更されるページを iframe を使用して呼び出す必要があるプロジェクトがあります。その...
背景会社のコードは第三者に提供され、利用されます。ソースコードが完全に漏洩しないようにするには、提供...
MySQL ロックの概要他のデータベースと比較すると、MySQL のロック メカニズムは比較的単純で...
カーソルの作成まず、MySql でデータ テーブルを作成します。 存在しない場合はテーブルを作成 `...
2011 年に最も顕著なウェブサイトの変更は、一連の製品に新しいユーザー インターフェースを導入した...
Dockerはmysqlをインストールします docker search mysql 検索 dock...
目次序文事前準備ディレクトリを作成するcustom.cnf を作成する証明書を作成するpxc クラス...
導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...
目次マインドマップシンプルな理解インデックスモデルの進化二分探索木自己バランス型二分木BツリーB+ ...
テーブル内の min-width と max-width プロパティの設定 <テーブル>...
プロファイルを使用して遅いSQLを分析するMySQL の SQL パフォーマンス アナライザーの主な...
目次1. リクエストを取得する: 2. 投稿リクエスト: 3. 拡張と補足Vue スキャフォールディ...
WSLとはBaidu 百科事典からの一節を引用します。 Windows Subsystem for ...