数据库select语句使用(MySQL,MyAdmin,XAMPP)

目录

 

SELECT

聚合函数

FROM

WHERE

GROUP BY

HAVING

ORDER BY


SELECT-FROM-WHERE/ORDER BY/ 模式

SELECT

SELECT ‘想要查询的列名’,‘想要查询的列名’

SELECT 后加*代表展示全部内容

SELECT * FROM `products` ;

DISTINCT

去重

SELECT 
DISTINCT`firstName`,`jobTitle` 
FROM `employees` 

输出不重复的first Name和job Title,并且以first Name为主要的去重依据

注意,DISTINCT使用时只能把所有的待查找项放在DISTINCT后面,放在前面会报错的。

SELECT 后可加COUNT(*),

聚合函数

COUNT(*)代表计数,包括了所有的列,相当于统计表的行数,在统计结果的时候,不会忽略列值为NULL

COUNT(列名) 查找特定列,会忽略NULL 的值

WHERE中不能使用聚合函数COUNT

SELECT COUNT(*) FROM `products` ;

COUNT还可以和DISTINCT语句连用,表示返回列的不同值函数

SELECT COUNT(DISTINCT `lastName`)FROM `employees` 

SELECT 后加MAX('列名'),代表某列的最大值,

SELECT MAX(`MSRP`) FROM `products`;

SELECT 后加MIN('列名'),代表某列的最小值

SELECT MIN(`buyPrice`) FROM `products`

SELECT 后加SUM('列名'),代表某列的总和

SELECT SUM(`quantityInStock`) FROM `products`;

SELECT 后加AVG('列名'),代表某列的平均值

SELECT AVG(`buyPrice`) FROM `products`;

以上五个可以同时使用,他们皆为聚合函数,(即输入多个数据,输出一个数据)

AS

将某个列设置一个别名打出来,

两个数字列可以进行运算

SELECT `productCode`,`productName`,
`quantityInStock`*`buyPrice` AS 'On-Hand Stock Value' 
FROM products

FROM

FROM ’哪一个表(table)

WHERE

WHERE 限制条件,作用在列

WHERE中不能使用聚合函数COUNT

在WHERE中可以使用的关系运算符

AND

SELECT * FROM `products` WHERE 'price'>1000 AND 'num'>100;

OR

SELECT * FROM `products` WHERE 'price'>1000 OR 'num'>100;

运算符关系
=相等
>
<
>=
<=
<>不相等
!=不相等

<>和!=会直接将NULL值排除在外

NULL

NULL表示字段的值为空,(和空字符串 '  ' 是不一样的),严格按照字面意思

 来自力扣 584. 寻找用户推荐人

IS与=的区别

IS 通常以IS NULL 或者 IS NOT NULL出现用于判断是否为空值

= 通常用来判断两个值是否相等

LIKE

(模糊查找,%m,m%,%m%),含有

SELECT `productName` FROM `products` WHERE `productName` LIKE '%car'

%m 查找到以m结尾的语句 如 clam

m% 查找到以m开头的语句 如  mini

%m%查找到语句中间含有m的语句 如  immense

IN(精准查找)

找与括号里内容相等的,可以用来替代多个OR语句

SELECT `productName` FROM `products` WHERE `local` IN('CA','LA','NY')

输出products表里local为CA或local为LA或local为NY的producaName

BETWEEN AND(指定查找范围)

SELECT * FROM `products` WHERE 'price' BETWEEN 1000 AND 2000;

GROUP BY

就是合并行

这篇文章博主讲的很好

SELECT `Number` 
FROM `customers` 
GROUP BY `Number

以上代码的意思是以Number为分类依据输出sales

SELECT `country`,AVG(`creditLimit`)
FROM `customers` 
WHERE `country` IN ('Spain','Canada','France')
GROUP BY 'country'

查找country` =='Spain'或country` =='Canada'或country` =='France'的值并且以country分组输出country和credit Limit平均值

where与group by 混用

对where查找到的结果进行分组

HAVING

基于分组的结果来限制输出就是用having语句

HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似。WHERE 搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似

having用法详解(引用自having用法详解

SELECT productVendor
FROM `products` 
GROUP BY  productVendor
HAVING COUNT( productVendor)>8

按product Vendor分组之后筛选出product Vendor数目>8的并输出

力扣练习题  596. 超过5名学生的课

利用GROUP BY 和 HAVING 语句去筛选,进一步的理解GROUP BY 指的是将数据按一个标准分组,HAVING 是对分组后的结果进行限制

SELECT CLASS 
FROM courses
GROUP BY CLASS
HAVING COUNT(DISTINCT student) >= 5
#DISTINCT 用于去重

ORDER BY

排序,等级同SELECT FROM WHERE 

SELECT `lastName` FROM `employees` ORDER BY `lastName`

可以有多个排序标准,第一个为主要依据,在第一个相同的情况下以第二个排序标准,以此类推

SELECT `lastName`,`firstName` FROM `employees` ORDER BY `lastName`,`firstName`

默认皆是升序,若想要倒序则加入

SELECT `lastName` FROM `employees` ORDER BY `lastName` DESC

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值