データベース名を使用する
mysql> USE D1; Database changed
Use USE D1; SELECT DATABASE();を介して現在開いているデータベースを表示できます
:mysql> SELECT DATABASE(); +------------+ | DATABASE() | +------------+ | d1 | +------------+1 row in set (0.00 sec)
この構造は、最初の記事「MySQL の基本操作」の [IF NOT EXISTS] の場合、非常に単純です。 」についてはすでに説明したため、ここでは繰り返しません。CREATE TABLE [IF
)
NOT EXISTS] table_name (
column_name datatype,
...
データテーブルを作成しましょうtable1
:mysql> CREATE TABLE table1( -> username VARCHAR(20), -> age TINYINT UNSIGNED, -> salary FLOAT(8,2) UNSIGNED -> ); Query OK, 0 rows affected (0.74 sec)ここでの UNSIGNED は符号なしの値、つまり正の数を表すことに注意してください。「TINYINT UNSIGNED」を参照してください。0 ~ の値を表します。 255. これは、次のステートメントを通じて、作成が成功したことを確認することができます:
SHOW TABLES [FROM db_name][LIKE 'pattern' | WHERE expr]
mysql> SHOW TABLES FROM D1; +--------------+ | Tables_in_d1 | +--------------+ | table1 | +--------------+1 row in set (0.00 sec)ここで、テーブル table1 が次のとおりであることがわかります。作成されました。 データテーブルの構造を表示する
SHOW COLUMNS FROM tbl_name
mysql> SHOW COLUMNS FROM table1; +----------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------------+------+-----+---------+-------+ | username | varchar(20) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | salary | float(8,2) unsigned | YES | | NULL | | +----------+---------------------+------+-----+---------+-------+3 rows in set (0.10 sec)
INSERT [INTO] tbl_name [(col_name) , ...)] VALUE(val,...)
ここで[(col_name,...)]
はオプションです。追加しない場合、VALUE の値は のフィールドと同じである必要があります。対応するデータテーブルです。そうでない場合は挿入できません。見てみましょう:mysql> INSERT table1 VALUE("LI",20,6500.50); Query OK, 1 row affected (0.14 sec)ここでの VALUE 括弧内のフィールドは、table1 のフィールド (username="LI"、age=20) に 1 対 1 に対応しています。 , 給与=6500.50以下に別のデータを挿入しますが、対応なし:
mysql> INSERT table1 Value("Wang",25); ERROR 1136 (21S01): Column count doesn't match value count at row 1は給与値が指定されていないため挿入できません。
[(col_name,...)]
を追加することで柔軟にデータを挿入できます:mysql> INSERT table1(username,age) VALUE("Wang",25); Query OK, 1 row affected (0.11 sec)table1はVALUEに1対1で対応します。 テーブル データを検索する次のステートメントを使用してテーブル データを検索できます:
SELECT expr,... FROM tbl_nameデータベース検索ステートメント SELECT の場合、詳細は次の記事で説明します。テーブルの内容を見つけるには簡単なステートメントを使用します:
mysql> SELECT * FROM table1 -> ; +----------+------+---------+ | username | age | salary | +----------+------+---------+ | LI | 20 | 6500.50 | | Wang | 25 | NULL | +----------+------+---------+2 rows in set (0.00 sec)MySQL ステートメントは「;」で終わることに注意してください。これを書き忘れるとステートメントを実行できません。実行するには、矢印の後にセミコロンを追加します。テーブルに 2 つのデータが書き込まれていることがわかります。 テーブル作成の基本的な制約フィールドのNULLとNOT NULLテーブルを作成するときに、フィールドをnullにできない場合は、データを挿入するときにフィールドをnullにできるかどうかを設定できます。
データテーブルを作成しましょうtable2
:mysql> CREATE TABLE table2( -> username VARCHAR(20) NOT NULL, -> age TINYINT UNSIGNED NULL, -> salary FLOAT(8,2) -> );ここでは、ユーザー名は空ではなく、年齢はNULLで、給与は書き込まれていません。テーブル構造を確認してみましょう:
mysql> SHOW COLUMNS FROM table2; +----------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------------+------+-----+---------+-------+ | username | varchar(20) | NO | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | salary | float(8,2) | YES | | NULL | | +----------+---------------------+------+-----+---------+-------+3 rows in set (0.01 sec)ここから、ユーザー名がNULLであることがわかります。が NO の場合、他の 2 つのフィールドは YES です。空にできるフィールドの場合、NULL を書き込むかどうかは空にできることを意味します。 自動番号付け
AUTO_INCREMENTauto_increment、auto、incrementは増加を意味し、組み合わせると自動増加、つまり小さいものから大きいものへと自動的に番号を付けることができます。
mysql> CREATE TABLE table3( -> id SMALLINT UNSIGNED AUTO_INCREMENT, -> username VARCHAR(20) -> ); ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a keyID が主キーとして設定されていないため、エラーが報告されます。 主キーを設定する
PRIMARY KEY
次に、主キーを追加して、もう一度実行しましょう:
mysql> CREATE TABLE table3( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(20) -> ); Query OK, 0 rows affected (0.42 sec)順序に注意してください。PRIMARY KEY は最後に配置する必要があります。 このようにして、データを 1 つずつ挿入して結果を確認してみましょう:
mysql> INSERT table3(username) VALUES("Zhang"); Query OK, 1 row affected (0.09 sec) mysql> INSERT table3(username) VALUES("Weng"); Query OK, 1 row affected (0.07 sec) mysql> INSERT table3(username) VALUES("Chen"); Query OK, 1 row affected (0.09 sec) mysql> SELECT * FROM table3; +----+----------+ | id | username | +----+----------+ | 1 | Zhang | | 2 | Weng | | 3 | Chen | +----+----------+3 rows in set (0.00 sec)ID が小さいものから大きいものまで自動的に番号付けされていることがわかります。 一意制約
一意キー
持つことができます複数の一意の制約
mysql> CREATE TABLE table4( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(20) UNIQUE KEY, -> age TINYINT UNSIGNED -> ); Query OK, 0 rows affected (0.43 sec) mysql> INSERT table4(username) VALUE("Li"); Query OK, 1 row affected (0.11 sec) mysql> INSERT table4(username) VALUE("Li"); ERROR 1062 (23000): Duplicate entry 'Li' for key 'username' mysql> INSERT table4(username) VALUE("Chen"); Query OK, 1 row affected (0.10 sec)ユーザー名については、一意の制約として設定しているため、Li を繰り返し作成することはできません。「Chen」に変更するだけです。なお、これは実験的なものであり、実際の運用においても同様の名称が多く存在するため、実際の状況に応じてデータテーブルを作成する必要がある。 デフォルト値 DEFAULT
データの挿入時に対応する値が指定されていない場合は、DEFAULT
を使用してデフォルト値が使用されます。データの挿入 の場合、数値が指定されていないため、デフォルトは 3 です。 🎜りー以上がMySQLデータテーブル操作の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。