mysql默认不区分大小写

条件查询

select * from students                                                                -- 查询students表的所有数据

select * from students where score>=80;                                   -- 查询score大于等于80的数据

select * from students where score>=80 and gender='m';          -- 查询score大于等于80且gender为m的数据

select * from students where score>=80 or gender='m';             -- 查询score大于等于80或gender为m的数据

select * from students where not class_id=2;

select * from students where class_id!=2;                                   -- 查询class_id不为2的数据(用<>也可以)

select * from students where(score<80 or score >90) and gender='M';    --复合查询

投影查询

select id, score, name from students;                                                -- 显示id,score,name列

select id, score points, name from students;                                     -- 显示查询时将score重命名为points

select id, score points, name from students where gender = 'M';      -- 复合查询

排序

默认根据主键排序

select id, name, gender, score from students order score;               -- 将查询结果根据score从低到高显示(默认升序ASC可省略)

select id, name, gender, score from students order score desc;       -- 倒序,将查询结果根据score从高到低显示

select id, name, gender, score from students order by score desc, gender;      -- 先按score升序排序,相同的按gender倒序排序

select * from students where class_id = 1 order score desc;            -- 复合查询

分页

select * from students limit 3 offset 0;                            -- 查询结果每页最多3条,显示第1面(注意索引从0开始)

select * from students limit 4 offset 1;                            -- 查询结果每页最多4条,显示第2面

聚合查询

使用聚合函数进行查询,就是聚合查询

聚合函数

SUM    计算某一列的合计值,该列必须为数值类型

AVG     计算某一列的平均值,该列必须为数值类型

MAX    计算某一列的最大值(不限于数值类型)

MIN     计算某一列的最小值(不限于数值类型)

select count(*) from students;                                                      -- 查询students表中一共有多少记录

select count(*) num from students;                                              -- 给列名count设置一个别名num

select count(*) from students where gender='m';                         -- 查询gender为m的记录数量

select avg(score) from sudents where gender='m'                       -- 查询男生的平均成绩

注意:如果聚合查询的WHERE条件没有匹配到任何行,COUNT()会返回0,而MAX()、MIN()、MAX()和MIN()会返回NULL

select avg(score) average from students where gender = 'X';

分组

select count(*) from students group by gender;                                 -- 根据gender进行分组显示数量

select count(*),class_id from students group by class_id;                 -- 根据class_id进行分组显示数量和class_id

select count(*),gender,class_id from students group by class_id,gender;      -- 根据多个条件进行分组(先根据class_id分组,后根据gender分组)

多表查询

注意查询行数是所选表的乘积

select * from students,classes; --同时从students和classes表中查询

selectstudents.id sid,

students.name,

students.gender,

students.score,

classes.id cid,

classes.name cnamefrom students, classes; --查询时设置别名

selects.id sid,

s.name,

s.gender,

s.score,

c.id cid,

c.name cnamefrom students s, classes c; --查询时为表设置别名

selects.id sid,

s.name,

s.gender,

s.score,

c.id cid,

c.name cnamefromstudents s, classes cwhere s.gender = 'M' AND c.id = 1; --使用where语句

View Code

连接查询

SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score

FROM students s

INNER JOIN classes c

ON s.class_id = c.id;

注意INNER JOIN查询的写法是:

先确定主表,仍然使用FROM 的语法;

再确定需要连接的表,使用INNER JOIN 的语法;

然后确定连接条件,使用ON ,这里的条件是s.class_id = c.id,表示students表的class_id列与classes表的id列相同的行需要连接;

可选:加上WHERE子句、ORDER BY等子句。

这是内查询INNER JOIN,只返回同时存在于两张表的行数据

还有外查询,外查询分为RIGHT OUTER JOIN,LEFT OUTER JOIN和FULL OUTER JOIN。它们的区别是:

RIGHT OUTER JOIN返回右表都存在的行。如果某一行仅在右表存在,那么结果集就会以NULL填充剩下的字段。

LEFT OUTER JOIN则返回左表都存在的行。如果某一行仅在左表存在,那么结果集就会以NULL填充剩下的字段。

FULL OUTER JOIN会把两张表的所有记录全部选择出来,并且,自动把对方不存在的列填充为NULL

mysql 廖雪峰_mysql查询(廖雪峰sql教程学习摘录)相关推荐

  1. mysql执行系统命令_mysql 命令行执行 sql

    1.直接输入sql执行 MySQL> select now(); +---------------------+ | now() | +---------------------+ | 2013 ...

  2. MySQL工具名字_MySQL客户端工具及SQL讲解

    1.用于数据库的连接管理 #MySQL接口自带的命令 \h 或 help 或? 查看帮助 \G 格式化查看数据(key:value) \T 或 tee 记录日志 \c(5.7可以ctrl+c) 结束命 ...

  3. 在mysql中通配符_mysql查询中通配符的使用

    mysql查询中通配符的使用 在mysql查询中经常会使用通配符,并且mysql的通配符和pgsql的存在区别(稍候再讨论),而且mysql中还可以使用正则表达式. SQL模式匹配: "_& ...

  4. mysql 严格区分大小写_Mysql查询英文如何严格区分大小写?

    1. 前提: 在Mysql数据库中进行查询时,希望英文严格区分大小写.默认情况下是不区分大小写的. 2. 演示如下: 在数据库表emp中,job字段中存储的值有'Engineer',现在的情况是,下面 ...

  5. mysql replication 配置_MySQL Replication配置主从的教程

    MySQL主从原理 主(master)在执行sql之后,记录二进制log文件(bin-log) 从(slave)连接主(master),并从主(master)获取binlog,存于本地relay-lo ...

  6. sql教程学习(一)

    根据https://www.runoob.com/sql/sql-tutorial.html学的sql教程. 我只挑我觉得对我来说的重点学习,我不扣书,哈哈哈. sql教程 SQL 是用于访问和处理数 ...

  7. mysql 廖雪峰_廖雪峰大佬SQL教程学习笔记

    1,SQL(Structured Query Language),就是访问和处理(操作)关系数据库的计算机标准语言.SQL语句既可以查询数据库中的数据,也可以添加,更新和删除数据库中的数据,还可以对数 ...

  8. 查询mysql所有对象_Mysql查看数据库对象(SQL命令总结)

    标签:Mysql查看数据库对象(SQL命令总结) 数据的对象包括表,视图,触发器,等等(查看统计信息的必须进入information_schema 数据库) 举例查看表相关的信息,步骤如下 1.使用i ...

  9. mysql查询重复的_MySQL查询重复记录sql语句

    在数据开发时我们常常会需要把数据库中重复的记录查出来或直接删除数据库中重复记录,下面我来给大家总结一些方法,有需要的朋友可参考. 常用的语句 1.查找表中多余的重复记录,重复记录是根据单个字段(mai ...

最新文章

  1. Spring官方都推荐使用的@Transactional事务,为啥我不建议使用!
  2. JBoss7官方下载最新版本
  3. 解析IBM TSM6.0版本特色功能与技术优势
  4. 8年运维大神总结:坚持4-3-2备份策略,删库也不怕
  5. 深入理解CPU的调度原理
  6. jq之$(“ul li:first-child“)
  7. python for循环 内存_Python for循环中的内存错误
  8. 面试官:设计一个对外的接口,需要考虑那些安全问题?我有点懵...
  9. 《无人机DIY》——2.11 三轴直升机
  10. 哈佛大学有没有计算机专业,美国哈佛大学计算机专业课程有哪些?
  11. CTFHUB中的文件上传——文件头检查
  12. 摘自 禅与生命体悟
  13. 时间流逝,岁月里所有的狼狈
  14. 分享一个普通程序员的“沪漂”六年的历程以及感想
  15. 微信大转盘 【案例源码】提供
  16. 在windows上安装 onlyoffice-documentserver.exefor Windows
  17. java计算平面度,计算产品面的平面度和平行度(C#代码)
  18. 让数字内容被平等获取 | Android 开发者故事
  19. 微信可以一键恢复好友吗?
  20. switchhosts的作用

热门文章

  1. 雷神笔记本一格E1开箱
  2. FZU2167大王叫我来巡山呐
  3. cpu高速缓存命中率
  4. JAVA计算1到50之间的偶数和_JAVA统计1到50中所有偶数的和
  5. bp神经网络预测模型优点,bp神经网络缺点及克服
  6. swift抛出异常_swift之异常处理
  7. 人工智能算法一集成学习(随机森林)
  8. qt5_c++工业上位机自动扫码数据追溯
  9. 线性回归拟合优度度量
  10. 国内互联网医疗的反思和2016年9大前沿趋势