MySQL学习笔记(4) 2016-04-10

来源:互联网 发布:博弈大师模拟软件 编辑:程序博客网 时间:2024/05/18 06:42

MySQL学习笔记(4) 2016-04-10

第一步、创建数据表

  CREATE TABLE IF NOT EXISTS tdb_goods(    goods_id    SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,    goods_name  VARCHAR(150) NOT NULL,    goods_cate  VARCHAR(40)  NOT NULL,    brand_name  VARCHAR(40)  NOT NULL,    goods_price DECIMAL(15,3) UNSIGNED NOT NULL DEFAULT 0,    is_show     BOOLEAN NOT NULL DEFAULT 1,    is_saleoff  BOOLEAN NOT NULL DEFAULT 0  );

第二步、在数据库插入商品信息,但由于商品信息中含有中文字符,所以定义编码方式

mysql> alter table tdb_goods convert to character set utf8;

第三步、输入数据

INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('R510VC 15.6英寸笔记本','笔记本','华硕','3399',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('Y400N 14.0英寸笔记本电脑','笔记本','联想','4899',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('G150TH 15.6英寸游戏本','游戏本','雷神','8499',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('X550CC 15.6英寸笔记本','笔记本','华硕','2799',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('X240(20ALA0EYCD) 12.5英寸超极本','超级本','联想','4999',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('U330P 13.3英寸超极本','超级本','联想','4299',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('SVP13226SCB 13.3英寸触控超极本','超级本','索尼','7999',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('iPad mini MD531CH/A 7.9英寸平板电脑','平板电脑','苹果','1998',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('iPad Air MD788CH/A 9.7英寸平板电脑 (16G WiFi版)','平板电脑','苹果','3388',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES(' iPad mini ME279CH/A 配备 Retina 显示屏 7.9英寸平板电脑 (16G WiFi版)','平板电脑','苹果','2788',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('IdeaCentre C340 20英寸一体电脑 ','台式机','联想','3499',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('Vostro 3800-R1206 台式电脑','台式机','戴尔','2899',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('iMac ME086CH/A 21.5英寸一体电脑','台式机','苹果','9188',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('AT7-7414LP 台式电脑 (i5-3450四核 4G 500G 2G独显 DVD 键鼠 Linux )','台式机','宏碁','3699',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('Z220SFF F4F06PA工作站','服务器/工作站','惠普','4288',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('PowerEdge T110 II服务器','服务器/工作站','戴尔','5388',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('Mac Pro MD878CH/A 专业级台式电脑','服务器/工作站','苹果','28888',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES(' HMZ-T3W 头戴显示设备','笔记本配件','索尼','6999',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('商务双肩背包','笔记本配件','索尼','99',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('X3250 M4机架式服务器 2583i14','服务器/工作站','IBM','6888',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('玄龙精英版 笔记本散热器','笔记本配件','九州风神','',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES(' HMZ-T3W 头戴显示设备','笔记本配件','索尼','6999',DEFAULT,DEFAULT); INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('商务双肩背包','笔记本配件','索尼','99',DEFAULT,DEFAULT);

第四步、将数据中的分类信息和品牌变成一个数字,这样就可以为之后的数据处理提高处理速度。
为此,我们首先建立两个包含分类信息的表格,该表格由两列组成,第一列是id,第二列是分类信息。

CREATE TABLE tdb_goods_cate(     id SMALLINT NOT NULL PRIMARY KEY AUTO_INCREMENT,    cate_name VARCHAR(40) NOT NULL );alter table tdb_goods_cate convert to character set utf8; INSERT tdb_goods_cate(cate_name) SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;

这里写图片描述

这样一来,我们得到了分类信息与与其对应的分类名称,之后我们就需要把原来的中文分类改成分类数字。
为此,我们需要用到UPDATE命令和INNER JOIN命令。

UPDATE tdb_goods INNER JOIN tdb_goods_cate ON goods_cate = cate_name SET goods_cate = id;

我们可以发现,原来是中文的已经变成了数字,但是呢列名依然是goods_cate,因此我们用之前学过的CHANGE命令改变列名。

ALTER TABLE tdb_goodsCHANGE goods_cate cate_id SMALLINT UNSIGNED NOT NULL;

最后效果如下,列名变更为cate_id,分类id为6.
这里写图片描述

同理,我们也可以给品牌名变成品牌id。大家如果感兴趣可以尝试一下。

0 0
原创粉丝点击