5.1.2 主キー
主キーを設定するには、CREATE TABLEコマンドを実行する際、データ型の直後に「PRIMARY KEY」と指定します。次の例では、id列を主キーと
して設定しています。
mysql> CREATE TABLE staff (id SMALLINT PRIMARYどの列に主キーが設定されているかは、以下のようにして確認できます。
KEY, name VARCHAR(20), age TINYINT, bid SMALLINT);
mysql> DESC staff;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | smallint(6) | NO | PRI | | |
| name | varchar(20) | YES | | NULL | |
| age | tinyint(4) | YES | | NULL | |
| bid | smallint(6) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
key欄に「PRI」とあるフィールドが主キーです。
5.1.3 NOT NULL
レコードを識別するためのキーとして使いたい列にデータが入っていなけ
れば、困ったことになります。データの入力を必須とする列を指定するには、
NOT NULLを指定します。次の例では、id列への入力を必須としています。
mysql> CREATE TABLE staff (id SMALLINT NOTDESCコマンドを使ってテーブルの情報を調べてみます。
NULL, name VARCHAR(20), age TINYINT, bid
SMALLINT);
mysql> DESC staff;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | smallint(6) | NO | | | || name | varchar(20) | YES | | NULL | || age | tinyint(4) | YES | | NULL | || bid | smallint(6) | YES | | NULL | |+-------+-------------+------+-----+---------+-------+
id列のNull欄が「NO」になっているのが確認できます。「YES」となってい
る列は、値が格納されていなくてもかまわない、ということです。
5.1.4 レコードの追加
テーブルにレコードを追加するには、SQLコマンドのINSERTを使います。
INSERT INTO テーブル名[(列名1[, 列名2, ...])] VALUES次の例では、staffテーブルにレコードを追加しています。
(値1[, 値2, ...]);
mysql> INSERT INTO staff VALUES ('1', 'Sato', '23', '1');以下のように、複数のレコードをまとめて追加することもできます。
mysql> INSERT INTO staff VALUES ('2', 'Suzuki', '24', '2'), ('3', 'Takahashi', '28', '1');
もちろん、見やすいように、複数行に分けてもかまいません。
mysql> INSERT INTO staff VALUES次のようにすると、指定した列にのみ値を追加することができます。
> ('2', 'Suzuki', '24', '2'),
> ('3', 'Takahashi', '28', '1');
mysql> INSERT INTO staff (id, name) VALUES
('9', 'Kobayashi');
mysql> SELECT * FROM staff;
+----+-----------+------+------+
| id | name | age | bid |
+----+-----------+------+------+
| 1 | Sato | 23 | 1 |
| 2 | Suzuki | 24 | 2 |
| 3 | Takahashi | 28 | 5 |
| 4 | Tanaka | 26 | 3 |
| 5 | Watanabe | 30 | 2 |
| 9 | Kobayashi | NULL | NULL |
+----+-----------+------+------+
値を指定しなかった列はNULLとなります。
0 件のコメント:
コメントを投稿