序文 この記事には 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 の方法 (要約)
目次序文React Context の初見コンテキストの使い方コンテキストを直接取得できるいくつかの...
目次1. 背景建築問題現象2. 分析プロセス接続プール不安に陥る雲を晴らして光を見よう3. 解決策I...
目次1. コンポーネントでの使用2. オプションのマージ要約する1. コンポーネントでの使用Mixi...
マスターするには: localStorage、コンポーネントのカプセル化えーと、GIF に変換したビ...
この記事の例では、vue3 が独自のページングコンポーネントをカプセル化する具体的なコードを参考まで...
1 効果デモアドレス: https://www.albertyy.com/2020/7/check...
位置の 4 つのプロパティ値は次のとおりです。 1.相対的な2.絶対3.修正4.静的これら 4 つの...
導入MySQL スロー クエリ ログは、問題のある SQL ステートメントのトラブルシューティングや...
目次計算結果を初期化する依存関係の収集アップデートを配布する総括するこの記事では、計算された初期化と...
最新バージョンのMySQL 8.0.11をインストールした後、ユーザーを作成して認証します。認証され...
Ubuntu 18.04の場合1. sudo apt install python 。コマンドライン...
インターネット経済の継続的な発展に伴い、インターネット上の専門ウェブサイト、公共サービスウェブサイト...
Zabbix カスタム スクリプトを使用して監視データを収集する場合、通常、次の問題が発生します。サ...
目次序文変換関係具体的な実装file2DataUrl(ファイル、コールバック) file2Image...
MySQLの概要MySQL はリレーショナル データベース管理システムです。データベースは構造化され...