发表于: 2017-10-14 23:01:21

2 844


今天完成的事情:

1.先把数据库知识重新学一遍,之前没怎么认真看过,就直接一带而过,感觉这样学下去最后都什么都没学会。

 MySQL数据基础介绍

·MySQL是开源免费的

·MySQL是关系型数据库

MYSQL语句的规范(这是一种约定,MYSQL本身大小写不敏感)

·关键字与函数名称要大写

·数据库名称、表名称、字段名称小写

·SQL语句以分号结尾

MySQL数据库记录基本操作:
·INSERT

·UPDATA

·DELETE

·SELECT

其中增、删、改属于写入操作,查属于读取操作。

2.子查询

(1)数据库准备

(2)插入一些测试数据

mysql> SELECT * FROM tdb_goods\G;

*************************** 1. row ***************************

   goods_id: 1

 goods_name: R510VC 15.6英寸笔记本

 goods_cate: 笔记本

 brand_name: 华硕

goods_price: 3399.000

    is_show: 1

 is_saleoff: 0

*************************** 2. row ***************************

   goods_id: 2

 goods_name: Y400N 14.0英寸笔记本电脑

 goods_cate: 笔记本

 brand_name: 联想

goods_price: 4899.000

    is_show: 1

 is_saleoff: 0

*************************** 3. row ***************************

   goods_id: 3

 goods_name: G150TH 15.6英寸游戏本

 goods_cate: 游戏本

 brand_name: 雷神

goods_price: 8499.000

    is_show: 1

 is_saleoff: 0

*************************** 4. row ***************************

   goods_id: 4

 goods_name: X550CC 15.6英寸笔记本

 goods_cate: 笔记本

 brand_name: 华硕

goods_price: 2799.000

    is_show: 1

 is_saleoff: 0

*************************** 5. row ***************************

   goods_id: 5

 goods_name: X240(20ALA0EYCD) 12.5英寸超极本

 goods_cate: 超级本

 brand_name: 联想

goods_price: 4999.000

    is_show: 1

 is_saleoff: 0

*************************** 6. row ***************************

   goods_id: 6

 goods_name: U330P 13.3英寸超极本

 goods_cate: 超级本

 brand_name: 联想

goods_price: 4299.000

    is_show: 1

 is_saleoff: 0

*************************** 7. row ***************************

   goods_id: 7

 goods_name: SVP13226SCB 13.3英寸触控超极本

 goods_cate: 超级本

 brand_name: 索尼

goods_price: 7999.000

    is_show: 1

 is_saleoff: 0

*************************** 8. row ***************************

   goods_id: 8

 goods_name: iPad mini MD531CH/A 7.9英寸平板电脑

 goods_cate: 平板电脑

 brand_name: 苹果

goods_price: 1998.000

    is_show: 1

 is_saleoff: 0

*************************** 9. row ***************************

   goods_id: 9

 goods_name: iPad Air MD788CH/A 9.7英寸平板电脑 (16G WiFi版)

 goods_cate: 平板电脑

 brand_name: 苹果

goods_price: 3388.000

    is_show: 1

 is_saleoff: 0

*************************** 10. row ***************************

   goods_id: 10

 goods_name:  iPad mini ME279CH/A 配备 Retina 显示屏 7.9英寸平板电脑 (16G WiFi版)

 goods_cate: 平板电脑

 brand_name: 苹果

goods_price: 2788.000

    is_show: 1

 is_saleoff: 0

*************************** 11. row ***************************

   goods_id: 11

 goods_name: IdeaCentre C340 20英寸一体电脑

 goods_cate: 台式机

 brand_name: 联想

goods_price: 3499.000

    is_show: 1

 is_saleoff: 0

*************************** 12. row ***************************

   goods_id: 12

 goods_name: Vostro 3800-R1206 台式电脑

 goods_cate: 台式机

 brand_name: 戴尔

goods_price: 2899.000

    is_show: 1

 is_saleoff: 0

*************************** 13. row ***************************

   goods_id: 13

 goods_name: iMac ME086CH/A 21.5英寸一体电脑

 goods_cate: 台式机

 brand_name: 苹果

goods_price: 9188.000

    is_show: 1

 is_saleoff: 0

*************************** 14. row ***************************

   goods_id: 14

 goods_name: AT7-7414LP 台式电脑 (i5-3450四核 4G 500G 2G独显 DVD 键鼠 Linux )

 goods_cate: 台式机

 brand_name: 宏碁

goods_price: 3699.000

    is_show: 1

 is_saleoff: 0

*************************** 15. row ***************************

   goods_id: 15

 goods_name: Z220SFF F4F06PA工作站

 goods_cate: 服务器/工作站

 brand_name: 惠普

goods_price: 4288.000

    is_show: 1

 is_saleoff: 0

*************************** 16. row ***************************

   goods_id: 16

 goods_name: PowerEdge T110 II服务器

 goods_cate: 服务器/工作站

 brand_name: 戴尔

goods_price: 5388.000

    is_show: 1

 is_saleoff: 0

*************************** 17. row ***************************

   goods_id: 17

 goods_name: Mac Pro MD878CH/A 专业级台式电脑

 goods_cate: 服务器/工作站

 brand_name: 苹果

goods_price: 28888.000

    is_show: 1

 is_saleoff: 0

*************************** 18. row ***************************

   goods_id: 18

 goods_name:  HMZ-T3W 头戴显示设备

 goods_cate: 笔记本配件

 brand_name: 索尼

goods_price: 6999.000

    is_show: 1

 is_saleoff: 0

*************************** 19. row ***************************

   goods_id: 19

 goods_name: 商务双肩背包

 goods_cate: 笔记本配件

 brand_name: 索尼

goods_price: 99.000

    is_show: 1

 is_saleoff: 0

*************************** 20. row ***************************

   goods_id: 20

 goods_name: X3250 M4机架式服务器 2583i14

 goods_cate: 服务器/工作站

 brand_name: IBM

goods_price: 6888.000

    is_show: 1

 is_saleoff: 0

*************************** 21. row ***************************

   goods_id: 21

 goods_name:  HMZ-T3W 头戴显示设备

 goods_cate: 笔记本配件

 brand_name: 索尼

goods_price: 6999.000

    is_show: 1

 is_saleoff: 0

*************************** 22. row ***************************

   goods_id: 22

 goods_name: 商务双肩背包

 goods_cate: 笔记本配件

 brand_name: 索尼

goods_price: 99.000

    is_show: 1

 is_saleoff: 0

22 rows in set (0.00 sec)

(3)子查询SUBQUERY是指出现在其他SQL语句内的select字句中。

·比较运算符

查到上商品的平均价格,并且查出在平均价格之上的产品信息

mysql> SELECT goods_id,goods_name,goods_price FROM tdb_goods

    -> WHERE goods_price >=(SELECT ROUND(AVG(goods_price),2)FROM tdb_goods );

+----------+----------------------------------+-------------+

| goods_id | goods_name                       | goods_price |

+----------+----------------------------------+-------------+

|        3 | G150TH 15.6英寸游戏本            |    8499.000 |

|        7 | SVP13226SCB 13.3英寸触控超极本   |    7999.000 |

|       13 | iMac ME086CH/A 21.5英寸一体电脑  |    9188.000 |

|       17 | Mac Pro MD878CH/A 专业级台式电脑 |   28888.000 |

|       18 |  HMZ-T3W 头戴显示设备            |    6999.000 |

|       20 | X3250 M4机架式服务器 2583i14     |    6888.000 |

|       21 |  HMZ-T3W 头戴显示设备            |    6999.000 |

+----------+----------------------------------+-------------+

7 rows in set (0.00 sec)

(4)多表连接

将其中的商品种类goods_cate重新做一张表,然后更新主表信息

mysql> SELECT * FROM tdb_goods_cates;

+---------+---------------+

| cate_id | cate_name     |

+---------+---------------+

|       1 | 台式机        |

|       2 | 平板电脑      |

|       3 | 服务器/工作站 |

|       4 | 游戏本        |

|       5 | 笔记本        |

|       6 | 笔记本配件    |

|       7 | 超级本        |

+---------+---------------+

更新主表信息,使它存储的商品名称改成goods_cate中的cate_id

mysql> UPDATE tdb_goods INNER JOIN tdb_goods_cates ON goods_cate=cate_name

    -> SET goods_cate=cate_id;

Query OK, 22 rows affected (0.01 sec)

接着查询主表

mysql> SELECT * FROM tdb_goods\G;

*************************** 1. row ***************************

   goods_id: 1

 goods_name: R510VC 15.6英寸笔记本

 goods_cate: 5

 brand_name: 华硕

goods_price: 3399.000

    is_show: 1

 is_saleoff: 0

*************************** 2. row ***************************

   goods_id: 2

 goods_name: Y400N 14.0英寸笔记本电脑

 goods_cate: 5

 brand_name: 联想

goods_price: 4899.000

    is_show: 1

 is_saleoff: 0

这里已经看到goods_cate这一字段变成了数字id,这么做的好处是将减少主表中的重复数据,优化数据结构

明天的计划:

1.继续学习mysql

遇到的问题:

1主键约束和主键索引到底是什么关系?

收获:

1.以前没怎么认真学习MySQL,感觉就是走个流程,学过就忘了,这样学下去感觉心里有点慌,还是脚踏实地的操练以下,尤其是代码书写,各种单词写错,虽然有很多第三方的工具可以方便数据库的管理。但是最基本的命令还是要熟悉下为好,毕竟Linux下没有用户界面的。

2.任务这边我想先放一下,毕竟基础不好的话,越往后面更困难。


返回列表 返回列表
评论

    分享到