外贸建站哪个好/网络黄页推广软件

外贸建站哪个好,网络黄页推广软件,昨天正常的网站突然显示建设中,多用户b2b2cSQL语句的定义: 概述: 全称叫 Structured Query Language, 结构化查询语言, 主要是实现 用户(程序员) 和 数据库软件(例如: MySQL, Oracle)之间交互用的. 分类: DDL: 数据定义语言, 主要是操作 数据库, 数据表, 字段, 进行: 增删改查(CURD) 涉及到的关键字: create, drop, …

SQL语句的定义:

概述:

全称叫 Structured Query Language, 结构化查询语言, 主要是实现 用户(程序员) 和 数据库软件(例如: MySQL, Oracle)之间交互用的.

分类:

DDL: 数据定义语言, 主要是操作 数据库, 数据表, 字段, 进行: 增删改查(CURD)
涉及到的关键字: create, drop, alter, show
DML: 数据操作语言, 主要是操作 表数据, 进行: 增删改(CDU) -> 统称为 更新语句.
涉及到的关键字: insert, delete, update
DQL: 数据查询语言, 主要是操作 表数据, 进行: 查询操作®
涉及到的关键字: select, from, where
DCL: 数据控制语言, 主要是 创建用户, 设置权限, 隔离级别等.

通用语法:

  1. SQL语句可以写一行, 也可以写多行, 最后用 分号 结尾.
  2. SQL语句不区分大小写, 为了阅读方便, 建议关键字大写, 其它都小写.
  3. 注释写法:
    /* 多行注释的文本 */
    # 单行注释
    – 单行注释

二, 数据类型的定义

概述:

就是用来限定某列值的范围的, 必须是: 整数, 小数, 字符串, 日期…

常用的数据类型:

  • 整型: int
  • 浮点型: float, double, decimal
  • 日期型: datetime
  • 字符串型: varchar(长度)

三, 约束的定义

概述;

在数据类型的基础上, 进一步对该列值做 限定.

(常用的)分类:

单表约束:
  • primary key 主键约束, 特点: 非空, 唯一, 一般结合 auto_increment(自动增长, 自增)一起使用.`
  • not null 非空约束, 即: 该列值不能为null, 但是可以 重复.
  • unique 唯一约束, 即: 该列值必须不重复, 但是可以 为空.
  • default 默认约束, 等价于Python的 缺省参数.
多表约束:
  • foreign key 外键约束

四, DQL语句(数据查寻语言)

DQL: 数据查询语言, 主要是操作 表数据, 进行: 查询操作®
涉及到的关键字: select, from, where

单表查询

(1) 单表查询 -> 简单查询
格式
# 单表查询, 完整查询格式如下:
select[distinct] 列名1 as 别名, 列名2 as 别名, ...
from数据表名
where组前筛选
group by分组字段
having组后筛选
order by排序字段 [asc| desc]	
limit起始索引, 数据条数;
案例
案例需求

单表查询 -> 简单查询

实现思路
  1. 创建商品表.
  2. 添加表数据.
  3. 查看表数据.
  4. 需求1: 查询所有的商品信息.
  5. 需求2: 查看商品名 和 商品价格.
  6. 扩展: 起别名: 列名, 表名都可以起别名.
  7. 格式: 列名 as 别名 或者 表名 as 别名, 其中 as 可以省略不写.
  8. 需求3: 查看结果是表达式, 将所有的商品价格+ 10, 进行展示.
# 1. 创建商品表.
create table product
(pid 		int primary key auto_increment, # 商品id, 主键pname		varchar(20), 	# 商品名price		double, 		# 商品单价category	varchar(32)		# 商品的分类id
);# 2. 添加数据表.
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'杰克琼斯',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'真维斯',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'相宜本草',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海澜之家',1,'c002');# 3. 查看表数据.
# 4. 需求1: 查询所有的商品信息
select * from product;
select pid, pname, pricem category_id from product;	# 效果同上.# 5. 需求2: 查看商品名 和 商品价格.
select pname, price from product;
# 6. 扩展: 起别名: 列名, 表名都可以起别名.
# 7. 格式: 列名 as 别名 或者 表名 as 别名, 其中 as 可以省略不写.
select pname as 商品名, price 商品价格 from product as p;# 8. 需求3: 查看结果是表达式, 将所有的商品价格+10, 进行展示.
select pname, price + 10 from product;
select pname, price + 10 as price from product;
(2)单表查询 -> 条件查询 -> 比较运算符
格式:
select 列名1, 列名2... from 数据表名 where 条件;
案例
案例需求

单表查询 -> 条件查询 -> 比较运算符

实现思路
  1. 创建商品表.
  2. 添加表数据.
  3. 查看表数据.
  4. 需求1: 查询所有的商品信息.
  5. 需求2: 查看商品名 和 商品价格.
  6. 格式 : select 列名1, 列名2… from 数据列表 where 条件;
  7. 场景1: 比较运算符, >, >=, <, <=, =, !=, <>
  8. 需求1: 查询商品名称为"花花公子"的商品所有信息:
  9. 需求2: 查询价格为800商品.
  10. 需求3: 查询价格不是800的所有商品.
  11. 需求4: 查询商品价格大于60元的所有商品信息.
  12. 需求5: 查询商品价格小于等于800元的所有商品信息.
# 1. 创建商品表.
create table product
(pid 		int primary key auto_increment, # 商品id, 主键pname		varchar(20), 	# 商品名price		double, 		# 商品单价category	varchar(32)		# 商品的分类id
);# 2. 添加数据表.
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'杰克琼斯',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'真维斯',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'相宜本草',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海澜之家',1,'c002');
# 3. 查看表数据.
# 4. 需求1: 查询所有的商品信息
select * from  product;
select pid, pname, pricem category_id from product;	# 效果同上.# 5. 需求2: 查看商品名 和 商品价格.
select pname, price from product;# 6. 格式: select 列名1, 列明2... from 数据表名 where 条件;
# 7. 场景1: 比较运算符, >, >=, <, <=, =, !=, <>.
# 8. 需求1: 查询商品名称为"花花公子"的商品所有信息.
select * from product where pname = '花花公子';# 9. 需求2: 查询价格为800商品.
select * from product where price = 800;# 10. 需求3: 查询价格不是800的所有商品.
select * from product where price != 800;
select * from product where price <> 800;		# 效果同上# 11. 需求4: 查询商品价格大于60元的所有商品信息.
select * from product where price > 60;# 12. 需求5: 查询商品价格小于等于800元的所有商品信息.
select * from product where price <= 800;
(3)单表查询 -> 条件查询 -> 逻辑运算符和范围查询
案例需求
  1. 创建商品表.
  2. 添加表数据.
  3. 查看表数据.
  4. 需求1: 查询所有的商品信息.
  5. 需求2: 查看商品名 和 商品价格.
  6. 格式 : select 列名1, 列名2… from 数据列表 where 条件;
  7. 场景2: 范围查询. between 值1 and 值2 -> 适用于连续的区间, in (值1, 值2…) -> 适用于 固定值的判断.
  8. 场景3: 逻辑运算符. and, or, not
  9. 需求6: 查询商品价格在200到800之间所有商品.
  10. 需求7: 查询商品价格是200或800的所有商品.
  11. 需求8: 查询价格不是800的所有商品.
# 1. 创建商品表.
create table product
(pid 		int primary key auto_increment, # 商品id, 主键pname		varchar(20), 	# 商品名price		double, 		# 商品单价category	varchar(32)		# 商品的分类id
);# 2. 添加数据表.
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'杰克琼斯',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'真维斯',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'相宜本草',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海澜之家',1,'c002');
# 3. 查看表数据.
# 4. 需求1: 查询所有的商品信息
select * from  product;
select pid, pname, pricem category_id from product;	# 效果同上.# 5. 需求2: 查看商品名 和 商品价格.
select pname, price from product;# 6. 场景2: 范围查询.	between 值1 and 值2 -> 适用于连续的区间,		in (值1, 值2...) -> 适用于 固定值的判断.
# 7. 场景3: 逻辑运算符. and, or, not
# 8. 需求6: 查询商品价格在200到800之间所有商品.
select * from product where price between 200 and 800;	# 包左包右.
select * from product where price price >= 200 and price <= 800;# 9. 需求7: 查询商品价格是200或800的所有商品.
select * from product where price in (200, 800);
select * from product where price = 200 or price = 800;# 10. 需求8: 查询价格不是800的所有商品.
select * from product where price != 800;
select * from product where not price = 800;
select * from product where price not in (800);
(4)单表查询 -> 条件判断 -> 模糊查询和非空判断
案例需求

单表查询 -> 条件判断 -> 模糊查询和非空判断

实现思路
  1. 创建商品表.
  2. 添加表数据.
  3. 查看表数据.
  4. 需求1: 查询所有的商品信息.
  5. 需求2: 查看商品名 和 商品价格.
  6. 场景4: 模糊查询. 字段名 like ‘_内容%’ _ 代表任意的1个字符 ; %代表任意的多个字符, 至少0个 , 至多无所谓.
  7. 需求9: 查询以’香’开头的所有商品.
  8. 需求10: 查询第二个字为’想’的所有商品.
  9. 场景5: 非空查询. is null, is not null, 不能用 = 来判断空.
  10. 需求11: 查询没有分类的商品.
  11. 需求12: 查询有分类的商品.
# 1. 创建商品表.
create table product
(pid 		int primary key auto_increment, # 商品id, 主键pname		varchar(20), 	# 商品名price		double, 		# 商品单价category	varchar(32)		# 商品的分类id
);# 2. 添加数据表.
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'杰克琼斯',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'真维斯',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'相宜本草',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海澜之家',1,'c002');
# 3. 查看表数据.
# 4. 需求1: 查询所有的商品信息
select * from  product;
select pid, pname, pricem category_id from product;	# 效果同上.# 5. 需求2: 查看商品名 和 商品价格.
select pname, price from product;
# 6. 场景4: 模糊查询. 字段名 like '_内容%'		_ 代表任意的1个字符; %代表任意的多个字符, 至少0个, 至多无所谓.
# 7. 需求9:查询以'香'开头的所有商品.
select * from product where pname like '香%';
# 8. 需求10: 查询第二个字为'想'的所有商品.
select * from product where pname like '想%';
select * from product where pname like '想';		# 只能查出 *想 两个字的, 不符合题设.# 9. 场景5: 非空查询.	is null, is not nunll, 	不能用=来判断空.
# 10. 需求11: 查询没有分类的商品.
select * from product where category_id = null;		# 不报错, 但是没有结果.
select * from product where category_id is null;	# 正确的, 判空操作.# 11. 需求12: 查询有分类的商品.
select * from product where category_id is not null;	# 正确的, 非空判断操作. 
(5)单表查询 -> 排序查询
格式:
select * from 表名 order by 排序的字段1 [asc | desc], 排序的字段2 [asc | desc], ...;

解释: 1. ascending: 升序, descending: 降序.
解释: 2. 默认是升序, 所以asc可以省略不写.

案例
  1. 创建商品表.
  2. 添加表数据.
  3. 查看表数据.
  4. 需求1: 查询所有的商品信息.
  5. 需求2: 查看商品名 和 商品价格.
  6. 需求1: 根据价格降序排列.
  7. 需求2: 根据价格降序排列, 价格一样的情况下, 根据分类降序排列.
# 1. 创建商品表.
create table product
(pid 		int primary key auto_increment, # 商品id, 主键pname		varchar(20), 	# 商品名price		double, 		# 商品单价category	varchar(32)		# 商品的分类id
);# 2. 添加数据表.
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'杰克琼斯',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'真维斯',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'相宜本草',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海澜之家',1,'c002');
# 3. 查看表数据.
# 4. 需求1: 查询所有的商品信息
select * from  product;
select pid, pname, pricem category_id from product;	# 效果同上.# 5. 需求2: 查看商品名 和 商品价格.
select pname, price from product;
# 6. 需求1: 根据价格降序排列.
select * from product order by price;		# 默认是: 升序.
select * from product order by price asc;	# 效果同上.
select * from product order by price desc;	# 价格降序排列.# 7. 需求2: 根据价格降序排列, 价格一样的情况下, 根据分类降序排列.
select * from product order by price desc, category_id desc;
(6) 单表查询 -> 聚合查询
定义
概述:

聚合查询是对表中的某列表数据做操作.

常用的聚合函数:
  • count() 统计某列值的个数, 只统计非空值. 一般用于统计 表中数据的总条数.
  • sum() 求和
  • max() 求最大值
  • min() 求最小值
  • avg() 求平均值
扩展: count(*), count(1), count(列)的区别是什么
区别1: 是否统计空值
  • count(列): 只统计该列的非空值.
  • count(1), count(*): 统计所有数据, 包括空值.
区别2: 效率问题

count(主键列) > count(1) > count(*) > count(普通列)

案例
案例需求

单表查询 -> 聚合查询

实现思路
  1. 创建商品表.
  2. 添加表数据.
  3. 查看表数据.
  4. 需求1: 查询所有的商品信息.
  5. 需求2: 查看商品名 和 商品价格.
  6. 需求1: 查询商品的总条数.
  7. 需求2: 查询价格大于200商品的总条数.
  8. 需求3: 查询分类为’c001’的所有商品价格的总和.
  9. 需求4: 查询分类为’c002’的所有商品的平均价格.
  10. 需求5:查询商品的`最大价格和最小价格 扩展: ctrl + alt + 字母L 代码格式化.
# 1. 创建商品表.
create table product
(pid 		int primary key auto_increment, # 商品id, 主键pname		varchar(20), 	# 商品名price		double, 		# 商品单价category	varchar(32)		# 商品的分类id
);# 2. 添加数据表.
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'杰克琼斯',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'真维斯',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'相宜本草',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海澜之家',1,'c002');
# 3. 查看表数据.
# 4. 需求1: 查询所有的商品信息
select * from  product;
select pid, pname, pricem category_id from product;	# 效果同上.# 5. 需求2: 查看商品名 和 商品价格.
select pname, price from product;# 6. 需求1: 查询商品的总条数.
select count(pid) as total_cnt from product;
select count(category_id) as total_cnt from product;
select count(*) as total_cnt from product;
select count(1) as total_cnt from product;# 7. 需求2: 查询价格大于200商品的总条数.
select count(pid) as total_cnt from product where price > 200;# 8. 需求3: 查询分类为'c001'的所有商品价格的总和.
select sum(price) as total_price from product where category_id = 'c001'# 9. 需求4: 查询分类为'c002'的所有商品的平均价格.
select avg(price) as avg_price from product where category_id = 'c002';# 10. 需求5: 查询商品的最大价格和最小价格		扩展: ctrl + alt + 字母L 代码格式化.
selectmax(price) as max_price,min(price) as min_price
fromproduct;
(6) 单表查询 -> 分组查询
图解

在这里插入图片描述

分组查询定义
概述:

简单理解为, 根据分组字段, 把表数据 化整为零, 然后基于每一个分组后的每个部分, 进行对应的聚合运算.

格式:
select1,2, ... from 数据表名 where 组前筛选 group by 分组字段 having 组后筛选;
细节
  1. 分组查询 一般要结合 聚合函数一起使用, 且根据谁分组, 就根据谁查询.
  2. 组前筛选用where, 组后筛选用having.
  3. where 和 having的区别是什么?
  • where: 组前筛选, 后边不能跟聚合函数.
  • having: 组后筛选, 后边可以跟聚合函数.
  1. 分组查询的查询列 只能出现 分组字段, 聚合函数.
  2. 如果只分组, 没有写聚合, 可以理解为是:基于分组字段, 进行去重查询.
案例
案例需求
  1. 创建商品表.
  2. 添加表数据.
  3. 查看表数据.
  4. 需求1: 查询所有的商品信息.
  5. 需求2: 查看商品名 和 商品价格.
  6. 需求1: 统计各个分类商品的个数.
  7. 需求2: 统计各个分类商品的个数, 且只显示个数大于1的信息.
  8. 需求3: 演示 如果只分组, 没有写聚合, 可以理解为是: 基于分组字段, 进行去重查询.
  9. 还可以通过 distinct 关键字来实现去重.
  10. 此时是: 按照category_id 和 price作为整体, 然后去重.
# 1. 创建数据表.
create table product
(pid			int primary key auto_increment,	# 商品id, 主键pname		varchar(20),	# 商品名price		double, 		# 商品单价category	varchar(32)		# 商品的分类id
);
# 2. 添加数据表.
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'杰克琼斯',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'真维斯',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'相宜本草',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海澜之家',1,'c002');	# 3. 查看数据表.
# 4. 需求1: 查询所有的商品信息.
select * from product;
select pid, pname, pricem, category_id from product; # 效果同上.# 5. 需求2: 查看商品名 和 商品价格.
select panme, price from product;
# 6. 需求1: 统计各个各个分类商品的个数.
select category_id, count(*) as total_cnt from product group by category_id;# 7. 需求2: 统计各个分类商品的个数, 且只显示个数大于1的信息.
selectcategory_id,count(*) as total_cnt
fromproduct
group bycategory_id		# 根据商品类别分组.
havingtotal_cnt > 1;	# 组后筛选# 8. 需求3: 演示 如果只分组, 没有写聚合, 可以理解为是: 基于分组字段, 进行去重查询.
select category_id from product group by category_id;
select category_id from product group by category_id;	# 9. 还可以通过 distinct 关键字来实现去重.
select distinct category_id from product;# 10. 此时是: 按照category_id 和 price 作为整体, 然后去重.
select distinct category_id, price from product;
select category_id, price from product group by category_id, price;	# 效果同上.
(7)单表查询 -> 分页查询
分页查询的定义
概述:

分页查询 = 每次从数据表中查询出固定条数的数据, 一方面可以降低服务器的压力, 另一方面可以降低浏览器的压力, 且可以提高用户的体验.

格式:
limit 起始索引, 数据条数;
细节:
  1. 表中每条数据都有自己的索引, 且索引是从0开始的.
  2. 如果是从索引0开始获取数据的, 则索引0可以省略不写.
  3. 要学好分页, 掌握如下的几个参数计算规则即可:
  • 数据总条数: count() 函数
  • 每页的数据条数: 产品经理, 项目经理, 你…
  • 每页的起始索引: (当前的页数 - 1) * 每页的数据条数
  • 总页数: (数据总条数 + 每页的数据条数 - 1) // 每页的数据条数
  •   		(13 + 5 - 1) // 5 = 17 // 5 = 3 页(14 + 5 - 1) // 5 = 18 // 5 = 3 页(15 + 5 - 1) // 5 = 19 // 5 = 3 页(16 + 5 - 1) // 5 = 20 // 5 = 4 页
    
案例
案例需求

单表查询 -> 分页查询

实现思路
  1. 创建商品表.
  2. 添加表数据.
  3. 查看表数据.
  4. 需求1: 查询所有的商品信息.
  5. 需求2: 查看商品名 和 商品价格.
  6. 需求1: 5条/页.
  7. 需求2: 3条/页.
# 1. 创建商品表.
create table product
(pid			int primary key auto_increment,	# 商品id, 主键pname		varchar(20),	# 商品名price		double,			# 商品单价category	varchar(32)		# 商品的分类id
)
# 2. 添加数据表.
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'杰克琼斯',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'真维斯',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'相宜本草',200, null);
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(null,'海澜之家',1,'c002');	# 3. 查看数据表.
# 4. 需求1: 查询所有的商品信息.
select * from product;
select pid, pname, pricem, category_id from product; # 效果同上.# 5. 需求2: 查看商品名 和 商品价格.
select panme, price from product;
# 6. 需求1: 统计各个各个分类商品的个数.
select category_id, count(*) as total_cnt from product group by category_id;# 7. 需求1: 5条/页.
select * from product limit 5;		# 第1页, 从索引0开始, 获取5条.
select * from product limit 0, 5;	# 第1页, 从索引0开始, 获取5条, 效果同上.
select * from product limit 5, 5;	# 第2页, 从索引5开始, 获取5条.# 8. 需求2: 3条/页.
select * from product limit 0, 3;	# 第1页, 从索引0开始, 获取3条.
select * from product limit 3, 3;	# 第2页, 从索引3开始, 获取3条.
select * from product limit 6, 3;	# 第3页, 从索引6开始, 获取3条.
select * from product limit 9, 3;	# 第4页, 从索引9开始, 获取3条.
select * from product limit 12, 3;	# 第5页, 从索引12开始, 获取3条.

五, 总结

  • Q1: 单表查询的格式?

select[distinct]1 as 别名,2 as 别名
from数据列表
where 组前筛选
group by分组字段
having组后筛选
order by排序字段 [asc | desc]
limit起始索引, 数据条数;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5000元组装一台本地运行中、小模型主机,参考配置 (运行DeepSeek、Qwen)

5000元组装一台本地运行中、小模型主机&#xff0c;参考配置 &#xff08;运行DeepSeek、Qwen) 5000元中、小模型主机 DeepSeek、Qwen 各精度模型推荐启动方式 模型名称 参数量 精度 模型大小 推荐运行模式 DeepSeek R1 7b Q4 5 GB LM Studio纯GPU 14b Q4 9 GB LM…

【新手初学】SQL注入getshell

一、引入 木马介绍&#xff1a; 木马其实就是一段程序&#xff0c;这个程序运行到目标主机上时&#xff0c;主要可以对目标进行远程控制、盗取信息等功能&#xff0c;一般不会破坏目标主机&#xff0c;当然&#xff0c;这也看黑客是否想要搞破坏。 木马类型&#xff1a; 按照功…

Containerd+Kubernetes搭建k8s集群

虚拟机环境设置&#xff0c;如果不是虚拟机可以忽略不看 1、安装配置containerd 1.1 添加 Kubernetes 官方仓库 安装cri-tools的时候需要用到 cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kub…

应用待机分组管控是啥

1. 应用待机群组是啥&#xff1f; Android 9 引入了一个新功能&#xff0c;叫应用待机群组。简单来说&#xff0c;就是根据你最近使用应用的频率和时间&#xff0c;系统会把应用分成不同的“群组”。每个群组的应用能用的系统资源不一样&#xff0c;比如后台任务、闹钟、网络请…

C/C++后端开发面经

字节跳动 客户端开发 实习 一面(50min) 自我介绍是否愿意转语言,是否只愿意搞后端选一个项目来详细谈谈HTTP和HTTPS有什么区别?谈一下HTTPS加密的具体过程&#xff1a; 非对称加密 对称加密 证书认证的方式 非对称加密是为了保证对称密钥的安全性。 对称…

【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】A题解题全流程(持续更新)

【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】A题解题全流程-思路&#xff08;持续更新&#xff09; 写在前面&#xff1a; 1、A题、C题将会持续更新&#xff0c;陆续更新发布文章 2、赛题交流咨询Q群&#xff1a;1037590285 3、全家桶依旧包含&#xff1a; 代码、…

如何让 history 记录命令执行时间?Linux/macOS 终端时间戳设置指南

引言:你真的会用 history 吗? 有没有遇到过这样的情况:你想回顾某个重要命令的执行记录,却发现 history 只列出了命令序号和内容,根本没有时间戳?这在运维排查、故障分析、甚至审计时都会带来极大的不便。 想象一下,你在服务器上误删了某个文件,但不知道具体是几点执…

CI/CD-Jenkins安装与应用

CI/CD-Jenkins安装与应用 Docker安装Jenkins docker-compose.yaml version: "3.8" # # 自定义网络配置 # networks:cicd:driver: bridgeservices:jenkins:# 尽量使用新版本的Jenkins, 低版本的Jenkins的有些插件使用不了# jenkins/jenkins:lts-jdk17是长期支持版…

验证Linux多进程时间片切换的程序

​​ 一、软件需求 在同时运行多个CPU密集型进程时&#xff0c;需采集以下统计信息&#xff1a; 当前运行在逻辑CPU上的进程ID每个进程的运行进度百分比 实验程序设计要求&#xff1a; 1. 命令行参数 参数说明示例值n并发进程数量3total总运行时长&#xff08;毫秒&…

IvorySQL:兼容Oracle数据库的开源PostgreSQL

今天给大家介绍一款基于 PostgreSQL 开发、兼容 Oracle 数据库的国产开源关系型数据库管理系统&#xff1a;IvorySQL。 IvorySQL 由商瀚高软件提供支持&#xff0c;主要的功能特性包括&#xff1a; 完全兼容 PostgreSQL&#xff1a;IvorySQL 基于 PostgreSQL 内核开发&#xf…

QT音乐播放器(1):数据库保存歌曲

实现功能&#xff1a;用数据库保存本地导入和在线搜索的歌曲记录 目录 一. 保存本地添加的歌曲 1. 使用QSettings &#xff08;1&#xff09;在构造函数中&#xff0c;创建对象。 &#xff08;2&#xff09;在导入音乐槽函数中&#xff0c;保存新添加的文件路径&#xff0c…

Spring AI MCP 架构详解

Spring AI MCP 架构详解 1.什么是MCP? MCP 是一种开放协议&#xff0c;它对应用程序向大语言模型&#xff08;LLMs&#xff09;提供上下文信息的方式进行了标准化。可以把 MCP 想象成人工智能应用程序的 USB-C 接口。就像 USB-C 为将设备连接到各种外围设备和配件提供了一种…

数据结构(并查集,图)

并查集 练习版 class UnionFindSet { public:void swap(int* a, int* b){int tmp *a;*a *b;*b tmp;}UnionFindSet(size_t size):_ufs(size,-1){}int UnionFind(int x){}void Union(int x1, int x2){}//长分支改为相同节点int FindRoot(int x){}bool InSet(int x1, int x2)…

数据结构:探秘AVL树

本节重点 理解AVL树的概念掌握AVL树正确的插入方法利用_parent指针正确更新平衡因子掌握并理解四种旋转方式&#xff1a;左单旋&#xff0c;右单旋&#xff0c;左右双旋&#xff0c;右左双旋 一、AVL树的概念 AVL树得名于它的发明者G. M. Adelson-Velsky和E. M. Landis&…

电源系统的热设计与热管理--以反激式充电器为例

前言 反激电源常用于各种电子设备中&#xff0c;比如充电器、适配器等&#xff0c;它们通过变压器进行能量转换。高温环境可能对电子元件造成影响&#xff0c;特别是像MOSFET、二极管、变压器这样的关键部件&#xff0c;导致效率变低&#xff0c;甚至可能导致功能失效。还有安…

linux课程学习二——缓存

一.文件io与标准io的一个区别 遇到死循环可以ctrl c结束进程 使用printf输出&#xff0c;输出没有问题 用wirte输出&#xff0c;参数1&#xff0c;可以理解为上面介绍的linux标准文件描述符的1&#xff08;STDOUT&#xff09;标准输出&#xff0c;我们加上一个死循环while&…

Kafka中的消息如何分配给不同的消费者?

大家好&#xff0c;我是锋哥。今天分享关于【Kafka中的消息如何分配给不同的消费者&#xff1f;】面试题。希望对大家有帮助&#xff1b; Kafka中的消息如何分配给不同的消费者&#xff1f; 在 Kafka 中&#xff0c;消息是通过 主题&#xff08;Topic&#xff09; 进行组织的&…

stock-pandas,一个易用的talib的替代开源库。

原创内容第841篇&#xff0c;专注智能量化投资、个人成长与财富自由。 介绍一个ta-lib的平替——我们来实现一下&#xff0c;最高价突破布林带上轨&#xff0c;和最低价突破布林带下轨的可视化效果&#xff1a; cross_up_upper stock[high].copy()# cross_up_upper 最高价突破…

JVM 面经

1、什么是 JVM? JVM 就是 Java 虚拟机&#xff0c;它是 Java 实现跨平台的基石。程序运行之前&#xff0c;需要先通过编译器将 Java 源代码文件编译成 Java 字节码文件&#xff1b;程序运行时&#xff0c;JVM 会对字节码文件进行逐行解释&#xff0c;翻译成机器码指令&#x…

【JavaScript】合体期功法——DOM(一)

目录 DOMWeb API 基本概念作用和分类 什么是 DOMDOM 树DOM 对象 获取 DOM 元素根据 CSS 选择器来获取 DOM 元素选择匹配的第一个元素选择匹配的多个元素 其他获取 DOM 元素方法 修改元素的内容对象.innerText 属性对象.innerHTML 属性案例&#xff1a;年会抽奖 修改元素属性修改…