(数据库-MySQL)表-数据查询

MySQL 数据库使用SQL SELECT语句来查询数据。

以下为在MySQL数据库中查询数据通用的 SELECT 语法:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • SELECT 命令可以读取一条或者多条记录。
  • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
  • 你可以使用 WHERE 语句来包含任何条件。
  • 你可以使用 LIMIT 属性来设定返回的记录数。
  • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

通用格式: select [distinct] [*] [列名1,列名2] from 表名 where 条件 group by ..having 条件过滤 order by 排序

我们一起来创建数据,然后使用select实现查询:

1.创建数据表,插入数据

create table orders(
  id int,
  product varchar(20),
  price float
);
set names gbk;
insert into orders(id,product,price) values(1,'电视',900);
insert into orders(id,product,price) values(2,'洗衣机',100),(3,'洗衣粉',90),(4,'桔子',9),(5,'洗衣粉',90);

2.查询实现

select * from orders;

另外,对表中部分列的查询:(比如产品、价格)

select product,price from orders;

在运行这个之前,临时插入了一条数据,不用在意最后多的!

其他查询方式:

1、别名查询,使用as的关键字,as关键字时可以省略的

   --表的别名(对于多表混合查询,比较实用)

   来个简单的示例

   select o.product,o.price from orders as o;

   --列的别名(对列名可以使用中文展示,容易看懂)

   来个简单的示例

   select product as 商品,price as 价格 from orders;

   省略关键字as,效果一样:

   select product 商品,price 价格 from orders;

2、去掉重复的值,distinct

select distinct price from orders;

3、select运算查询(仅仅对查询结果进行了运算<+ - * />)

select *,price*0.8 折后价 from orders;

4、条件查询

比如,对价格大于100的所有商品进行查询

 select * from orders where price > 100;

--关系运算符:> >= < <= != <>

  <>:不等于,标准SQL语法

  !=:不等于,非标准SQL语法

  查询价格不等于90的所有商品,尝试一下

  select * from orders where price <> 90;

  select * from orders where price != 90;

  查询价格在9到900之间的商品

  select * from orders where price >9 and price <900;

  如果使用between ... and ...,将包含符合数据的信息

  select * from orders where price between 9 and 900;

  如果数字从大到小,返回,查询位空

  select * from orders where price between 10 and 900;

  select * from orders where price between 900 and 10;

--逻辑运算:and,or,not

  查询价格小于90,或大于100的商品

  select * from orders where price <90 or price > 100;

--模糊查询:like

  _:代表是一个字符

  %:代表是多个字符

  select * from orders where product like "%衣%";

  select * from orders where product like "_视%";

--在某个范围中获得值:in

  查询商品价格为900,9的所有商品

  select * from orders where price in (9,900);

5、排序查询

order by关键字

     asc:ascend 升序(默认的排序方式)

     desc:descend 降序

示例:

查询所有商品,默认、升序、降序!

select * from orders order by price;

select * from orders order by price asc;

select * from orders order by price desc;

select * from orders where product like "%衣%" order by price desc;

6、聚合函数

sum : 求和

avg()  : 平均值

count() : 统计数量

max() : 最大值

min() : 最小值

示例:

select sum(price) as 总价 from orders;

select avg(price) as 平均价格 from orders;

select count(*) as 商品总数 from orders;

注意:where条件后面不能接聚合函数(出现在分组之前)

如果这样写select * from orders where price > avg(price); 将报错

正确写法:

select * from orders where price > (select avg(price) from orders);

select avg(price) as 平均价格 from orders;

7、分组

group by 关键字

select * from orders;

select * from orders group by price;

select * from orders group by price order by price desc;

注意:使用having 关键字,可以接聚合函数(出现在分组之后)

我们这里不做示例!

编写顺序:

S..F..W..G..H..O

select..from..where..group by..having..order by

执行顺序:

F..W..G..H..S..O

from..where..group by..having..select..order by

持续更新之中...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值