首页 > 数据库 >SQL查询(单表查询)

SQL查询(单表查询)

时间:2022-10-31 14:31:47浏览次数:38  
标签:category product price 查询 pname 单表 SQL SELECT


 

目录

​​目标​​

​​前期准备:​​

​​基础数据:​​

​​简单查询:(这是直接条件直接复制在自己的编辑器里,自己试着练习)​​

​​条件查询:​​

​​排序查询:​​

​​聚合查询:(横向查询,列)​​

​​分组查询:​​


目标

本篇博客侧重于对于基础的练习,简单查询,条件查询,排序查询,组合查询,聚合查询,分组查询等。每个查询都有对应的小例子,如果你是初学者,建议至少写3遍以上。前期的数据准备,我这里已经准备好,没有必要浪费时间再去建库,建表,插入数据等操作,我们的目标在于对于单表查询的掌握。

前期准备:

 首先把基础数据在,自己的用户库运行一下,接下来进行一系列的查询操作。 查询的条件,我会专门放到外边,便于你的练习。我是用的是sqlyong.

SQL查询(单表查询)_字段

基础数据:

CREATE DATABASE cyl;
USE cyl;

#创建商品表:
CREATE TABLE product(
-- 商品主键
pid INT PRIMARY KEY,
-- 商品名称
pname VARCHAR(20),
-- 商品价格
price DOUBLE,
-- 商品分类
category_id VARCHAR(32)
);
INSERT INTO product(pid,pname,price,category_id) VALUES(1,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(2,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(3,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(4,'JACK JONES',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(5,'真维斯',200,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(6,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(7,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(8,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(9,'相宜本草',200,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(10,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(11,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(12,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(13,'果9',1,NULL);

简单查询:(这是直接条件直接复制在自己的编辑器里,自己试着练习)

  • #(注意别名)
  • #查询所有的商品.    
  • #查询商品名和商品价格.
  • #别名查询.使用的关键字是as(as可以省略的).表别名:
  • #别名查询.使用的关键字是as(as可以省略的).列别名:
  • #去掉重复值.
  • #查询结果是表达式(运算查询):将所有商品的价格+10元进行显示. 
#查询所有的商品.
SELECT *FROM product;
#查询商品名和商品价格.(这里我忘记,(pname,price)逗号)
SELECT pname,price FROM product;
#别名查询.使用的关键字是as(as可以省略的).表别名:
#select pname "电脑",price "价格" from product;
SELECT pname,price FROM product AS p;
#别名查询.使用的关键字是as(as可以省略的).列别名:
SELECT pname AS n FROM product AS p;

#去掉重复值.
SELECT DISTINCT price FROM product;

#查询结果是表达式(运算查询):将所有商品的价格+10元进行显示.
SELECT price+10 FROM product;

条件查询:

#(not,in,is,is not)这个四种方式的使用,我忘了
#查询商品名称为“花花公子”的商品所有信息:
#查询价格为800商品
#查询价格不是800的所有商品
#查询商品价格大于60元的所有商品信息
#查询商品价格在200到1000之间所有商品
#查询商品价格是200或800的所有商品
#查询以'香'开头的所有商品
#查询第二个字为'想'的所有商品
#商品没有分类的商品
#查询有分类的商品

#查询商品名称为“花花公子”的商品所有信息:
SELECT *FROM product WHERE pname="花花公子";

#查询价格为800商品
SELECT *FROM product WHERE price=800;

#查询价格不是800的所有商品(第三种方法,需要注意啦)
SELECT *FROM product WHERE price<>800;
SELECT *FROM product WHERE price!=800;
SELECT *FROM product WHERE NOT(price=800);

#查询商品价格大于60元的所有商品信息
SELECT *FROM product WHERE price>800;

#查询商品价格在200到1000之间所有商品
SELECT *FROM product WHERE price BETWEEN 200 AND 1000;
SELECT *FROM product WHERE price>=200 AND price<=1000;

#查询商品价格是200或800的所有商品
SELECT *FROM product WHERE price=200 OR price=800;
SELECT *FROM product WHERE price IN(200,800);

#查询以'香'开头的所有商品(我把顺序竟然记错了)
SELECT *FROM product WHERE pname LIKE "香%";

#查询第二个字为'想'的所有商品
SELECT *FROM product WHERE pname LIKE "_想%";

#查询含有为'想'的所有商品
SELECT *FROM product WHERE pname LIKE "%想%";

#查询第3个字为'你'的所有商品
SELECT *FROM product WHERE pname LIKE "__你%";

#商品没有分类的商品
#SELECT *FROM product WHERE category_id=null;(这种方式是错误的)
SELECT *FROM product WHERE category_id IS NULL;

#查询有分类的商品
SELECT *FROM product WHERE category_id IS NOT NULL;

排序查询:

#SELECT * FROM 表名 ORDER BY 排序字段 ASC|DESC;
#ASC 升序 (默认)
#DESC 降序

#使用价格排序(降序)
#在价格排序(降序)的基础上,以分类排序(降序)
#显示商品的价格(去重复),并排序(降序)

#使用价格排序(降序)
SELECT * FROM product ORDER BY price DESC;

#在价格排序(降序)的基础上,以分类排序(降序)
SELECT * FROM product ORDER BY category_id DESC;

#显示商品的价格(去重复),并排序(降序)

SELECT DISTINCT price FROM product ORDER BY price DESC;

聚合查询:(横向查询,列)

聚合函数的字段,sum,count,avg,max,min,.#查询商品的总条数
#查询价格大于200商品的总条数
#查询分类为'c001'的所有商品的总和
#查询分类为'c002'所有商品的平均价格
#查询商品的最大价格和最小价格

SELECT *FROM product;
#查询商品的总条数
SELECT COUNT(*) FROM product;

#查询价格大于200商品的总条数
SELECT COUNT(*) FROM product WHERE price>200;

#查询分类为'c001'的所有商品的总和
SELECT SUM(price) FROM product WHERE category_id='c001';

#查询分类为'c002'所有商品的平均价格
SELECT AVG(price) FROM product WHERE category_id='c002';

#查询商品的最大价格和最小价格
SELECT MIN(price),MAX(price) FROM product;

分组查询:

SELECT 字段1,字段2… FROM 表名 GROUP BY分组字段 HAVING 分组条件;
#统计各个分类商品的个数
#统计各个分类商品的个数,且只显示个数大于1的信息

#统计各个分类商品的个数
SELECT category_id, COUNT(*) FROM product GROUP BY category_id;

#统计各个分类商品的个数,且只显示个数大于1的信息
SELECT category_id,COUNT(*) FROM product GROUP BY category_id HAVING COUNT(*)>1;

 

 

 

 

 

 

标签:category,product,price,查询,pname,单表,SQL,SELECT
From: https://blog.51cto.com/u_12277263/5809656

相关文章

  • SQL Server--with (nolock)的使用
    With(nolock)可以提高sql的查询性能,因为他不需要考虑所查询表的transaction lock,也正因为如此,可能会造成dirty read,因为trans中已经修改而未提交的数据会被查询出来,所以......
  • mysql5.7分组后没有取第一条的问题
    解决方案  来源:https://blog.csdn.net/weixin_43185775/article/details/125973529......
  • 完成全查询商品(ssm框架)
    目录结构:  注意: 标记的数字,是本次需要修改的地方,分为(1,2,3,4,5,6)。​​ssm框架的搭建​​,我在上一篇博客有详细的介绍,这里就不详细介绍了。实现功能:思路分析数据库准备......
  • MySQL(狂神)
    1、初识MySQLJavaEE:企业级Java开发Web前端(页面:展示,数据!)后台(连接点:连接数据库JDBC,连接前端(控制,控制视图跳转,和给前端传递数据))数据库(存数据,txt,excel,world)......
  • php 数据遍历查询
    //查询出所有需要待更新的数据,分页处理$query=OrderExportJob::query();$page=1;$limit=1000;$count=$data=$query->f......
  • Windows修改mysql5.7数据库存储位置
    文章目录​​一、默认位置​​​​二、修改位置​​​​第一步:找到查找的位置​​​​第二步:复制Data到你想要的位置顺便复制下路径​​​​第三步:修改my.ini​​​​三、重......
  • Spark SQL读取parquet文件
        Parquet是一种流行的列式存储格式,可以高效地存储具有嵌套字段的记录,还可以针对相同类型的列进行压缩。介绍:使用:......
  • SQL查询(提高版--1)
    表名和字段准备工作:表设计:   –1.学生表    Student(s_id,s_name,s_birth,s_sex)–学生编号,学生姓名,出生年月,学生性别    –2.课程表    Cour......
  • idea技巧之sql反向定位数据库表,以及智能提示
    文章目录​​一、首先没有提示之前,背景是这个颜色,且写sql没有提示​​​​二、首先需要设置数据库,我这里是mysql​​​​第二步:连接数据库​​​​正常使用背景变为绿色......
  • 赏金猎人笔记-手动sqli
      声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。本文选......