MySQL知识点

本文介绍了如何在MySQL中创建数据库、操作表,包括查看表、数据查询、条件筛选、排序、分组函数以及SQL语句的分类。深入讲解了如何使用like模糊查询和分组后的having过滤,最后总结了单表查询的关键步骤和注意事项。
摘要由CSDN通过智能技术生成

创建数据库

mysql>create school;

数据库中最基本的单元是表:table

查看数据库中的表

mysql>show tables;

什么是表?为什么用表存储数据?

excel表格数据就是表,数据库中存储数据是以表格形式表示数据的,因为表比较直观,任何一张表都有行和列。

行(row):被称为数据/记录。

列(column):被称为字段。

sql语句的分类

DQL:数据查询语句(凡是带有select关键字的都是查询语句)

DML:数据操作语言(凡是对表中的数据进行增删改查的都是)

insert 增

delete 删

update 改

DDL:数据定义语言(凡是带有create、drop、alter的都是)

DDL主要操作的是表的结构,不是表中的数据

create:增

drop:删除

alter:修改

查看表中的数据

mysql>select * from school;

只查看表的结构

mysql>desc school;

注意:mysql不见分号不执行!

简单查询

1、查询一个字段

select 字段名 from 表名;

其中要注意:select和from都是关键字

​ 字段名和表名都是标识符

2、查询两个字段或多个字段?

使用逗号隔开

查询所有 第一种方式:把每个字段都写上

​ 第二种方式:select * from 表名

3、给查询的列起别名

mysql>select deptno,dname as deptname from dept;

使用as关键字起别名

注意:只是将显示查询结果列名显示为deptname,原列名还是叫:dname

记住:select语句是永远都不会进行修改操作的。(因为只负责查询)

条件查询
select 字段1,字段2,字段3 from 表名 where 条件;

between…and… 两个值之间,等同于>= and <=

select empno,ename,sal from emp where sal between 2450 and 3000;

注意:使用between and的时候必须遵循左小右大原则

为null is null

不为null is not null

and 和or同时出现,有优先级问题?

例如:查询工资大于2500,并且部门编号为10或20部门的员工?

select * from emp where sal>2500 and deptno=10 or deptno=20;

分析以上语句的问题?

and优先级比or高。

以上语句会先执行and,然后执行or

select * from emp where sal>2500 and (deptno=10 or deptno=20);

and和or同时出现,and优先级较高,如果想让or先执行,需要加“小括号”

in 包含,相当于多个or

like 称为模糊查询

支持%或者下划线匹配

%匹配任意多个字符

下划线:任意一个字符

排序

order by sal;//默认是升序

 order by sal desc; //指定降序

order by sal asc;//指定升序

关键字顺序不能变:

select…

from…

where…

order by…

以上语句的执行顺序:

from

where

select

order by

分组函数(多行处理函数)

多行处理函数的特点:输入多行,最终输出一行。

5个:

count 计数

sum 求和

avg 平均值

max 最大值

min 最小值

注意:分组函数在使用的时候必须先进行分组,然后才能使用。

​ 如果没分组,默认整张表是一组数据。

分组函数

第一点:分组函数自动忽略null,不需要提前对null进行处理。

第二点:分组函数中count(*)和count(具体字段)有什么区别?

count(具体字段):表示统计该字段所有不为null的元素的总数

count(*):统计表当中的总行数。(只要有一行数据count则++)

​ 因为每一行记录不可能都为null,一行数据中有一列不为null,则该行数据就是有效的

第三点:分组函数不能够直接使用在where子句中

第四点:所有的分组函数可以组合起来一起用

分组查询
select…from…group by…

将之前的关键字全部组合在一起

select…

from…

where…

group by…

order by…

执行顺序:

1、from…

2、where…

3、group by…

4、select…

5、order by…

为什么分组函数不能直接使用在where后面?

因为分组函数在使用的时候必须分组之后才能使用。

where执行的时候,还没有分组,所以where后面不能出现分组函数。

select sum(sal) from emp;

这个没有分组,为啥sum()函数可以用呢?

因为select在group by之后执行。

重点结论:

​ 在一条select语句当中,如果有group by语句的话,select后面只能跟参加分组的字段,以及分组函数,其它的一律不能跟。

使用having可以对分完组之后的数据进一步过滤。having不能单独使用,having不能代替where,having必须和group by联合使用。

单表查询总结

select…

from…

where…

group by…

having…

order by…

执行顺序:

1、from

2、where

3、group by

4、having

5 、select

6、order by

从某张表中查询数据,先经过where条件筛选出有价值的数据,对这些有价值 的数据进行分组,分组之后可以使用having继续筛选。select查询出来,最后排序输出。

注意:原表数据不会被修改,只是去除查询结果的重复记录。

去除重复需一个关键字:distinct

distinct只能出现在所有字段的最前方。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值