实现无限分类的方法,添加一个parent_id,使用parent_id来实现,后续添加的属性只要是符合之前的属性类,就把parent_id赋值之前的属性类id。

模糊查找:like
语法形式:字段 like '要查找字符'
说明:
1、like模糊查找用于对字符类型的字段进行字符匹配查找。
2、要查找的字符中,有两个特殊含义的字符:% , _:
 2.1: %含义是:代表0或多个的任意字符
     2.2: _含义是:代表1个任意字符
2.3: 这里的字符都是指现实中可见的一个“符号”,而不是字节。
3、语法:like '%关键字%'
SELECT  *  FROM  student  WHERE  `name`  LIKE  '张%' ;  -- 以张开头
SELECT  *  FROM  student  WHERE  `name`  LIKE  '张_' ;  -- 以张开头,而且名字是两个字
SELECT  *  FROM  student  WHERE  `name`  LIKE  '%张%' ;  -- 名字里面只要有张就可以
如果要查找的字符中包含“%”或“_”,“  ”,则只要对他们进行 转义就可以:
like ‘%ab \ %cd%’ //这里要找的是: 包含 ab%cd 字符的字符
like ‘ \_ab%’ //这里要找的是: _ab开头的字符
like ‘%ab \'cd%’ //这里要找的是: 包含 ab'cd 字符的字符

order by 与 limit:

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)

CREATE TABLE goods (goods_id MEDIUMINT(8) UNSIGNED PRIMARY KEY AUTO_INCREMENT,goods_name VARCHAR(120) NOT NULL DEFAULT '',cat_id SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',brand_id SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',goods_sn CHAR(15) NOT NULL DEFAULT '',goods_number SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',shop_price DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT '0.00',market_price DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT '0.00',click_count INT(10) UNSIGNED NOT NULL DEFAULT '0'
) ;INSERT INTO `goods` VALUES (1,'kd876',4,8,'ecs000000',1,1388.00,1665.60,9),
(4,'诺基亚n85原装充电器',8,1,'ecs000004',17,58.00,69.60,0),
(3,'诺基亚原装5800耳机',8,1,'ecs000002',24,68.00,81.60,3),
(5,'索爱原装m2卡读卡器',11,7,'ecs000005',8,20.00,24.00,3),
(6,'胜创kingmax内存卡',11,0,'ecs000006',15,42.00,50.40,0),
(7,'诺基亚n85原装立体声耳机hs-82',8,1,'ecs000007',20,100.00,120.00,0),
(8,'飞利浦9@9v',3,4,'ecs000008',1,399.00,478.79,10),
(9,'诺基亚e66',3,1,'ecs000009',4,2298.00,2757.60,20),
(10,'索爱c702c',3,7,'ecs000010',7,1328.00,1593.60,11),
(11,'索爱c702c',3,7,'ecs000011',1,1300.00,0.00,0),
(12,'摩托罗拉a810',3,2,'ecs000012',8,983.00,1179.60,13),
(13,'诺基亚5320 xpressmusic',3,1,'ecs000013',8,1311.00,1573.20,13),
(14,'诺基亚5800xm',4,1,'ecs000014',1,2625.00,3150.00,6),
(15,'摩托罗拉a810',3,2,'ecs000015',3,788.00,945.60,8),
(16,'恒基伟业g101',2,11,'ecs000016',0,823.33,988.00,3),
(17,'夏新n7',3,5,'ecs000017',1,2300.00,2760.00,2),
(18,'夏新t5',4,5,'ecs000018',1,2878.00,3453.60,0),
(19,'三星sgh-f258',3,6,'ecs000019',12,858.00,1029.60,7),
(20,'三星bc01',3,6,'ecs000020',12,280.00,336.00,14),
(21,'金立 a30',3,10,'ecs000021',40,2000.00,2400.00,4),
(22,'多普达touch hd',3,3,'ecs000022',1,5999.00,7198.80,16),
(23,'诺基亚n96',5,1,'ecs000023',8,3700.00,4440.00,17),
(24,'p806',3,9,'ecs000024',100,2000.00,2400.00,35),
(25,'小灵通/固话50元充值卡',13,0,'ecs000025',2,48.00,57.59,0),
(26,'小灵通/固话20元充值卡',13,0,'ecs000026',2,19.00,22.80,0),
(27,'联通100元充值卡',15,0,'ecs000027',2,95.00,100.00,0),
(28,'联通50元充值卡',15,0,'ecs000028',0,45.00,50.00,0),
(29,'移动100元充值卡',14,0,'ecs000029',0,90.00,0.00,0),
(30,'移动20元充值卡',14,0,'ecs000030',9,18.00,21.00,1),
(31,'摩托罗拉e8 ',3,2,'ecs000031',1,1337.00,1604.39,5),
(32,'诺基亚n85',3,1,'ecs000032',4,3010.00,3612.00,9);-- 分类表
CREATE TABLE category (cat_id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,cat_name VARCHAR(90) NOT NULL DEFAULT '',parent_id SMALLINT UNSIGNED
);INSERT INTO `category` VALUES
(1,'手机类型',0),
(2,'CDMA手机',1),
(3,'GSM手机',1),
(4,'3G手机',1),
(5,'双模手机',1),
(6,'手机配件',0),
(7,'充电器',6),
(8,'耳机',6),
(9,'电池',6),
(11,'读卡器和内存卡',6),
(12,'充值卡',0),
(13,'小灵通/固话充值卡',12),
(14,'移动手机充值卡',12),
(15,'联通手机充值卡',12);
SELECT * FROM goods
SELECT * FROM category-- 1:主键为32的商品
SELECT * FROM goods WHERE goods.goods_id = 32;
-- 2:不属第3栏目的所有商品(category中id为3)
SELECT * FROM goods WHERE goods.cat_id != 3;
-- 3:本店价格高于3000元的商品
SELECT * FROM goods WHERE goods.shop_price > 3000;
-- 4:本店价格低于或等于100元的商品
SELECT * FROM goods WHERE goods.shop_price <= 100;
-- 5:取出第4栏目或第11栏目的商品
SELECT * FROM goods WHERE goods.cat_id = 4 OR goods.cat_id = 11;
-- 6:取出100<=价格<=500的商品
SELECT * FROM goods WHERE goods.shop_price >= 100 AND goods.shop_price <= 500;
-- BETWEEN AND是能取到开始和结束的值,等价于>= and <=
SELECT * FROM goods WHERE goods.shop_price BETWEEN 100 AND 500;
-- 7:取出不属于第3栏目且不属于第11栏目的商品(and,或not in分别实现)
SELECT * FROM goods WHERE goods.cat_id != 3 AND goods.cat_id != 11;
SELECT * FROM goods WHERE goods.cat_id NOT IN (3,11);
-- 8:取出价格大于100且小于300,或者大于4000且小于5000的商品()
-- 这种写法很容易出歧义,要加括号,写出有歧义的语句并不能显出你多厉害
SELECT * FROM goods WHERE ((goods.market_price > 100 AND goods.market_price < 300) OR (goods.market_price > 4000 AND goods.market_price < 5000));
-- 9:取出第3个栏目下面价格<1000或>3000,并且点击量>5的系列商品
SELECT * FROM goods WHERE goods.cat_id = 3 AND (goods.market_price < 1000 OR goods.market_price > 3000) AND goods.click_count > 5;-- 10:取出第1个栏目下面的商品(注意:1栏目下面没商品,但其子栏目下有)    无限分类SELECT * FROM goods INNER JOIN category ON goods.cat_id = category.cat_id AND category.parent_id = 1;-- 11:取出名字以"诺基亚"开头的商品
-- like 模糊匹配
-- % 通配任意字符
-- _ 通配单一字符SELECT * FROM goods WHERE goods_name LIKE '诺基亚%';
SELECT * FROM goods WHERE goods_name LIKE '诺基亚___';
SELECT * FROM goods WHERE goods_name LIKE '%诺基亚%';-- 15:把goods表中商品名为'诺基亚xxxx'的商品,改为'HTCxxxx',
-- 提示:大胆的把列看成变量,参与运算,甚至调用函数来处理 .
-- substring(),concat()
SELECT goods_id,CONCAT('HTC',SUBSTR(goods_name,4)) AS goods_name FROM goods WHERE goods_name LIKE '诺基亚%';
-- 3、查询该店每个栏目下挤压的货款
SELECT cat_id ,SUM(goods_number * shop_price) AS total_price FROM goods GROUP BY cat_id;
-- 4、查询该店每个栏目下挤压的货款 > 20000
SELECT cat_id ,SUM(goods_number * shop_price) AS total_price FROM goods GROUP BY cat_id HAVING total_price > 20000;
-- 1、按照栏目由低到高排序,栏目内部按照价格由高到低排序
SELECT cat_id,shop_price,goods_name,goods_id FROM goods ORDER BY cat_id ASC ,shop_price DESC;
-- 2、取出价格最高的前三名商品
-- limit offset,rowcount
-- limit 偏移到哪个位置,往下数几个
SELECT cat_id,shop_price,goods_name,goods_id FROM goods ORDER BY shop_price DESC LIMIT 0,3;
-- 3、取出点击量第三名到第五名的商品
SELECT cat_id,shop_price,goods_name,goods_id,click_count FROM goods ORDER BY click_count DESC LIMIT 2,3;

【Java】数据库学习相关推荐

  1. java/数据库学习的心得

    这是学习java/数据库一年后写下的心得,也一并谈谈他们对我学习前端有哪些影响 java其实是一门很容易入门的语言,有点计算机基础的都能很好的上手,虽然已经一年多没写java了,回头再写肯定会生疏.但 ...

  2. oracle权限培训,Java培训-ORACLE数据库学习【2】用户权限

    查询用户拥有的权限: 1.查看所有用户:select *from dba_users;select *from all_users;select *from user_users; 2.查看用户或角色 ...

  3. 计算机毕业设计Java移动学习网站(系统+源码+mysql数据库+Lw文档)

    计算机毕业设计Java移动学习网站(系统+源码+mysql数据库+Lw文档) 计算机毕业设计Java移动学习网站(系统+源码+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 开发语 ...

  4. JAVA博弈论学习网站计算机毕业设计Mybatis+系统+数据库+调试部署

    JAVA博弈论学习网站计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA博弈论学习网站计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  5. 基于JAVA英语学习网站设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA英语学习网站设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA英语学习网站设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S ...

  6. 基于JAVA网络学习平台计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA网络学习平台计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA网络学习平台计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  7. java要学mysql 吗_做JAVA开发需要把数据库学习到何种程度

    原标题:做JAVA开发需要把数据库学习到何种程度 做JAVA开发需要把数据库学习到何种程度?智递科技小编和大家一起探讨交流: 1.开发人员对DB的掌握,越深入,你能做的事情就越多. 2.完成业务功能, ...

  8. 基于JAVA在线学习跟踪系统前台计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA在线学习跟踪系统前台计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA在线学习跟踪系统前台计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: ...

  9. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  10. 双表查询java代码_什么是JDBC?Java数据库连接性简介

    JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结果集.JDBC在1997年作为JDK 1.1的一部分发布,是为Java持久层开发的首批 ...

最新文章

  1. 清华唐杰:GPT-3表示能力已经接近人类了,但它有一个阿喀琉斯之踵
  2. Caffe学习系列(19): 绘制loss和accuracy曲线
  3. win7系统备份还原软件_收藏备用!操作系统的快速备份与还原技巧
  4. PHP性能追踪及分析工具xhprof的安装与使用
  5. mysql identifier name is too long_ORA-00972: identifier is too long 问题处理
  6. Unity 开发和配置
  7. 5G NR 链路自适应 Link Adaptation
  8. 安卓团课快进_青年大学习网上主题团课第十季第七期答案
  9. python学习之re库
  10. mysql_store_result和mysql_use_result
  11. 【飞行器】基于matlab四旋翼飞行器飞行控制系统【含Matlab源码 1266期】
  12. 【OSS】使用Element实现图片上传到OSS
  13. 商学院学习笔记(2)
  14. scala 的上界下界
  15. K8sAPI接口文档
  16. ssh免密报错:Could not resolve hostname : Name or service not known
  17. Java高级——OutOfMemoryError和StackOverflowError
  18. 远程桌面用administrator登录的原因简介
  19. EEG信号分析:关于时频分析方面的个人理解
  20. 周伯通的空明拳,米诺斯的星尘傀儡线,SAP Kyma的Serverless

热门文章

  1. 按照时间线帮你梳理10种预训练模型
  2. 国际高级护理实践的发展
  3. Part 1 start network programming:chapter SIX: 基于UDP的服务器端/客户端
  4. 360浏览器兼容模式的页面显示问题
  5. 网站开发进阶(三十二)HTML5之FileReader的使用
  6. 计算机组成原理——地址字长、机器字长、指令字长、存储字长
  7. 快递代领平台–需求分析
  8. Python变强有这70个项目就够了,一定要收藏
  9. java毕业设计智能医疗推荐系统Mybatis+系统+数据库+调试部署
  10. 通达OA v11.9 getdata任意命令执行漏洞复现+利用