发表于: 2017-10-14 23:01:21
2 843
今天完成的事情:
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.任务这边我想先放一下,毕竟基础不好的话,越往后面更困难。
评论