ライブラリが作成されたら、次のステップはテーブルを作成することです。テーブルを作成するには、構文だけでなく、列の型、インデックスなどについても理解する必要があります。以下では、テーブルを作成するための構文についてのみ説明し、列の型については説明しません。
テーブルを作成する
テーブルを作成するための構文:
CREATE TABLE [IF NOT EXISTS] 表名 ( 字段名1 列类型 [属性] [索引], 字段名2 列类型 [属性] [索引], 字段名3 列类型 [属性] [索引], ...... ) [表类型] [表字符集]
ここで注意すべき点は、フィールド名が mysql のキーワードと一致しないことです。これを本当に実行したい場合は、次のことが必要です。フィールド名の前後に ` 記号を追加します。この記号はタブ キーの上にあります。
次に、ユーザー ID、ユーザー名、ユーザー パスワード、携帯電話番号、性別、誕生日のフィールドを含むユーザー テーブルを作成しましょう。
create table if not exists users( user_id int(10) unsigned auto_increment primary key, username varchar(16) not null default '' collate utf8mb4_bin comment '用户名', userpass char(32) not null collate utf8mb4_bin default '', mobile char(11) not null default '' unique, gender enum('未知', '男', '女') default '未知', birth date not null default '1900-01-01', index username(username) ) engine=innodb default charset utf8mb4 collate utf8mb4_general_ci;
通常、今後の操作を容易にするために、テーブルごとに一意の識別フィールド (ここでは user_id ) を作成します。ここでは、ユーザー名フィールドとユーザーパスフィールドの両方に照合が設定されています。これは、これら 2 つのフィールドが大文字と小文字を区別するという点で他のフィールドと異なるためです。さらに、テーブルに 2 つのインデックス、つまりモバイル フィールドとユーザー名フィールドを作成しました。携帯電話には一意のインデックスが設定されているため、携帯電話番号を重複させることはできません。ユーザー名に対する一般的なインデックスを作成すると、ユーザー名による検索が高速化されます。
テーブルとテーブル構造を表示する
テーブルが作成された後、それが本当に正常に作成されたかどうかを確認します。 show tables を使用すると、現在のライブラリの下にあるすべてのテーブルを表示できます。
mysql> show tables; +---------------+ | Tables_in_job | +---------------+ | users | +---------------+ 1 row in set
テーブルは確かに正常に生成されていますが、テーブルにどのようなフィールドや属性があるのかを確認したい場合は、desc テーブル名を使用して確認できます。
テーブルのクリアと削除
注: テーブルの削除は危険な操作であるため、慎重に操作してください。
テーブルの削除構文: DROP TABLE [IF EXISTS] テーブル名
ここではデモはありません。
テーブル構文のクリア: TRUNCATE テーブル名
ここでは、ユーザーの切り捨てとユーザーからの削除の違いに焦点を当てます。
truncate は、最初にテーブルを削除してからテーブルを再作成することと同じです。テーブル内のすべてのデータがリセットされました。
deleteはテーブル内のデータのみを削除しますが、自動インクリメントされるIDなど、テーブルの一部の属性情報はリセットされません。
テーブルを変更する
最後に、テーブルを変更する方法を見てみましょう。これを最後に置いたのは、その構文が最も複雑で、テーブル操作の中で最も難しい部分であるためです。その構文は次のとおりです:
ALTER TABLE 数据表名 alter_spec[,alter_spec] ... table options
共通の構文と関数は次のとおりです:
新しいフィールドの追加: ALTER TABLE テーブル名 ADD フィールド名 <テーブル ステートメント> ]
フィールドの変更: ALTER TABLE テーブル名変更|変更リスト <テーブル ステートメント> 注: 変更と変更の違いは、変更は列タイプのみを変更でき、変更は列タイプの変更に加えて列名も変更できます。 。
フィールドの削除: ... DROP 列名
インデックス名の追加: ... ADD INDEX [INDEX_NAME] (index_col1,index_col2,...)
インデックスの削除: ...DROP INDEX INDEX_NAME
DROP PRIMARY KEY
ADD PRIMARY KEY: ... ADD PRIMARY KEY (INDEX_COL1,INDEX_COL2,...)
ADD UNIQUE INDEX: ... ADD UNIQUE [index_name] (index_col1, Index_col2,...)
テーブル名を変更します: RENAME newName
練習してみましょう
まず、新しいフィールド email を追加し、userpass の後に置きます。
ALTER TABLE users ADD email VARCHAR(255) NOT NULL DEFAULT '' AFTER userpass;
ユーザーパスを変更し、長さを64ビットに変更します
ALTER TABLE users MODIFY userpass CHAR(64) NOT NULL DEFAULT '' COMMENT '用户登录密码';
ユーザーパスをauthに変更します
ALTER TABLE users CHANGE userpass `auth` char(32) NOT NULL DEFAULT '';
通常のインデックスをメールに追加します
ALTER TABLE users ADD INDEX eamil(email);
メールのインデックスを削除します
ALTER TABLE users DROP INDEX eamil;
通常のインデックスを削除するのと同じように、一意のインデックスを削除します
ALTER TABLE users DROP INDEX mobile;
一意のインデックスを追加します
ALTER TABLE users ADD UNIQUE mobile(mobile); 或 ALTER TABLE users ADD UNIQUE (mobile);
主キーを削除します。削除する前に aoto_increment を削除する必要があります。
ALTER TABLE users MODIFY user_id INT(10) NOT NULL; ALTER TABLE users DROP PRIMARY KEY;
主キーを追加します
ALTER TABLE users ADD PRIMARY KEY (user_id);
上記は、列の型やインデックスなどについて、テーブル操作のいくつかの構文を説明しただけです。興味があれば、関連資料を読むことができます。
以上がMYSQLテーブル操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。