図書館管理 ライブラリを作成する データベースを作成します [存在しない場合] ライブラリ名; ライブラリを削除する データベースを削除する [存在する場合] ライブラリ名; データベースを構築するための一般的な記述方法 古いデータベース名が存在する場合はデータベースを削除します。 データベースを作成します。新しいデータベース名。 例 mysql> 'javacode2018' のようなデータベースを表示します。 +-------------------------+ | データベース (javacode2018) | +-------------------------+ |javacode2018| +-------------------------+ セット内の 1 行 (0.00 秒) mysql> 存在する場合はデータベースを削除します javacode2018; クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql> 'javacode2018' のようなデータベースを表示します。 空のセット (0.00 秒) mysql> データベース javacode2018 を作成します。 クエリは正常、1 行が影響を受けました (0.00 秒) show databases like 'javacode2018'; は javacode2018 ライブラリ情報を一覧表示します。 テーブル管理 テーブルを作成 テーブルテーブル名を作成( フィールド名 1 タイプ [(幅)] [制約] [コメント 'フィールドの説明'], フィールド名2タイプ[(幅)] [制約] [コメント'フィールドの説明']、 フィールド名 3 タイプ [(幅)] [制約] [コメント 'フィールドの説明'] )[テーブルの一部の設定] 知らせ:
制約の説明 nullではない: フィールドが空であってはならないことを示します mysql> テーブル test1 を作成します (a int not null コメント 'フィールド a'); クエリは正常、影響を受けた行は 0 行 (0.01 秒) mysql> test1 に値 (null) を挿入します。 エラー 1048 (23000): 列 'a' は null にできません mysql> test1 に値を挿入します (1); クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test1 から * を選択します。 +---+ | ア | +---+ | 1 | +---+ セット内の 1 行 (0.00 秒) **デフォルト値:** このフィールドのデフォルト値を設定します。デフォルト値は value です。 mysql> テーブルを削除します IF EXISTS test2; クエリは正常、影響を受けた行は 0 行 (0.01 秒) mysql> テーブル test2( を作成します。 -> int 非 null コメント 'フィールド a'、 -> b int 非 null デフォルト 0 コメント 'フィールド b' -> ); クエリは正常、影響を受けた行は 0 行 (0.02 秒) mysql> test2(a) に値を挿入します (1); クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test2 から * を選択します。 +---+---+ | ア | ロ | +---+---+ | 1 | 0 | +---+---+ セット内の 1 行 (0.00 秒) 上記の挿入時にbの値は設定されず、デフォルト値0が自動的に使用されます。 **主キー:** このフィールドは、テーブルの主キーとして識別されます。レコードを一意に識別できます。重複するレコードを挿入すると、エラーが発生します。 書き方は次の 2 通りあります。 方法 1: 次のように列に従います。 mysql> IF EXISTS test3 テーブルを削除します。 クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒) mysql> テーブル test3( を作成します。 -> int 非 null コメント 'フィールド a' 主キー -> ); クエリは正常、影響を受けた行は 0 行 (0.01 秒) mysql> test3 (a) の値 (1) に挿入します。 クエリは正常、1 行が影響を受けました (0.01 秒) mysql> test3 (a) の値 (1) に挿入します。 エラー 1062 (23000): キー 'PRIMARY' のエントリ '1' が重複しています 方法 2: 次のように、すべての列が定義された後に定義します。 mysql> テーブルを削除します IF EXISTS test4; クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒) mysql> テーブル test4( を作成します。 -> int 非 null コメント 'フィールド a'、 -> b int not null デフォルト 0 コメント 'フィールド b', -> 主キー (a) -> ); クエリは正常、影響を受けた行は 0 行 (0.02 秒) mysql> test4(a,b) に値 (1,1) を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test4(a,b) に値 (1,2) を挿入します。 エラー 1062 (23000): キー 'PRIMARY' のエントリ '1' が重複しています 重複する値を挿入すると、主キー制約に違反することになります。 方法 2 では、複数のフィールドを主キーとしてサポートします。複数のフィールドはコンマで区切られます。構文は、主キー (フィールド 1、フィールド 2、フィールド n) です。例: mysql> テーブルを削除する IF EXISTS test7; クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒) マイSQL> mysql> テーブル test7( を作成します。 -> int 非 null コメント 'フィールド a'、 -> b int not null コメント 'フィールド b', -> 主キー (a,b) -> ); クエリは正常、影響を受けた行は 0 行 (0.02 秒) マイSQL> mysql> test7(a,b) に VALUES (1,1) を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test7(a,b) に VALUES (1,1) を挿入します。 エラー 1062 (23000): キー 'PRIMARY' のエントリ '1-1' が重複しています 外部キー: テーブル内のフィールドに外部キーを設定する 構文: 外部キー (現在のテーブルの列名) は外部キー テーブル (外部キー テーブル内のフィールド名) を参照します。 mysql> IF EXISTS test6 テーブルを削除します。 クエリは正常、影響を受けた行は 0 行 (0.01 秒) mysql> テーブルを削除する IF EXISTS test5; クエリは正常、影響を受けた行は 0 行 (0.01 秒) マイSQL> mysql> テーブル test5( を作成します。 -> int 非 null コメント 'フィールド a' 主キー -> ); クエリは正常、影響を受けた行は 0 行 (0.02 秒) マイSQL> mysql> テーブル test6( を作成します。 -> b int not null コメント 'フィールド b', -> ts5_a int は null ではありません、 -> 外部キー(ts5_a)はtest5(a)を参照します -> ); クエリは正常、影響を受けた行は 0 行 (0.01 秒) mysql> test5 (a) の値に挿入します (1); クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test6 (b,test6.ts5_a) に値 (1,1) を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test6 (b,test6.ts5_a) に値 (2,2) を挿入します。 エラー 1452 (23000): 子行を追加または更新できません: 外部キー制約が失敗しました (`javacode2018`.`test6`、制約 `test6_ibfk_1` FOREIGN KEY (`ts5_a`) 参照 `test5` (`a`)) 注: test6 の ts5_a フィールドの値は、テーブル test5 のフィールド a から取得されることを示します。 注意すべき点がいくつかあります:
ユニークキー(uq):このフィールドの値がユニークであることを示します 1 つまたは複数のフィールドをサポートします。重複する値を挿入すると、一意制約に違反し、挿入は失敗します。 定義する方法は2つあります。 方法 1: 次のようにフィールドに従います。 mysql> IF EXISTS test8 テーブルを削除します。 クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒) マイSQL> mysql> テーブル test8( を作成します。 -> int 非 null コメント 'フィールド a' 一意のキー -> ); クエリは正常、影響を受けた行は 0 行 (0.01 秒) マイSQL> mysql> test8(a) VALUES (1) に挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test8(a) VALUES (1) に挿入します。 エラー 1062 (23000): キー 'a' のエントリ '1' が重複しています 方法 2: すべての列が定義された後に、次のように定義します。 mysql> IF EXISTS test9 テーブルを削除します。 クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒) マイSQL> mysql> テーブル test9( を作成します。 -> int 非 null コメント 'フィールド a'、 -> ユニークキー(a) -> ); クエリは正常、影響を受けた行は 0 行 (0.01 秒) マイSQL> mysql> test9(a) にVALUES(1)を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test9(a) にVALUES(1)を挿入します。 エラー 1062 (23000): キー 'a' のエントリ '1' が重複しています 方法 2 では、カンマで区切られた複数のフィールドがサポートされます。構文は、主キー (フィールド 1、フィールド 2、フィールド n) です。例: mysql> テーブルを削除します IF EXISTS test10; クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒) マイSQL> mysql> テーブル test10( を作成します。 -> int 非 null コメント 'フィールド a'、 -> b int not null コメント 'フィールド b', -> ユニークキー(a,b) -> ); クエリは正常、影響を受けた行は 0 行 (0.01 秒) マイSQL> mysql> test10(a,b) に VALUES (1,1) を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test10(a,b) に VALUES (1,1) を挿入します。 エラー 1062 (23000): キー 'a' のエントリ '1-1' が重複しています auto_increment: このフィールドの値が自動的に増加することを示します (整数型で主キーです) mysql> テーブルを削除します IF EXISTS test11; クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒) マイSQL> mysql> テーブル test11( を作成します。 -> a int not null AUTO_INCREMENT PRIMARY KEY コメント 'フィールド a', -> b int 非 null コメント 'フィールド b' -> ); クエリは正常、影響を受けた行は 0 行 (0.01 秒) マイSQL> mysql> test11(b) VALUES (10) に挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test11(b) VALUES (20) に挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test11 から * を選択します。 +---+----+ | ア | ロ | +---+----+ | 1 | 10 | | 2 | 20 | +---+----+ セット内の 2 行 (0.00 秒) フィールド a は自動的に増分され、デフォルト値は 1 から始まり、毎回 1 ずつ増加します。 MySQL では、自動増分フィールドの初期値とステップ サイズを設定できます。たとえば、初期値は 10,000 に設定され、増分は 10 です。 知らせ: これを実証してみましょう: mysql> test11 から削除します。 クエリは正常、2 行が影響を受けました (0.00 秒) mysql> test11(b) VALUES (10) に挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test11 から * を選択します。 +---+----+ | ア | ロ | +---+----+ | 3 | 10 | +---+----+ セット内の 1 行 (0.00 秒) 上記の test11 データを削除し、レコードを挿入します。a の値は 3 です。次の操作を実行します。 test11 データを削除し、MySQL を再起動してデータを挿入し、a の値が初期化されるかどうかを確認します。次のように: mysql> test11 から削除します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test11 から * を選択します。 空のセット (0.00 秒) mysql>終了 さよなら C:\Windows\system32>ネットストップmysql mysql サービスが停止しています。 mysql サービスが正常に停止されました。 C:\Windows\system32>ネットスタートmysql mysql サービスが起動しています。 mysql サービスが正常に開始されました。 C:\Windows\system32>mysql -uroot -p パスワードを入力してください: ******* MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは2です サーバーバージョン: 5.7.25-log MySQL コミュニティサーバー (GPL) Copyright (c) 2000, 2019, Oracle およびその関連会社。無断複写・転載を禁じます。 OracleはOracle Corporationおよびその関連会社の登録商標です。 その他の名称は各社の商標である場合があります。 所有者。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> javacode2018 を使用します。 データベースが変更されました mysql> test11 から * を選択します。 空セット (0.01 秒) mysql> test11 (b) に値 (100) を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test11 から * を選択します。 +---+-----+ | ア | ロ | +---+-----+ | 1 | 100 | +---+-----+ セット内の 1 行 (0.00 秒) テーブルを削除する テーブルを削除する [存在する場合] テーブル名; テーブル名を変更する テーブルのテーブル名を変更し、新しいテーブル名に変更します。 テーブルセッティングの注意点 alter table テーブル名 コメント 'コメント情報'; テーブルをコピー コピーするテーブル名と同じテーブル名を作成します。 のように: mysql> test11 のようなテーブル test12 を作成します。 クエリは正常、影響を受けた行は 0 行 (0.01 秒) mysql> test12 から * を選択します。 空のセット (0.00 秒) mysql> show テーブル test12 を作成します。 +--------+-------+ | テーブル | テーブルの作成 +--------+-------+ | test12 | テーブル `test12` を作成します ( `a` int(11) NOT NULL AUTO_INCREMENT COMMENT 'フィールドa', `b` int(11) NOT NULL COMMENT 'フィールドb', 主キー (`a`) ) エンジン=InnoDB デフォルト文字セット=utf8 | +--------+-------+ セット内の 1 行 (0.00 秒) テーブル構造+データをコピー テーブルを作成します。テーブル名 [as] コピー先のテーブルからフィールド、... を選択します [where 条件]; のように: mysql> test11 から select * としてテーブル test13 を作成します。 クエリは正常、1 行が影響を受けました (0.02 秒) 記録: 1 重複: 0 警告: 0 mysql> test13 から * を選択します。 +---+-----+ | ア | ロ | +---+-----+ | 1 | 100 | +---+-----+ セット内の 1 行 (0.00 秒) テーブル構造とデータはここにあります。 テーブル内の列の管理 列を追加する alter table テーブル名 add column 列名 type [列制約]; 例: mysql> テーブルを削除します IF EXISTS test14; クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒) マイSQL> mysql> テーブル test14( を作成します。 -> a int not null AUTO_INCREMENT PRIMARY KEY コメント 'フィールド a' -> ); クエリは正常、影響を受けた行は 0 行 (0.02 秒) mysql> alter table test14 add column b int not null default 0 comment 'Field b'; クエリは正常、影響を受けた行は 0 行 (0.03 秒) レコード: 0 重複: 0 警告: 0 mysql> alter table test14 add column c int not null default 0 comment 'Field c'; クエリは正常、影響を受けた行は 0 行 (0.05 秒) レコード: 0 重複: 0 警告: 0 mysql> test14(b) の値に挿入します (10); クエリは正常、1 行が影響を受けました (0.00 秒) mysql> test14から*を選択します。c +---+----+---+ | a | b | c | +---+----+---+ | 1 | 10 | 0 | +---+----+---+ セット内の 1 行 (0.00 秒) 列を変更する alter table テーブル名、modify column 列名、new type [constraint]; または、テーブルを変更してテーブル名を変更し、列名を新しくし、列名を新しくし、タイプを新しくし[制約]; 2つの方法の違い: 変更では列名を変更できませんが、変更では列名を変更できます test14 のテーブル構造を見てみましょう。 mysql> show テーブル test14 を作成します。 +--------+--------+ | テーブル | テーブルの作成 | +--------+--------+ | test14 | テーブル `test14` を作成します ( `a` int(11) NOT NULL AUTO_INCREMENT COMMENT 'フィールドa', `b` int(11) NOT NULL DEFAULT '0' COMMENT 'フィールドb', `c` int(11) NOT NULL DEFAULT '0' COMMENT 'フィールドc', 主キー (`a`) ) ENGINE=InnoDB AUTO_INCREMENT=2 デフォルト CHARSET=utf8 | +--------+--------+ セット内の 1 行 (0.00 秒) フィールド c の名前と型を次のように変更します。 mysql> alter table test14 change column cd varchar(10) not null default '' comment 'Field d'; クエリは正常、影響を受けた行は 0 行 (0.01 秒) レコード: 0 重複: 0 警告: 0 mysql> show テーブル test14; ;; +--------+--------+ | テーブル | テーブルの作成 | +--------+--------+ | test14 | テーブル `test14` を作成します ( `a` int(11) NOT NULL AUTO_INCREMENT COMMENT 'フィールドa', `b` int(11) NOT NULL DEFAULT '0' COMMENT 'フィールドb', `d` varchar(10) NOT NULL DEFAULT '' COMMENT 'フィールドd', 主キー (`a`) ) ENGINE=InnoDB AUTO_INCREMENT=2 デフォルト CHARSET=utf8 | +--------+--------+ セット内の 1 行 (0.00 秒) 列の削除 テーブルを変更し、テーブル名を削除します。列をドロップします。列名; 例: mysql> テーブル test14 を変更し、列 d を削除します。 クエリは正常、影響を受けた行は 0 行 (0.05 秒) レコード: 0 重複: 0 警告: 0 mysql> show テーブル test14 を作成します。 +--------+--------+ | テーブル | テーブルの作成 | +--------+--------+ | test14 | テーブル `test14` を作成します ( `a` int(11) NOT NULL AUTO_INCREMENT COMMENT 'フィールドa', `b` int(11) NOT NULL DEFAULT '0' COMMENT 'フィールドb', 主キー (`a`) ) ENGINE=InnoDB AUTO_INCREMENT=2 デフォルト CHARSET=utf8 | +--------+--------+ セット内の 1 行 (0.00 秒) 一般的な MySQL DDL 操作の概要に関するこの記事はこれで終わりです。より関連性の高い MySQL DDL 操作については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
目次序文ブラウザにおけるオーディオとビデオに関する知識のまとめビデオエンコーディング包装形態オーディ...
1. コマンドの紹介gzip (GNU zip) コマンドは、ファイルの圧縮と解凍に使用されます。こ...
最近Tencent Cloudサーバーを購入し、環境を構築しました。このメモは、これまで MySQL...
nginx バージョン 1.11.3次の構成を使用すると、検証は無効になり、クロスドメインの問題が依...
目次1. Promiseとは何か2. 基本的な使い方3. Promiseメソッド3.1 Promis...
有線ネットワーク: イーサネット 無線ネットワーク: 4G、WiFi、Bluetooth、5G 概要...
目次1. 覚えておくべき知識1. 変数タイプ2. シェル変数の説明3. シングルクォート、ダブルクォ...
日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...
MySQL の mysql 5.7.18 zip バージョンは、クリックして次のステップをクリックし...
目次1. 値を入力し、そのデータ型を返す** 2. アレイ重複排除3. 文字列の重複排除4. ディー...
目次1. 文法2. 例3. その他の関連方法長い間、reduce() メソッドの具体的な使い方を理解...
目次主に使用されるPostmanの機能データの暗号化と復号化さまざまなパラメータ設定実際に送信された...
目次1. 効果図(複数列) 2. 通常セレクター: mode = selector、複数列セレクター...
方法 1: readonly 属性を true に設定します。入力値=読み取り専用 readOnly...
MySQLは1つのテーブルからデータをクエリし、それを別のテーブルに挿入する実装方法ウェブサイト開発...