序号 | 类型 | 地址 |
---|---|---|
1 | MySQL | MySQL操作之概念、SQL约束(一) |
2 | MySQL | MySQL操作之数据定义语言(DDL)(二) |
3 | MySQL | MySQL操作之数据操作语言(DML)(三) |
4 | MySQL | MySQL操作之数据查询语言:(DQL)(四-1)(单表操作) |
5 | MySQL | MySQL操作之数据查询语言:(DQL)(四-2)(多表查询) |
6 | MySQL | MySQL操作之数据控制语言:(DC)(五) |
7 | MySQL | MySQL操作之数据库函数 |
8 | MySQL | MySQL管理之数据类型 |
9 | MySQL | MySQL管理之索引 |
10 | MySQL | MySQL管理之事务管理 |
11 | MySQL | MySQL管理之存储过程 |
12 | MySQL | MySQL管理之视图 |
13 | MySQL | MySQL管理之数据备份与还原 |
14 | MySQL | Linux(centos 7.5)服务器安装MySQL |
15 | MyBatis | MyBatis从入门到多表关联 |
16 | MyBatis | MyBatis常用方法 |
17 | MyBatis | Mybatis逆向工程的使用(附文件地址) |
18 | MyBatis | spring boot连接Mybatis数据库的配置文件(MySql、SQLserver、Oracle) |
19 | MyBatis-Plus | Mybatis-Plus使用案例(包括初始化以及常用插件) |
20 | MyBatis-Plus | Mybatis-Plus(Service CRUD 接口) |
21 | MyBatis-Plus | Mybatis-plus 4种条件构造器方式 |
22 | MyBatis-Plus | Mybatis-Plus 执行自定义SQL |
23 | MyBatis-Plus | MyBatis-plus配置自定义SQL(执行用户传入SQL) |
24 | MyBatis-Plus | Mybatis-Plus(连接Hive) |
25 | MyBatis-Plus | Mybatis-Plus 代码生成器 |
SELECT [DISTINCT] * 字段名1,字段名2,字段名3...
FROM 表名
[WHERE 条件表达式1]
[GROUP BY 字段名[HAVING 条件表达式2]]
[ORDER BY 字段名 [AES|DESC]]
[LIMIT [OFFSET]记录数]
SELECT [DISTINCT] *
:表示通配符,查询全部,去重(distinct)FROM
:查询的表名WHERE
:用于指定查询条件[GROUP BY 字段名[HAVING 条件表达式2]]
:GROUP BY
是可选参数,用于将查询结果,按照指定字段排序。HAVING
可选参数,对分组后数据进行过滤。[ORDER BY 字段名 [AES|DESC]]
:将查询结果按指定字段进行排序。LIMIT
:限制单词查询出的数据量。distinct
使用:
查询所有的商品
select * from product;
查询商品名和商品价格
select pname,price from product;
别名查询.使用的关键字是as(as可以省略的)
select pname as pn from product as p
去掉重复值(distinct)
select distinct price from product
价格+10元进行显示
select price+10 from product
关系运算符 | 说明 |
---|---|
= | 等于 |
<> | 不等于 |
!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
<>
和!=
是等价的查询价格为800商品
SELECT * FROM product WHERE price = 800
查询价格不是800的所有商品
SELECT * FROM product WHERE price != 800
查询商品价格在200到1000之间所有商品
SELECT * FROM product WHERE price >= 200 AND price <=1000;
SELECT * FROM product WHERE price BETWEEN 200 AND 1000;
IN关键字,用于判断某个字段,是否存在于指定集合中
BETWEEN…AND… | 显示在某一区间的值(含头含尾) | 一定区间内的数 |
---|---|---|
IN(set) | 显示在in列表中的值,例:in(100,200) | 两个数中的一个 |
查询商品价格是200或800的所有商品
SELECT * FROM product WHERE price = 200 OR price = 800;
SELECT * FROM product WHERE price IN (200,800);
查询商品价格在200到1000之间所有商品
SELECT * FROM product WHERE price >= 200 AND price <=1000;
SELECT * FROM product WHERE price BETWEEN 200 AND 1000;
SELECT * |字段1,字段2....
FROM 表名
WHERE 字段名 IS [NOT] NULL
查询grade
为空的值
SELECT id,name,grade FROM student WHERE grade IS NULL;
查询grade
不为空的值
SELECT id,name,grade FROM student WHERE grade IS NOT NULL;
%
和_
%
:匹配多个,单个语句中可以有多个。_
:匹配单个,可以存在多个。查询含有’霸’字的所有商品
SELECT * FROM product WHERE pname LIKE '%霸%'
SELECT * FROM product WHERE pname LIKE '香%';--以香开头的
SELECT * FROM product WHERE pname LIKE '_想%'--第二个字为想的
SELECT * FROM product WHERE pname LIKE 'G__gle'--匹配(google)
SELECT * FROM product WHERE pname LIKE 'My SQL'--匹配(M_ _QL)
配置文本中含有%
和_
采用\%
和\_
进行判断
SELECT * FROM product WHERE pname LIKE '%\%%' --匹配(nam&e)
SELECT * FROM product WHERE pname LIKE '%\_%' --匹配(nam_e)
AND
关键字,条件都满足时,才会被查询出来SELECT id,name,gender FROM student
WHERE gender='男' OR gender='女' AND id=5;
结果(先取id为5的,再与gender=男/gender=男取交集):
id | gender | name |
---|---|---|
5 | 男 | 张三 |
4 | 男 | 李四 |
2 | 女 | 王五 |
OR
关键字,2个条件中,只要满足其中一个就被查询出来SELECT id,name,age FROM student WHERE id<5 OR gender='女';
AND
和OR
关键字共同被使用
AND
和OR
共同被使用时,AND
优先级高于OR
SELECT id,name,age FROM student WHERE id<5 OR gender='女';
查询商品的总条数(count)
SELECT COUNT(*) FROM product
查询商品的价格和(sum)
select sum(price) as 'totalprice' FROM product
查询分类为’c002’所有商品的平均价格(AVG)
SELECT AVG(price) FROM product WHERE category_id = 'c002'
查询商品的最大价格(MAX)
SELECT MAX(price) FROM product
查询商品的最小价格(MIX)
SELECT MIN(price) FROM product
格式:
SELECT 字段1,字段2...
FROM 表名
ORDER BY 字段1[ASC|DESC],字段2[ASC|DESC]...
NULL
,则它会呗排序第一条中(默认NULL为最小值)使用价格排序(降序)
SELECT * FROM product ORDER BY price DESC
在价格排序(降序)的基础上,以分类排序(降序)
SELECT * FROM product ORDER BY price DESC,category_id DESC
分组查询是指使用group by字句对查询信息进行分组
SELECT 字段1,字段2…
FROM 表名
GROUP BY 字段1,字段2… [HAVING 分组条件];
having与where的区别:
having是在分组后对数据进行过滤. where是在分组前对数据进行过滤 having后面可以使用聚合函数(统计函数) where后面不可以使聚合函数
根据分组进行查询数量
SELECT category_id ,COUNT(*) FROM product GROUP BY category_id;
统计各个分类商品的个数,且只显示个数大于1的信息
SELECT category_id ,COUNT(*) FROM product GROUP BY category_id HAVING COUNT(*) > 1;
统计各个分类商品的平均价格,且只显示平均价格>800的信息
SELECT category_id,AVG(price) FROM product GROUP BY category_id HAVING AVG(price)>800;
SELECT 字段1,字段2,...
FROM 表名
LIMIT [OFFSET,]记录数
OFFSET
表示偏移量。查询10条数据
SELECT * FROM student LIMIT 10;
查询第5~8位学生数据
SELECT * FROM student ORDER BY grade DESC LIMIT 4,4;