SELECT * FROM ecs_goods WHERE goods_id = 1;
SELECT goods_id, goods_name FROM ecs_goods WHERE goods_id = 1;
SELECT goods_id,cat_id,goods_name FROM ecs_goods WHERE cat_id != 3;
SELECT goods_id,cat_id,goods_name FROM ecs_goods WHERE cat_id <> 3;
SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE shop_price > 3000;
SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE shop_price <= 100;

SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE cat_id = 4 OR cat_id = 3;
SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE cat_id IN( 3, 4 );

SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE shop_price BETWEEN 100 AND 858;

SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE cat_id != 3 AND cat_id != 4
SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE cat_id NOT IN( 3, 4 );
SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE cat_id NOT BETWEEN 3 AND 4

SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE ( shop_price > 100 AND shop_price < 300 )
OR ( shop_price > 1000 AND shop_price < 3000 );

SELECT goods_id,cat_id,goods_name,shop_price,click_count FROM ecs_goods WHERE (cat_id = 3 ) AND ( shop_price >= 1000 AND shop_price <= 3000 )
AND ( click_count > 5 )

SELECT * FROM ecs_goods WHERE cat_id IN ( 2, 3, 4, 5 )

SELECT goods_id,cat_id,goods_name FROM ecs_goods WHERE goods_name LIKE '诺基亚%'

#把表中字段num取值范围为20~29之间的值变成20【注:ecshop2.7.3没有这个ecs_mian1这个表,可以自己创建一个,他就一个字段num, int类型,然后填充一些测试数据】

UPDATE ecs_mian1 SET num = ( FLOOR( num / 10 ) * 10 ) WHERE num >= 20 AND num <= 29

#把表中字段num取值范围为30~39之间的值变成30

UPDATE ecs_mian1 SET num = ( FLOOR( num / 10 ) * 10 ) WHERE num BETWEEN 30 AND 39

#以”诺基亚"开头的商品

SELECT goods_id, goods_name FROM ecs_goods WHERE goods_name LIKE '诺基亚%';

#截取"诺基亚"后面的商品名称,并用"小米"开始 连接起来
SELECT goods_id, CONCAT( '小米', SUBSTRING( goods_name, 4 ) ) FROM ecs_goods WHERE goods_name LIKE '诺基亚%';

#截取"诺基亚"后面的商品名称,并用"小米"开始 连接起来后更新
UPDATE ecs_goods SET goods_name = CONCAT( '小米', SUBSTRING( goods_name, 4 ) ) WHERE goods_name LIKE '诺基亚%'

#以上面的语句相反
UPDATE ecs_goods SET goods_name = CONCAT( '诺基亚', SUBSTRING( goods_name, 4 ) ) WHERE goods_name LIKE '小米%'

关于NULL:

SELECT NULL = NULL
SELECT NULL != NULL

#建表
CREATE TABLE ghost_user_info(
id INT( 3 ),
user_name VARCHAR( 20 )
)CHARSET utf8 ENGINE MYISAM;

#插入测试数据
INSERT INTO ghost_user_info VALUES( 1, '张三' );
INSERT INTO ghost_user_info VALUES( 2, NULL );

#user_name不等于NULL的记录,不能这样写
SELECT * FROM ghost_user_info WHERE user_name != NULL

#user_name不等于NULL的记录,应该这样写
SELECT * FROM ghost_user_info WHERE user_name IS NOT NULL

#同样的,等于NULL的记录应该是 IS NULL而不是 = NULL
SELECT * FROM ghost_user_info WHERE user_name = NULL
SELECT * FROM ghost_user_info WHERE user_name IS NULL

#统计函数

SELECT AVG( shop_price ) FROM ecs_goods;
SELECT MAX( shop_price ) FROM ecs_goods;
SELECT MIN( shop_price ) FROM ecs_goods;
SELECT COUNT(*) FROM ecs_goods;
SELECT SUM( shop_price ) / COUNT(*) FROM ecs_goods;

#积压货款
SELECT SUM( shop_price * goods_number ) FROM ecs_goods;

#统计每个分类的商品平均价格, group比较耗费资源(先按cat_id排序,再统计)

SELECT cat_id,AVG( shop_price ) FROM ecs_goods GROUP BY cat_id;

#查询每个分类下,商品的数量
SELECT cat_id, COUNT(*) FROM ecs_goods GROUP BY cat_id;

#每个分类下最贵的产品
SELECT cat_id, MAX(shop_price) FROM ecs_goods GROUP BY cat_id;

#本店价格比市场价格小200以上的商品
SELECT goods_id, goods_name, market_price - shop_price FROM ecs_goods WHERE market_price - shop_price > 200

#下面的语句,报错(Unknown column 'discount_price' in 'where clause' ),discount_price这个别名是结果集中(存在内存中)的,where后面的字段需要是磁盘表中的字段

SELECT goods_id, goods_name, ( market_price - shop_price ) AS discount_price FROM ecs_goods WHERE discount_price > 200

#可以用having关键字过滤查询出来的结果集
SELECT goods_id, goods_name, ( market_price - shop_price ) AS discount_price FROM ecs_goods WHERE 1 HAVING discount_price > 200

#多列排序

SELECT goods_id, cat_id, goods_name, shop_price FROM ecs_goods ORDER BY cat_id ASC, shop_price DESC;

#查询最新的商品1
SELECT goods_id, goods_name, cat_id FROM ecs_goods ORDER BY goods_id DESC LIMIT 0,1
#下面两句组合,等于后面的where子查询
SELECT goods_Id, goods_name,cat_id FROM ecs_goods WHERE goods_id = 32
SELECT MAX( goods_id ) FROM ecs_goods;
#(where子查询)查询最新的商品2
SELECT goods_Id, goods_name,cat_id FROM ecs_goods WHERE goods_id = ( SELECT MAX( goods_id ) FROM ecs_goods );

#from子查询:每一个分类下,最大的产品id( 最新的产品 )
SELECT goods_id, goods_name, cat_id FROM ecs_goods ORDER BY cat_id ASC, goods_id DESC
#把上面的语句 当前一个临时的表,放在from后面 组成一个from子查询
SELECT goods_id, goods_name, cat_id FROM ( SELECT goods_id, goods_name, cat_id FROM ecs_goods ORDER BY cat_id ASC, goods_id DESC ) AS tmp GROUP BY cat_id

#查询有商品的分类

SELECT * FROM ecs_category c WHERE EXISTS( SELECT * FROM ecs_goods g WHERE g.cat_id = c.cat_id );

#查询没有商品的分类

SELECT * FROM ecs_category c WHERE not EXISTS( SELECT * FROM ecs_goods g WHERE g.cat_id = c.cat_id );

参考:

MySQL EXISTS 和 NOT EXISTS 子查询语法如下:

  • SELECT … FROM table WHERE EXISTS (subquery)

该语法可以理解为:将主查询的数据,放到子查询中做条件验证,根据验证结果(TRUE 或 FALSE)来决定主查询的数据结果是否得以保留。

#查出主队与客队在2016-06-01~2016-07-01的名称以及比赛结果

create table m(
mid int,
hid int,
gid int,
mres varchar(10),
matime date
)engine myisam charset utf8; create table t (
tid int,
tname varchar(20)
)engine myisam charset utf8; insert into m
values
(1,1,2,'2:0','2006-05-21'),
(2,2,3,'1:2','2006-06-21'),
(3,3,1,'2:5','2006-06-25'),
(4,2,1,'3:2','2006-07-21'); insert into t
values
(1,'国安'),
(2,'申花'),
(3,'布尔联队');
SELECT m.*, t1.`tname`, t2.`tname` FROM m INNER JOIN t AS t1
ON m.`hid` = t1.`tid` INNER JOIN t AS t2 ON m.`gid` = t2.`tid`
WHERE m.`matime` BETWEEN '2006-06-01' AND '2006-07-01'

mysql常用语句练习-基于ecshop2.7.3数据库(1)的更多相关文章

  1. MySQL 常用语句 (汇集)

    原文地址:MySql常用语句作者:wuyanle 一.mysql常用语句 创建,删除和最基本查询: 显示数据库  mysql->show databases; 创建数据库  mysql-> ...

  2. MySQL 常用语句大全

    MySQL 常用语句大全 一.连接 MySQL 格式: mysql -h 主机地址 -u 用户名 -p 用户密码 1.例 1:连接到本机上的 MYSQL. 首先在打开 DOS 窗口,然后进入目录 my ...

  3. 0927—MySQL常用语句集合

    一.连接MySQL 格式: mysql -h 主机地址 -u 用户名 -p 用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysql bin,再键入命令mysql ...

  4. oracle 和 mysql 常用语句对比汇总

    文章目录 一.数据库管理 1.1 用户管理 1.1.1 mysql用户.权限管理 1.1.2 oracle 用户.角色.权限管理 二.DQL 语句 2.1 基础查询 1.常量查询的区别: 2.字符串拼 ...

  5. MYSQL 常用语句与函数命令

    进图数据库mysql –u root –p 输入密码后进入 查看数据库: show databases; 进入数据库:use dvwa; 查看该数据库的表:show tables; 查操作: sele ...

  6. MySQL常用语句

    第1章 SQL结构化语言 1.什么是SQL? SQL,英文全称Structured Query Language,中文意思是结构化查询语言,它是一种关系型数据库中的数据进行定义和操作的语言方法,是大多 ...

  7. mysql常用语句总结

    1.创建语句 CREATE DATABASE database_name //创建数据库 //删表 DROP TABLE IF EXISTS `t_social_user_extend`; //建表C ...

  8. mysql常用语句、命令(增删改查功能)

    修改数据库的字符集    mysql>use mydb    mysql>alter database mydb character set utf8;创建数据库指定数据库的字符集    ...

  9. 【数据库】10.0 MySQL常用语句(一)

    显示数据库语句: SHOW DATABASES    只是显示数据库的名字 显示数据库创建语句: SHOW CREATE DATABASE db_name 数据库删除语句: DROP DATABASE ...

随机推荐

  1. 【文文殿下】[CEOI2004]锯木厂选址 题解

    题解 我们枚举建厂的位置,发现有个\(n^2\)的DP.随手搞个斜率优化到\(O(n)\). #include<bits/stdc++.h> using namespace std; ty ...

  2. [学习笔记]普通平衡树Splay

    哈哈哈哈哈哈哈终于会打\(splay\)啦 现在我来发一下\(splay\)的讲解吧 小蒟蒻由于码风与他人不同,所以自己找了上百篇码风诡异的\(splay\)合成的,感谢\(zcysky\)的代码与我 ...

  3. zabbix 监控安装

    注意:此篇是在安装好lnmp环境后才能部署的操作,所以,做之前准备好lnmp环境,或者可以参考我做的lnmp环境,之后接着此篇开始安装 监控系统Zabbix-3.2.1的安装 zabbix-serve ...

  4. Python小白学习之路(二十五)—【装饰器的应用】

    通过一个任务来加深对装饰器的理解和应用 回顾:装饰器的框架 def timmer(func): def wrapper(): func() return wrapper 任务:给以下正在运行的程序加一 ...

  5. 5_Python OOP

    1. 实例属性和类属性        (1) 实例属性在构造函数__init__中定义,定义时以self作为前缀,只能通过实例名访问        (2) 类属性在类中方法之外单独定义,还可以在程序中 ...

  6. vue教程1-08 交互 get、post、jsonp

    vue教程1-08 交互 get.post.jsonp 一.如果vue想做交互,引入: vue-resouce 二.get方式 1.get获取一个普通文本数据: <!DOCTYPE html&g ...

  7. odoo开发笔记 -- 前台不同视图访问同一个模型

    看一下partner这个表, 客户和供应商,都用这个表,那怎么区分呢: 供应商: 客户 注意这两个里面用domain来进行区分:   <field name="domain" ...

  8. Webflux快速入门

    SpringWebflux是SpringFramework5.0添加的新功能,WebFlux本身追随当下最火的Reactive Programming而诞生的框架,那么本篇就来简述一下这个框架到底是做 ...

  9. 阿里云安装配置Ghost

    阿里云手动重装系统N次了,折腾不止.  系统环境 CentOS 6.3 X64 , 两块硬盘 系统 +数据盘 #重新挂载硬盘 [root@AY14040623435015772eZ ~]# fdisk ...

  10. [Java初探实例篇02]__流程控制语句知识相关的实例练习

    本例就流程控制语句的应用方面,通过三个练习题来深入学习和巩固下学习的流程控制语句方面的知识,设计到,if条件判断语句,switch多分支语句,for循环语句及其嵌套多层使用,while循环语句. 练习 ...