SQLテーブルの作成

1. 知識ポイントの紹介:

テーブルの作成、変更、削除:

  • 1.1 テーブルを直接作成します。
  • テーブルの作成

    [IF NOT EXISTS] tb_name -- 存在しない場合は作成し、存在する場合はスキップします

    (column_name1 data_type1 -- 列名と型は必須です

      [ PRIMARY KEY -- オプションの制約、主キー

       | FOREIGN KEY -- 他のテーブルのキー値を参照する外部キー

       | AUTO_INCREMENT -- 自動インクリメント ID

       | COMMENT コメント -- 列コメント (コメント)

       | DEFAULT デフォルト値 -- デフォルト値

       | UNIQUE -- 2 つのレコードが同じ列値を持つことを許可しない一意の制約

       | NOT NULL -- 列は NULL ではありません

      ]、...

    ) [CHARACTER SET charset] -- 文字セットのエンコーディング

    [COLLATE Collat​​e_value] -- 列の並べ替えと比較のルール (大文字と小文字を区別するかどうかなど)

  • 1.2 別のテーブルからテーブル構造をコピーしてテーブルを作成します。 CREATE TABLE tb_name LIKE tb_name_old

  • 1.3 別のテーブルのクエリ結果からテーブルを作成します。 CREATE TABLE tb_name AS SELECT * FROM tb_name_old WHERE options

  • 2.1 変更テーブル: ALTER TABLE 表名 修改选项 。オプションのコレクション:

1

2

3

4

5

6

7

8

{ ADD COLUMN <列名> <タイプ> -- 列を追加します

 | CHANGE COLUMN <古い列名> <新しい列名> <新しい列タイプ> -- 列名または型を変更します。

 | ALTER COLUMN <列名> { SET DEFAULT <デフォルト値> | DROP DEFAULT } -- 列のデフォルト値を変更/削除します

 | MODIFY COLUMN <列名> <タイプ> -- 列タイプを変更します。

 | DROP COLUMN <列名> -- 列を削除します。

 | RENAME TO <新しいテーブル名> -- テーブル名を変更します。

 | CHARACTER SET <文字セット名> -- 文字セットを変更します。

 | COLLATE <照合ルール名> } -- 照合ルールを変更します (比較と並べ替えに使用されます)。

  • 3.1 テーブルを削除します: DROP TABLE [IF EXISTS] テーブル名 1 [, テーブル名 2]。

詳細な分析:

  • 自動インクリメント ID: AUTO_INCREMENT;
  • 主キーを設定します: PRIMARY KEY;
  • 一意の制約: UNIQUE
  • 非NULL制約: NOT NULL
  • デフォルト値の設定: DEFAULT 0
  • 現在のタイムスタンプ: CURRENT_TIMESTAMP
  • コメント/メモ: コメント
  • テーブルがすでに作成されている場合は、通常どおりに戻ります: IF NOT EXISTS

2.ケース

(1) ユーザー情報テーブルには、長年にわたってプラットフォームに登録しているユーザーの情報が含まれていますが、Niuke プラットフォームの継続的な成長に伴い、ユーザー数は急速に増加しています。ユーザーは新しいテーブルを分割します。 。

元のユーザー情報テーブル:

提出済み タイプ ヌル デフォルト 追加 コメント
ID int(11) いいえ (ヌル) 自動増加 自動インクリメントID
UID int(11) いいえ ユニ (ヌル) ユーザーID
ニックネーム varchar(64) はい (ヌル) ニックネーム
成果 int(11) はい 0 達成値
レベル int(11) はい (ヌル) ユーザーレベル
仕事 varchar(32) はい (ヌル) キャリアの方向性
登録時間 日付時刻 はい CURRENT_TIMESTAMP 登録時間

データ アナリストは、ユーザー情報テーブルと一貫性のある高品質のユーザー情報テーブル user_info_vip を作成してください。

--T1:
CREATE TABLE IF NOT EXISTS user_info_vip
(id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
 uid int UNIQUE NOT NULL COMMENT '用户ID',
 nick_name	varchar(64) COMMENT '昵称',
 achievement int DEFAULT 0 COMMENT '成就值',
 `level` int COMMENT '用户等级',
 job varchar(32) COMMENT '职业方向',
 register_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间')
 CHARACTER SET utf8 COLLATE utf8_general_ci;

--T2:
create table user_info_vip(
id int(11) not null primary key auto_increment comment '自增ID',
uid int(11) not null unique key comment '用户ID',
nick_name varchar(64) comment '昵称',
achievement int(11) default 0 comment '成就值',
level int(11) comment '用户等级',
job varchar(32) comment '职业方向',
register_time datetime default current_timestamp comment '注册时间'
) default charset=utf8

返される出力は次の表に示されています。テーブル作成ステートメントを作成して、テーブル内のすべての制限と指示をテーブルに記録してください。

提出済み タイプ ヌル デフォルト 追加 コメント
ID int(11) いいえ 自動増加 自動インクリメントID
UID int(11) いいえ ユニ ユーザーID
ニックネーム varchar(64) はい ニックネーム
成果 int(11) はい 0 達成値
レベル int(11) はい ユーザーレベル
仕事 varchar(32) はい キャリアの方向性
登録時間 日付時刻 はい CURRENT_TIMESTAMP 登録時間

備考:
1. バックグラウンドでは、SHOW FULL FIELDS FROM user_info_vip ステートメントを使用して出力結果を比較します。

2. テーブルが他のアナリストによって作成された場合は、通常どおりテーブルを返します。

おすすめ

転載: blog.csdn.net/weixin_48272780/article/details/128328964