爱易网
IT新闻
IT新闻
爱易资讯
网站搭建
云虚拟主机教程
云服务器教程
Apache教程
IIS教程
Nginx教程
网站策划
站长文章
推广教程
淘宝客教程
网页设计
HTML教程
XHTML教程
CSS教程
HTML5教程
CSS3教程
JavaSript基础
JQuery教程
Node.js教程
前端技术
Ajax教程
Js特效
Xml教程
平面设计
页面UI设计
photoshop教程
程序开发
AI人工智能
Asp教程
Php教程
Asp.Net教程
Net Core教程
C#教程
Java教程
Jsp教程
开发技术
微信小程序教程
Uniapp开发教程
微信公众号开发
Andriod教程
IOS教程
DOS教程
Python教程
Docker教程
Windows Container教程
数据库
MSSQL教程
MySQL教程
Redis教程
Access教程
Oracle教程
数据库教程
操作系统
Linux教程
Windows教程
MAC教程
Cisco教程
交换机教程
防火墙教程
搜索
爱易网页
MySQL教程
刘说成 mysql 学习笔记2
刘说成 mysql 学习笔记2
日期:2014-05-16 浏览次数:21107 次
刘道成 mysql 学习笔记2
仿ecshop建库 create database mugua charset utf8; use mugua; create table goods( goods_id int primary key auto_increment, cat_id smallint not null default 0, goods_sn char(15) not null default '', goods_name varchar(30) not null default '', click_count mediumint unsigned not null default 0, brand_id smallint not null default 0, goods_number smallint not null default 0, marcket_price decimal(7,2) not null default 0.00, shop_price decimal(7,2) not null default 0.00, add_time int unsigned not null default 0 )charset utf8; 从一个数据库导数据到另一个数据库的方法 会碰到中文出现乱码 先运行这个语句 set names gbk insert into mugua.goods select goods_id,cat_id,goods_sn,goods_name,click_count, brand_id,goods_number,market_price,shop_price,add_time from shop.goods; create table category( cat_id smallint primary key auto_increment, cat_name varchar(30) not null default '', parent_id smallint not null default 0 )charset utf8; insert into mugua.category select cat_id,cat_name,parent_id from shop.category; create table brand( brand_id smallint primary key auto_increment, brand_name varchar(30) not null default'' )charset utf8; insert into mugua.brand select brand_id,brand_name from shop.brand; (一)where 表达式在哪一(几)行成立 就把那一(几)行取出来 select * from goods where cat_id=3; select * from goods where cat_id !=3; 等价于 select * from goods where cat_id <>3; select * from goods where cat_id>3; select * from goods where cat_id<3; select * from goods where cat_id>=3; select * from goods where cat_id<=3; select * from goods where cat_id in(3,4); select * from goods where cat_id between 3 and 5; select * from goods where cat_id >3 or cat_id <=2; select * from goods where cat_id>=3 and cat_id<=6; (二)group by 分组查询 group by 与max min sum avg count连用 1 查出最贵商品价格 select max(shop_price) from goods; 2 查出最便宜商品价格 select min(shop_price) from goods; 3 查出商品总量 select sum(goods_number) from goods; 4 查出所有商品平均价格 select avg(shop_price) from goods; 5,查出所有商品总类 select count(goods_id) from goods; #查询每个栏目下 要用到group by 1 查出最贵商品价格 select cat_id,max(shop_price) from goods group by cat_id; 2 查出最便宜商品价格 select cat_id,min(shop_price) from goods group by cat_id; 3 查出商品总量 select cat_id,sum(goods_number) from goods group by cat_id; 4 查出所有商品平均价格 select cat_id,avg(shop_price) from goods group by cat_id; 5,查出所有商品总类 select cat_id,count(goods_id) from goods group by cat_id; #把列名当变量就可以进行运算了 可以写出更加高效的sql语句 #查询每个栏目下积压的货款 select cat_id,sum(shop_price*goods_number) from goods group by cat_id; #查询出每个商品比市场价低多少 select goods_id,goods_name,marcket_price-shop_price as cha from goods; (三)having查询 where 发挥作用的时间在查表结果之前 having 是筛选 是对查询结果的进一步选择 1,查询比市场价省200元以上得物品价格以及所省的钱 select goods_name,goods_id,marcket_price-shop_price as sheng from goods having sheng>200; 如果写成 select goods_name,goods_id,marcket_price-shop_price as sheng from goods where sheng>200; 是错误的 当然也可以写成 select goods_name,goods_id,marcket_price-shop_price as sheng from goods where marcket_price-shop_price>200; 只不错计算了两次 不如having 好 2,查询积压货款超过 20000元货款的栏目 以及该货款 select cat_id,sum(shop_price*goods_number) as jiya from goods group by cat_id having jiya>20000; 更多资源 http://www.taobtbw.com/ (四)order by 和limit查询 1,按价格由高到低排序 select goods_name,goods_id,shop_price from goods order by shop_price desc; 2,按发布时间由早到晚排序 select goods_id,goods_name,add_time from goods order by add_time; 3,按栏目由低到高排序,栏目内部按价格由高到低排序 select goods_id,goods_name,cat_id,shop_price from goods order by cat_id asc,shop_price desc; limit 的用法 limit在语句的最后 起到限制的作用 limit[offset]N offset :偏移量 N;去处的条目数量 offset不写则相当于 limit 0,N 是从0 开始算的 而不是1 4,取出价格最高的前三名商品 select goods_id,goods_name,shop_price from goods order by shop_price desc limit 0,3; 5,取出点击量前三名到前5名的商品 select goods_id,goods_name,click_count from goods order by click_count desc limit 2,3; 思考题 :取出每个栏目下最贵的商品 错误1:select goods_id,goods_name,cat_id,max(shop_price) from goods group by cat_id 错误原因是用了聚合函数 而其他栏目以第一次遇到的为准 错误2: selec
上一篇:MYSQL锁处理
下一篇: java联接mysql示例代码
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
记要一次mysql断电后无法启动
为什么运行时表的大小和实际物理文件大小差别会那么大,该如何解决
ERROR 1044
sql双重查询解决办法
一个表,查一周内相同时间的记录数,该如何处理
游标的输出如何做为表名的变量
datetime类型的默认值有关问题
各位大侠们好,小弟的触发器总是报错,帮忙看看吧,多谢啦
length 和 char_lenght 返回的值如何是一样的
推荐阅读
更多>
MySQL 怎么判断一个临时表是否存在
mysql 批改密码
[征集]分组取最大N条记录方法征集,及散分(新年,升星)解决办法
Drbd + heartbeat + mysql replication回构建mysql的高可用性
怎么多表联合查询并改变显示的值
求个数据库监控软件。解决思路
'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件的解决方法
mysql 数据表归拢并且只重复数据只读取一条
MySQL 的备份步骤
xampp 用phpmyadmin在页面下修改密码后,无法登陆,密码没有关问题
请问:怎么优化这条sql
拔高MySQL索引策略一:隔离查询列
4个表的复杂联合查询,
Mysql Oracle 迁徙
6表联合查询,有一个表数据有1万多,访问速度10多秒解决方法
grouy+having如何用来?求最简单的例子
中文字符 Mysql Data too long for column 'name' at row 一
关于mysql临时表的有关问题
phpmyadmin同时管理多个数据库解决思路
话论mysql中的那些‘联接’