Mysql必知必会(笔记)【基本概念,检索,过滤】

本文介绍了SQL的基本概念,包括数据库、表、模式等,并详细讲解了如何进行数据检索、排序、过滤等常见操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 基本概念


  • 数据库:保存有组织的数据的容器
  • 表:某种特定类型数据的结构化清单
  • 模式:关于数据库和表的布局及特性的信息(数据在表中如何存储,各部分信息如何命名)
  • 列:表中的一个字段。所有表都由一个或者多个列组成。
  • 行:表中的一个记录。
  • 主键:一列(或一组列),其值能够唯一标示表中的每一行。
  • 关键字:作为SQL组成部分的保留字。关键字不能用作表或者列的名字。
    注:SQL不区分大小写(关键字不区分,表名和列名会区分)

满足主键的条件:

  1. 唯一性
  2. 非空
  3. 不允许修改
  4. 不能重用(如果某行在表中删除,他的主键不能赋给以后的新行)

2. 检索数据


1). 简单检索:

  • 单列检索:select 列名 from 表名;
  • 多列检索:select 列名,列名 from 表名;
  • 所有列检索:select * from 表名;

2). 唯一检索

select distinct 列名 from 表名

当selest语句返回所有的匹配的行,但是不希望匹配的行重复出现,使用关键字 distinct,(注意:distinct关键字作用于所有的列,不仅仅是跟在其后的那一列,列如指定select distinct 列名,列名,除非指定的两列完全相同,否则所有的列都会被检索出来。且字段名不能放在Distinct之前)。
使用 DISTINCT 关键字去掉重复记录具有较大的局限性。DISTINCT() 只能包含一个字段且查询结果也只返回该字段而非数据完整记录。

这里写图片描述
这里写图片描述

3). 限制结果

select 列名 from 表名 limit 行数;

  • 当selest语句返回所有的匹配的行,如果你只想要第一行或者一定数量的行:可以使用TOP关键字来限制最多返回多少行。
  • 为了得到后面的5行数据,需要指定从那儿开始以及检索的行数,向这样:select 列名 from 表名 limit 行数(指定需要输出的行数) offset 行数(指定从第几行开始输出,从第0行开始数)【offset参数不能单独使用】【也可以简化为 limit 数1,数2:表示从数1开始输出,指定的数2为行数】

4). 使用注释

  • #:(在一行的开始处使用#,这一整行都将作为注释)
    /* 注释 */:之间的内容都是注释。

3. 排序检索数据


select 列名 from 表名 order by 列名,列名;

  • 为了明确的排序用select语句检索出的数据,可使用order by子句。order by 取一个列或者多个列的名字,据此对输出进行排序。
  • order by 子句的位置:在指定一条order by 子句时,应该保证它是select语句中的最后一条子句。如果他不是最后的一条子句,将会出现错误消息。

order by:还支持按列位置排序

select 列1 ,列2,列3 from 表名 order by 数1,数2;

数字1表示先按列1进行排序,再按列2进行排序。

order by:指定排序方向

单列:

select 列名 from 表名 order by 列名 desc;

在order by中默认的排序为增序,当需要使用降序时,需要使用desc(descend降序)关键字。
多列:

select 列名,列名 from 表名 order by 列名 desc,列名;

desc关键字只应用到直接位于其前面的列名。

4. 过滤数据


select 列名 from 表名 where 列名=值;

位置:where子句的位置在同时使用order by和where子句时,应该往order by位于where之后。
where子句操作符:
这里写图片描述

between用法:

select 列名 from 表名 where 列名 between 列值 and 列值;

注:is null 的用法,并不能简单的使用 ‘= null’;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NobiGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值