• 一般查询
  • 查询所有字段
select * from 表名;
  • 查询指定字段
select 列1,列2,... from 表名;
  • 使用 as 给字段起别名
select 字段 as 别名 ... from 表名;
  • 使用 as 给表起别名
select 别名.字段 .... from 表名 as 别名;在当前的sql 语句中 临时的给students 起了一个别名叫做s错误: select students.name, students.gender, students.age from students as s;select s.name, s.gender, s.age from students as s; # 临时的给students 起了一个别名叫做s
  • sql语句完全的形式

只有正在使用当前数据库, 并且查找的数据表就在当前数据库中,才可以省略数据库名

数据表名什么时候不可以省略: 当一个sql语句中出现了多个数据表, 并且查询的字段在多个表中并且字段名相同, 此时表名不能够省略

例如查询 classes 表和 students 表中的name:错误: select name,name from classes,students;select students.name,classes.name from classes,students;
  • 消除重复行
distinct 字段, 修饰所有需要查询的字段select distinct 字段 from 表名;
  • 条件查询
  • 比较运算符
 ">" : 查询年龄大于 18 的信息 select * from 表名 where age > 18; "<" ">=" "<=" "=":注意 SQL 中等于就是 "=",不是 "==" "!=" 或 "<>"
  • 逻辑运算符
 "and":18 岁以上的女性 select * from 表名 where age > 18 and gender = "女"; "or":18 岁以上或者为女性 select * from 表名 where age > 18 or gender = "女"; "not":年龄不是 18 岁的信息 select * from students where age != 18; select * from students where not age = 18;
  • 模糊查询
 "like" % 表示任意字符可有可无 查询姓名中有'黄'的名字 select * from students where name like "%黄%"; _ 表示任意一个字符 查询有2个字的名字 select * from students where name like "__"; "rlike":正则 查询以黄开始的姓名 select * from students where name rlike "^黄.*";
  • 范围查询
 "in":表示在一个非连续的范围内 查询年龄为 18 和 34 的学生 select * from students where age = 18 or age = 34; select * from students where age in (18,18,34); "not in":表示不再连续的范围内 查询年龄不是 18 和 34 的学生 select * from students where age not in (18,34); "between ... and ...":表示在一个连续的范围内,两边都会包含,是闭区间. 查询年龄在 18 到 34 之间的信息 select * from students where age between 18 and 34; "not between ... and ...":表示不再一个连续的范围内 ``` - 空判断 null, 不能使用比较运算符 ``` select * from 表名 where 字段 is NULL; select * from 表名 where 字段 is not NULL; 注意不能使用 not is
  • 排序
order by 字段 asc(升序)|desc(降序) 默认就是升序排序 asc 可以省略
  • 降序 desc
查询年龄在18到34岁之间的女性,身高从高到矮排序select * from students where age between 18 and 34 and gender = 2 order by height desc;order by 多个字段 order by age asc, height desc查询年龄在18到34岁之间的女性,身高从高到矮排序, 如果身高相同的情况下按照年龄从小到大排序select * from students where age between 18 and 34 and gender = 2 order by height desc, age desc;
  • 聚合函数
 count(*) 以行单位来进行统计个数 count(*) 效率更高, 效率略差:count(height)--> 获取对应的行--> 获取该行对应字段是否为NULL select count(*) from students; # 以行为统计单位 select count(height) from students; # 以不为空的height字段对应的值作为统计单位 ``` - 最大值 ``` max() ``` - 最小值 ``` min() ``` - 求和 ``` sum() ``` - 平均值 ``` avg() ``` - 四舍五入 ``` round() 计算所有人的平均年龄,保留2位小数 select round(avg(age),2) from students;
  • 分组
分组的目的就是为了更加精细的做聚合统计操作group by 字段1,字段2查看有哪几种性别select distinct gender from students;select gender from students group by gender; # 将分组之后的标签查询出来查询分组数据中的人的姓名select gender, group_concat(name) from students group by gender;查询同种性别中的姓名和身高select gender,group_concat(name,":",height) from students group by gender;查询平均年龄超过30岁的性别,以及姓名 select gender,group_concat(name) from students group by gender having avg(age) > 30;having 和 where 的区别where: 对源数据做条件筛选having: 是对分组之后的数据做进一步的筛选操作, 有having就一定有group by, 有 group by 不一定有having
  • 分页
limit start, countstart: 表示从哪里开始查询, start 默认值为0, 可以省略, 跳过多少条数据count: 查询多少条第1页select * from students limit 0,4;第2页select * from students limit 4,4;第3页select * from students limit 8,4;每页显示5个,显示第3页的信息, 按照年龄从小到大排序 start = (pagenum - 1) * count错误: select * from students limit 10,5 order by age asc;正确: select * from students order by age asc limit 10,5;
  • 连接查询
-- 连接查询 将两个表中的数据按照设置的连接条件进行筛选, 符合连接条件的数据才能够被筛选出来table1 inner join table2 on 设置内连接条件 --> 内连接查询select * from students inner join classes on students.cls_id = classes.id;-- 按照分组的方式显示班级的学生select classes.name,group_concat(students.name) from students inner join classes on students.cls_id = classes.id group by classes.name;select c.name,group_concat(s.name) from students as s inner join classes as c on s.cls_id = c.id group by c.name;-- 外连接查询: left join + right joinleft join 左外连接查询-- 查询每位学生对应的班级信息,不满足连接条件的数据会以NULL填充select * from students left join classes on students.cls_id = classes.id;

工欲善其事必先利其器——MySQL数据库(2),查询操作相关推荐

  1. MySQL数据库的查询操作

    目录 一.数据查询语句的基本格式 二.单表查询 查询表中的若干列 查询指定列 查询经过计算的值 选择表中的若干元组 去重 条件查询 order by 子句 聚集函数 group by 子句 三.连接查 ...

  2. 对MySql数据库插入数据操作

    #!/user/bin/env python # _*_ coding:utf-8 _*_ import MySQLdb conn= MySQLdb.connect(host='localhost', ...

  3. MySQL学习笔记04【数据库的查询操作、今日内容、表的约束】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  4. java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码

    jsp与javabean链接mysql数据库并查询数据表的简单实例源码.这个简单的实例是给新手学习的,或者一些高手临时忘记怎么使用jsp操作mysql数据库时候查找的,包括了建立mysql数据库连接的 ...

  5. Linux下Mysql数据库的基础操作

    Linux下Mysql数据库的基础操作 一.Mysql数据介绍 二.数据库相关术语介绍 1.数据库相关名词 2.相关术语介绍 三.Mysql数据库的管理 1.创建数据库用户 2.查询用户状态 3.修改 ...

  6. mysql数据库代码_【代码总结】MYSQL数据库的常见操作

    ============================== MYSQL数据库的常见操作 ============================== 一.mysql的连接与关闭 -h:指定所连接的服 ...

  7. 第二百七十九节,MySQL数据库-pymysql模块操作数据库

    MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数 使用方式: 模块名称.conne ...

  8. mysql数据库限流方案_用于对MySQL数据库的并发操作进行控制的方法及装置的制造方法_3...

    的数据库操作特点,预先设置的所述第一限流类型可以不同于本实施例中的设置,同样可以实现本申请的技术方案,也在本申请的保护范围之内. [0103]步骤102-3:判断MySQL数据库的threads_ru ...

  9. 初识MySQL数据库(MySQL数据库的基础操作)

    初识MySQL数据库 前言 1.查询所有数据库 2.创建数据库 2.1指令1: 2.2指令2: 3.3指令3: 3.删除数据库 3.1指令1: 3.2指令2: 在这里插入图片描述 4.切换数据库 总结 ...

  10. Java数据库开发与应用之MySQL数据库、JDBC操作数据库、C3P0数据库连接池,Java反射等

    MySQL数据库,JDBC接口,MyBatis框架等,掌握的数据的存放和管理. Java数据库开发基础,介绍MySQL数据库.JDBC操作数据库.C3P0数据库连接池,Java反射等内容,进行油画商城 ...

最新文章

  1. grs matlab公式,[转载]matlab中Max的用法(转)
  2. Java中的对象序列化操作
  3. mysql 交集_MySQL 查询结果取交集的实现方法
  4. HDU-2062 Subset sequence 递推
  5. 在linux中建立一个vim的目录,Linux学习笔记一(目录结构、Vim编辑器、用户管理)...
  6. 各种免费在线工具收集
  7. hdf5文件-环境配置/使用读写
  8. C语言阶梯电费函数,用阶梯电价计算逻辑学习销售人员阶梯提成计算函数
  9. 搭建一套直播平台需要多少钱
  10. utc时间 单位换算_UTC转换本地时间
  11. 两次维权ZB系交易所,我和ZB的魔幻往事
  12. 使用BMFont工具来精简字体库
  13. 第二章 聚合数据模型
  14. android 4.2.2进度条,进度条(ProgressBar)——Mars Android开发视频之第一季第十七集(重)...
  15. kaggle数据集下载步骤
  16. 生产制造业订单管理软件如何做好订单变更管理?
  17. ESD器件的主要性能参数
  18. python 魔法阵
  19. 电脑计算机网络都打不开怎么办,电脑打不开网页怎么办?如何解决电脑网页打不开问题...
  20. 鉴定一下软件测试热门词汇

热门文章

  1. 自动把动态的jsp页面(或静态html)生成PDF文档,并且上传至服务器
  2. ArrayList源码解读(jdk1.8)
  3. 2018/2/28 省选模拟赛 40分
  4. Androidstudio加载工程很慢解决方案
  5. jQuery 追加元素的方法如append、prepend、before,after(转)
  6. IOS开发--第三阶段--微博(1)文档
  7. windows消息处理机制和VB
  8. 111 进程的创建和结束
  9. 优化CUDA数据传输
  10. react-native学习小结