【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/ (你想要这里多有) 项目说明:该笔记的背景为电商平台项目,电商项目由于其高并发.多线程.高耗能等特性,在众多的项目类型中涉及 ...
随机推荐
- python进行机器学习(五)之模型打分
一.画出模型的残差值分布情况 #!/usr/bin/python import pandas as pd import numpy as np import csv as csv import mat ...
- mysql 之修改初始密码
转载自:https://www.cnblogs.com/ivictor/p/5142809.html 为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于er ...
- Django-【template】自定义过滤器和自定义标签
模板语言内置的过滤器和标签比较少,往往会遇到无法满足需求的情况,所以需要我们来自定义.自定义filter和simple_tag在项目中很常用 a.首先检查settings下面INSTALLED ...
- python基础===输入必须为数字的检验的另一种方法
print("[+]welcome to python3") while True: num = input("please input a num:") if ...
- mysql连接池优化笔记
中间件mycat是一个高性能的分表分库读写分离的中间件,但配置不好的情况会出现很多性能问题. 1.mycat-web的监控的准确性有问题,1.6-RELEASE ,1.0-SNAPSHOT (web ...
- java8新特性视频、spring4.0视频讲解,javaee基础知识讲解等网址汇总
1.http://ke.atguigu.com/ 海量视频首页 2.http://ke.atguigu.com/course/56 java8新特性学习地址
- Office Excel保留两位小数的方法,网上到处乱摘的
今天看到一位朋友的问题就在网上查了下,顺便记下来自己用 =ROUND(A1,2)-(MOD(A1*10^3,20)=5)*10^(-2)
- hdu 1455(DFS+好题+经典)
Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- 【JBPM4】完成任务
示例代码: ProcessEngine processEngine = Configuration.getProcessEngine(); TaskService taskService = proc ...
- Hadoop 学习【一】 安装部署
目标:测试Hadoop的集群安装 参考文档: [1]http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/Sin ...