【MySQL笔记】数据库的查询
数据库的查询
1、select语句
还必须有file权限以使用这种select
2、列的选择与指定
2.1 基本查询:
select * from table;
select colname1,colname2 as 第二列, colname3 from table;
2.3 更改查询结果数据表:
select cust_name,casewhen cust_sex='M' then '男'else '女'end [as 性别]from table;
2.4 查询+计算:查询cust_i列加上100后的值
select cust_name,cust_sex,cust_id+100from table;
2.5 聚合函数(aggregation function):一般和group by子句连用,否则只返回一行结果
2.5.1常用聚合函数有

2.5.2.3GROUP_CONCAT函数
GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC |DESC] [,col_name ...]] [SEPARATOR str_val])
SELECT student_id, GROUP_CONCAT(courses_id) AS courses FROM student_coursesWHERE student_id=2GROUP BY student_id;
SELECT student_id, GROUP_CONCAT(courses_id SEPARATOR '|||') AS courses FROM student_coursesWHERE student_id=2GROUP BY student_id;
SELECT student_id, GROUP_CONCAT(courses_id ORDER BY courses_id DESC) AS courses FROM student_coursesWHERE student_id=2GROUP BY student_id;
2.5.2.4GROUP_CONCAT注意事项
BINARY[(N)]CHAR[(N)]DATEDATETIMEDECIMALSIGNED [INTEGER]TIMEUNSIGNED [INTEGER]
2.6 From子句与连接表
- 内、外连接的区别:内连接连接的左右表共有的,外连接会以基表为依据连接,返回结果最少也有基表行条数据。
2.7 Where子句与文本匹配
1、比较运算:
select * from student where 班级='01' and age > all (select age from student where 班级='02');
select * from student where 班级='01' and age > (select max(age) from student where 班级='02');
select * from student where 班级='01' and age > any (select age from student where 班级='02');
select * from student where 班级='01' and age > (select min(age) from student where 班级='02');
2、字符串匹配:LIKE语句
select colname from tablewhere colname like '%#_%' escape '#';
- 不要过度使用通配符,通配符检索的处理一般会比其他检索花费更长的时间。
- 尽量不要把通配符用在搜索模式的开始处,否则会使检索更慢。
3、文本匹配:
select colname from tablewhere colname regexp '市';
select colname from tablewhere colname like '%市%';

4、判定范围
select * from tabelwhere colname between 1 and 3;
select * from tablewhere colname in (1,2.3);
5、子查询
6、UNION语句与联合查询
2.8 Group by 和 Having子句
- Where 和 Having的区别:Where子句过滤数据行,是在数据分组之前进行的过滤,Having子句过滤分组,且可以包含聚合函数,是在分组进行后过滤。
2.9其它子句
select colname from tableorder by colname1 DESC, colname2 ASC;
select cust_id from tableorder by cust_idlimit 4,3;
21分钟 MySQL 入门教程:http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html#c2
【MySQL笔记】数据库的查询的更多相关文章
- 涂抹mysql笔记-数据库中的权限体系
涂抹mysql笔记-数据库中的权限体系<>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确.mysql验证用户需要检查3项值:用户名.密码和主机来源(user.password. ...
- MySQL/MariaDB数据库的查询缓存优化
MySQL/MariaDB数据库的查询缓存优化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL架构 Connectors(MySQL对外提供的交互接口,API): ...
- MySQL笔记(二)——查询数据
数据库管理系统的一个最重要的功能就是数据查询,数据查询不应只是简单的查询数据库中存储的数据,还应该是根据需要对数据进行筛选,以及确定数据以什么样的格式显示.本篇笔记主要介绍单表查询,子查询,连接查询. ...
- mysql笔记7--一句查询语句的过程
1 sql语句示例 select *from A where id=1 2 mysql基本架构图 (1)Mysql分为Server层和引擎层两个部分 (2)Server层包括连接器,查询缓存,分析器, ...
- Mysql笔记5之查询
1查询所有的列 select *from student 2查询指定列 select name,age from student 3查询时候使用别名 select name as 别名,age as ...
- MySQL 数据库 分页查询
在使用MySQL 进行数据库分页查询的时候最主要是使用LIMIT子句进行查询: 首先来看一下LIMIT: LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两 ...
- MySQL 数据操作与查询笔记 • 【第1章 MySQL数据库基础】
全部章节 >>>> 本章目录 1.1 数据库简介 1.1.1 数据和数据库定义 1.1.2 数据库发展阶段 1.1.3 数据库系统组成 1.1.4 关系型数据库 1.2 M ...
- MySQL学习笔记-数据库文件
数据库文件 MySQL主要文件类型有如下几种 参数文件:my.cnf--MySQL实例启动的时候在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还介绍了参数类 ...
- 高性能可扩展mysql 笔记(一)数据库表、索引、SQL语句设计规范
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 项目说明:该笔记的背景为电商平台项目,电商项目由于其高并发.多线程.高耗能等特性,在众多的项目类型中涉及 ...
随机推荐
- TypeError: expected string or buffer的解决方法
错误种类:TypeError: expected string or buffer 具体错误解释:这是因为返回的变量不是字符类型,而导致此错误 具体解决方法:在具体程序段前加if判断语句,判断程序返回 ...
- python基础===多进程
进程线程的区别在进程,线程,协程的区别 linux或者unix有fork()函数,但是不支持win系统. multiprocessing multiprocessing模块是跨平台版本的多进程模块.支 ...
- python基础===基于requests模块上的协程【trip】
今天看博客get了一个有趣的模块,叫做 trip #(pip install trip) 兼容2.7版本 基于两大依赖包:TRIP: Tornado & Requests In Pa ...
- python爬虫模块之调度模块
调度模块也就是对之前所以的模块的一个调度,作为一个流水的入口. 下面的代码的获取数据部分暂时没有写,细节部分在实际开发中,要根据要求再定义,这里说的是使用方法 from savedb import D ...
- C# 笔记——委托
委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法).通俗的说,委托是一个可以引用方法的对象,当创建一个委托,也就创建一个引用方法的对象,进而就可以调用那个方法,即委托可以调用 ...
- leetcode 之Set Matrix Zeroes(10)
设置两个布尔数组,记录行和列是否存在0.需要注意的是如何将行或列设为0. void setZeros(vector<vector<int>> &matrix) { in ...
- hdu 1247 (字典树入门)
Hat’s Words Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- 使用python读取文本中结构化数据
需求 read some .txt file in dir and find min and max num in file. solution: echo *.txt > file.name ...
- js解析与序列化json数据(一)json.stringify()的基本用法
对象有两个方法:stringify()和parse().在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript 早期的JS ...
- Java数据库连接池-proxool
连接池技术的思想: 连接复用(高效.安全),避免数据库频繁建立.关闭的开销 --------------------极客学院(参考lulei) 1.配置文件 <proxool> <! ...