1.製品分類テーブルを作成します
考え
現在、商品テーブルは1つしかないので、次のような商品分類情報を追加したいと思います。モバイルデバイス分類情報、商品テーブルを介してのみ商品分類の追加を完了できない場合、商品分類情報を追加するにはどうすればよいですか。
回答:
- 商品分類テーブルを作成し、商品テーブルの商品分類情報をテーブルに追加します。
- 商品テーブルのカテゴリ名を、商品カテゴリテーブルの対応するカテゴリIDに変更します。
1.製品分類テーブルを作成します
-- 创建商品分类表
create table good_cates(
id int not null primary key auto_increment,
name varchar(50) not null
);
2.商品テーブルの商品カテゴリを商品カテゴリテーブルに追加します
-- 查询goods表中商品的分类信息
select cate_name from goods group by cate_name;
-- 将查询结果插入到good_cates表中
insert into good_cates(name) select cate_name from goods group by cate_name;
-- 添加移动设备分类信息
insert into good_cates(name) values('移动设备');
説明:
- insert into .. select ..は、クエリ結果を指定されたテーブルに挿入します。つまり、テーブルのコピーです。
次に、商品テーブルの商品分類情報を更新します
上記では、商品分類テーブル(good_cates)を作成し、商品分類情報の挿入を完了しました。次に、商品テーブルの商品分類情報を更新し、商品分類名をネゴシエーション分類IDに変更する必要があります。
次に、2番目のステップを実装します。
- 商品テーブルのカテゴリ名を、商品カテゴリテーブルの対応するカテゴリIDに変更します。
-- 查看goods表中的商品分类名称对应的商品分类id
select * from goods inner join good_cates on goods.cate_name = good_cates.name;
-- 把该语句中from 后的语句理解为一张虚表
update goods g inner join good_cates gc on g.cate_name=gc.name set g.cate_name=gc.id;
3つ目は、テーブルを作成してフィールドにデータを追加することです。
1.考える
前のレッスンでは、製品分類テーブル(good_cates)の作成と製品分類情報の追加を完了し、製品テーブル(goods)の製品分類名を対応する製品分類IDに変更しました。追加する場合ブランド、たとえば、Shuang Feiyanのブランド情報は商品テーブルから追加できません。ブランド情報を追加するにはどうすればよいですか?
回答:
- ブランドテーブルを作成し、商品テーブルのブランド情報をテーブルに追加します。
- 商品テーブルのブランド名を、ブランドテーブルの対応するブランドIDに変更します。
1.ブランドテーブルを作成します
-- 查询品牌信息
select brand_name from goods group by brand_name;
-- 通过create table ...select来创建数据表并且同时插入数据
-- 创建商品分类表,注意: 需要对brand_name 用as起别名,否则name字段就没有值
create table good_brands (
id int unsigned primary key auto_increment,
name varchar(40) not null) select brand_name as name from goods group by brand_name;
説明:
- テーブルの作成..列名の選択:テーブルを作成してデータを挿入することを意味します
2.商品テーブルのブランド情報を更新します
-- 将goods表中的品牌名称更改成品牌表中对应的品牌id
update goods as g inner join good_brands gb on g.brand_name = gb.name set g.brand_name = gb.id;
第四に、商品テーブル構造を変更します
現在、goodテーブルの商品カテゴリとブランド情報を商品カテゴリIDとブランドIDに変更しました。次に、cate_nameフィールドとbrand_nameフィールドをcate_idフィールドとbrand_idフィールドに変更し、タイプをintタイプに変更する必要があります。
-- 查看表结构
desc goods;
-- 通过alter table语句修改表结构
alter table goods change cate_name cate_id int not null, change brand_name brand_id int not null;
説明:
- アラートテーブルは、複数のフィールド情報を同時に変更できます
V.まとめ
- テーブルのコピーを完了するには、次を使用できます。insertinto .. select ..SQLステートメント
- テーブル内のデータを接続して更新するには、次を使用します。update.. join ..ステートメント
- テーブルを作成してフィールドにデータを挿入するには、次を使用します。createtable ..selectステートメント
- テーブル構造を変更するには、次を使用できます。altertableステートメント、変更された複数のフィールドはコンマで区切られます