mysql单表查询

简单查询:

select * from tb_name

select field1,field2 from tb_name;

select * from tb_name where qualification ;

例子:select  name,age from students where age+1>20;

select name from student where age>20 and gender=‘M‘;

select name from student where age>20 or gender=‘M‘;

select name from student where not age>20 and not gender=‘M‘;

select name from student where not (age>20 or gender=‘M‘);

select name from student where age>=20 and age<=50;或者select name from student where age between 20 and 25;

select name from student where like name ‘Y%‘;

REGEXP 或者RLIKE 后面可以跟上正则表达式:

select name from student where name relike ‘^[MNY].*$‘;匹配以M或者N或者Y开头后面任意字符的。

IN的用法:年龄在18、20、25岁的同学名字

select name from student where age in (18,20,25);

显示student表中cid是null的同学;

select name from student where cid is null;

不是null值的写法:

select name from student where cid is not null;

根据查询到的数据排序:

select name from student where cid is not null order by name;

数据存储的三种格式:堆文件、顺序文件、hash

给字段取别名;

select name as student_name from student where cid is not null order by name;

限制显示的行数(limit);

例子: select name as student_name from student as xiaohai  limit 2

限制只显示两行。

略过前两行:

select name as student_name from student as xiaohai limit 2,3

略过前两行显示三行。

聚合计算:

所有同学的平均年龄:

select avg(age) from student;

select max(age) from student;

select min(age) from student;

select sum(age) from student; 求和

select count(age) from student;   求个数

group by :分组

select age,gender from student group by gender;

按照性别把student表分组(即男,女) 显示age gender

select avg(age) from student group by gender;

按照性别把表student分组,分别计算出他们的的平均值。

分组的主要目的是聚合:

注意:对group by 条件进行过滤必须用having 它的作用相当于where

select count(cid1) as persons,cid from student group by cid1 having persons>=2;

having的作用是对group by的结果做再次过滤

时间: 2024-11-10 02:10:11

mysql单表查询的相关文章

python开发mysql:单表查询&amp;多表查询

一 单表查询,以下是表内容 1 一 having 过滤 2 1.1 having和where 3 select * from emp where id > 15; 4 解析过程;from > where 找到数据 > 分组(没有默认一个组)> select 打印 where是出结果之前 5 select * from emp having id > 15; 6 解析过程;from > where 找到数据(没有约束条件,就是整个表)) > 分组(没有默认一个组)&

0x06 MySQL 单表查询

一 单表查询语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键字执行优先级(重点) 重点中的重点:关键字的执行优先级 1)from 2)where 3)group by 4)having 5)select 6)distinct 7)order by 8)limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一

python之路--MySQl单表查询

一 单表查询语法 #查询数据的本质:mysql会到你本地的硬盘上找到对应的文件,然后打开文件,按照你的查询条件来找出你需要的数据.下面是完整的一个单表查询的语法 select * from,这个select * 指的是要查询所有字段的数据. SELECT distinct 字段1,字段2... FROM 库名.表名 #from后面是说从库的某个表中去找数据,mysql会去找到这个库对应的文件夹下去找到你表名对应的那个数据文件,找不到就直接报错了,找到了就继续后面的操作 WHERE 条件 #从表中

一个MySQL 单表查询SQL,引起一次“故事”

一.描述故事的过程是这个样子的,MySQL 数据库有一张40多G的大表,开发人员执行了一个单表查询,结果我就收到了一个磁盘空间满的告警.一下子就不淡定了,谁在搞事情,脑海里各种可能行想了一遍,想到的最多的就是ibtmp1爆了,第一时间线上看一下,查到了最大的那个文件,结果和想的一样.这里我们要看SQL是怎么写的,表结构是什么样子,然后和官网对比,MySQL在查询的时候有很多可能会使用磁盘临时表,包括表连接.排序.大字段等等. 二.解决方法临时解决方法:1.临时扩一下硬盘2.直接重启 终结解决方案

mysql 单表查询

目录 单表查询 准备数据 简单查询 比较运算符 范围筛选 between 多选 in 模糊查询 like 逻辑运算符:在多个条件直接可以使用逻辑运算符 and or not 身份运算 - 关于null is null /is not null 正则匹配 regexp 分组 group by 聚合 (把很多行的同一个字段进行一些统计,最终的到一个结果) 分组+聚合 HAVING过滤 单表查询 准备数据 只是把查询结果按照自己想要的方式返回,不对数据做修改 #准备表和记录 company.emplo

133 MySQL单表查询

目录 一.单表查询 1.1 语法 1.2 关键字优先级 1.3 注意(重点) 1.4 测试一个单表的distinct去重 二.表记录查询测试 2.1常用函数 2.2 数据准备 2.3 表记录测试 2.3.1 where条件查询 2.3.2 group by 分组查询 2.3.3 having 和 where 2.3.4 排序 order by 2.3.5 limit限制 一.单表查询 1.1 语法 每次查询出来的一些记录,他们都是一张表,只不过这张表是存在内存中的 查询记录如果想要二次利用的话,

mysql单表查询&amp;&amp;多表查询(职员表14+9)

dept(deptno,dname,loc) emp(empno,ename,job,mgr,hiredate,sal,COMM,deptno) salgrade(grade,losal,hisal) stu(sid,sname,age,gander,province,tuition) 单表查询题目 ==================================================== dept(deptno,dname,loc) emp(empno,ename,job,mgr

mysql单表查询语句优化

Mysql语句优化 范例1:优化语句SELECT * FROM `tbl_order_buy_eta` WHERE `id_order`=1843 #通过explain分析语句结果如下 mysql> explain SELECT * FROM `tbl_order_buy_eta` WHERE `id_order`=1843\G *************************** 1. row ***************************            id: 1   se

MySQL 单表查询(Day42)

阅读目录 一,查询语法 二,简单查询 三,where约束 四,having过滤 五,分组查询 group by 六,关键字的执行优先级 七,查询排列 order by 八,使用聚合函数查询 九,where补充 十,限制查询的记录数:limit ================================================================================================================================

MySQL单表查询之分组查询

分组查询 mysql> select countrycode as total fromCity where id<10; +-------+ | total | +-------+ | AFG  | | AFG  | | AFG  | | AFG  | | NLD  | | NLD  | | NLD  | | NLD  | | NLD  | +-------+ 9 rows in set (0.00 sec) mysql> select countrycode,count(*) ast