基础SELECT示例掌握
SELECT查询语句
---进行单条记录、多条记录、单表、多表、子查询……
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[MAX_STATEMENT_TIME = N]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr [, select_expr ...]
[FROM table_references
[PARTITION partition_list]
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name'
[CHARACTER SET charset_name]
export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]
select书写使用技巧:
①确认需要访问数据来自哪几张表
from来自某张表或者某几张表
join添加某张表
on表连接条件
记住一点:每关联一个表就需要加上对应的on条件(on条件就是主外键条件)
②通过where条件过滤数据
③确认需求里面是否有分组聚合的含义
分组:group by
聚合:聚合函数
聚合条件过滤:having
④是否需要排序
order by
1、查询某张表所有数据
mysql> select * from temp; 解析:*代表所有列,temp代表表名,不带条件就查询所有数据
2、查询指定列和条件的数据
mysql> select name,age from temp where age = ; 解析:查询name和age这两列,age 等于22的数据。
3、对查询的数据进行运算操作
mysql> select age+,age/,age-,age* from temp where age- > ; mysql> select PLAYRNO,AMOUNT,AMOUNT*6.5 “Ren Min Bi” from PENALTIES; 解析:查询AMOUNT列数据乘6.5并改列名为Ren Min Bi 使用小括号可以改变运算的优先级
4、concat函数,字符串连接
mysql> select NAME,concat(TOWN,STREET,HOUSENO) “player Home Address” from PLAYERS; 解析:利用concat函数将TOWN,STREET,HOUSENO三列的字符串连接起来,别名列为player Home Address(可以在concat里加' '进行分隔) 注意:concat和null进行连接,会导致连接后的数据成为null mysql> select * from t1;
+------+--------+--------+
| id | First | Last |
+------+--------+--------+
| | zhang | jiacai |
| | linghu | NULL |
+------+--------+--------+ mysql> select id,concat(First,' ',Last) from t1;
+------+------------------------+
| id | concat(First,' ',Last) |
+------+------------------------+
| | zhang jiacai |
| | NULL |
+------+------------------------+
concat_ws函数,指定分隔符的字符串连接
mysql> select id,concat_ws(':',First,Last) "Full Name" from t1;
+------+--------------+
| id | Full Name |
+------+--------------+
| | zhang:jiacai |
| | linghu |
+------+--------------+
圆括号里的第一个位置用来指定字符串连接的分隔符
5、as 列别名(或省略,留空格)
mysql> select id as 'num' from t1; mysql> select id 'num',First from t1;
6、distinct关键字去掉重复数据
mysql> select * from t2;
+------+
| num |
+------+
| |
| |
| |
| |
+------+ mysql> select distinct num from t2;
+------+
| num |
+------+
| |
| |
+------+ distinct 多列:去重的是同行多列组合的重复数据 mysql> select distinct id, age from temp;
7、where条件查询
where语句中的条件比较:大于>、大于等于>=、小于<、小于等于<=、等于=、不等于<> mysql> select * from tableName where a> or a>= or a< or a<= or a= or a<>;
8、and 并且、or 或者、not非
mysql> select * from temp where age> and name=‘jack’; 解析:查询name等于jack并且年龄大于20的 mysql> select * from tmep where name=‘jack’ or name=‘jackson’; 解析:查询name是jack或是jackson的 mysql> select * from temp where not (age > ); 解析:取小于等于20的数据 mysql> select * from temp where id not in(, ); 解析:查询id数不是1,也不是2的
9、between v1 and v2:v1和v2之间
mysql> select * form temp where age between and ; 解析:查询age在20和25之间的
10、in 查询:多个条件 类似于or
mysql> select * from temp where id in (, , ); 解析:查询id在括号中出现的数据
11、like 模糊查询
%:替代0个或多个字符 _:替代一个字符 mysql> select * from temp where name like ‘j%’; 解析:查询name以j开头的(%通配所有) mysql> select * from temp where name like ‘%k%’; 解析:查询name包含k的 escape转义 mysql> select * from temp where name like ‘\_%’ escape ‘\’; 解析:指定\为转义字符,上面的就可以查询name中以“_”开头的数据
12、is null、is not null
mysql> select * from temp where name is null; 解析:查询为null的数据 mysql> select * from temp where name is not null; 解析:查询不为null的数据
13、order by排序:desc降序、asc升序
mysql> select * from temp order by id; (默认asc升排序) mysql> select * from temp order by id desc; (指定降序排) 多列组合 mysql> select * from temp order by id, age;
14、limit子句:从结果集中选取最前面或最后面的几行
通常和order by连用,放其后面
limit <获取的行数> [OFFSET <跳过的行数>]
limit [<跳过的行数>,] <获取的行数>
mysql> select playerno,name from players order by playerno asc limit ,;
mysql> select playerno,name from players order by playerno asc limit offset ;
解析:跳过前面的3行,从第4行开始取,取5行
注意:MySQL5.7 doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
15、group by、having 分组聚合
select [聚合函数] 字段名 from 表名
[where 查询条件]
[group by 字段名]
[having 过滤条件]
mysql> select salary,count(*) from salary_tab
-> where salary>=
-> group by salary
-> having count(*)>=;
+---------+----------+
| salary | count(*) |
+---------+----------+
| 2000.00 | |
| 3000.00 | |
+---------+----------+
##########欲知详细解析,请听下回分解##########
基础SELECT示例掌握的更多相关文章
- oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...
- canvas基础动画示例
canvas基础动画示例 本文主要用最简单的例子,展示canvas动画效果是如何实现的 动画效果,是一个球绕着一点旋转 const canvas = document.getElementById(' ...
- docker-compose 构建mongodb并导入基础数据示例
使用docker-compose构建mongodb服务并导入基础数据示例. 1.文件目录结构 ——mongo/ |——docker-compose.yml |——mongo-Dockerfile |— ...
- oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用oracle用 ...
- Spring温习(1)--最基础的示例
Spring温习(1)--最基础的示例 博客分类: 框架-Spring专栏 SpringXMLBeanWebDAO 从现在开始,我将从Spring为起点,逐步复习几大框架各方面的知识,以便今后查看使用 ...
- java 网络编程(三)---TCP的基础级示例
下面是TCP java网络编程的基础示例: tcp传输:客户端建立过程的思路:1.创建TCP客户端的Socket服务,使用的是socket对象,建议在创建的过程中,就明确了目的地和要连接的主机2.如果 ...
- asp.net core系列 59 Ocelot 构建基础项目示例
一.入门概述 从这篇开始探讨Ocelot,Ocelot是一个.NET API网关,仅适用于.NET Core,用于.NET面向微服务/服务的架构中.当客户端(web站点.ios. app 等)访问we ...
- Spring Boot 1.5.x 基础学习示例
一.为啥要学Spring Boot? 今年从原来.Net Team“被”转到了Java Team开始了微服务开发的工作,接触了Spring Boot这个新瓶装旧酒的技术,也初步了解了微服务架构.Spr ...
- SqlSever基础 select 用+号连接两个字符串
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
随机推荐
- 代写编程的作业、笔试题、课程设计,包括但不限于C/C++/Python
代写编程作业/笔试题/课程设计,包括但不限于C/C++/Python 先写代码再给钱,不要任何定金!价钱公道,具体见图,诚信第一! (截止2016-11-22已接12单,顺利完成!后文有成功交付的聊天 ...
- 转:关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
1. JSON.parse(jsonString): 在一个字符串中解析出JSON对象 ? 1 2 3 var str = '[{"href":"baidu.com&qu ...
- canvas随笔
公司刚刚处于创业初期,总是会尝试着做一些新奇的东西.尤其是对于网上一些好玩的东西,总是希望自己也能有一样的功能.不得不说,对于我来说,既是种机遇,也是种挑战.因为这样给了我足够的发展空间,可以按着自己 ...
- 你可记得曾经的-------- C#面向对象的“基础”
1.C#中构造函数定义的理解: ①构造函数名与所在的类名相同 ②构造函数可以重载 ③构造函数可以带参数 ④构造函数没有返回值,且不允许写出void,可以有参也可以无参 ...
- Opencv2.4.13 与Visual Studio2013 环境搭建配置
opencv这个工具来进行图像处理.大致是使用C++语言编写程序实现识别算法的实现,所以首先就要进行opencv与VS环境的配置. Shaine属于那种半路出家之人都算不上的那种,本科期间三四 ...
- 【iOS】7.4 定位服务->2.1.4 定位 - 官方框架CoreLocation 案例:指南针效果
本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文相关目录: ================== 所属文集:[iOS]07 设备工具 === ...
- HTML5 之文件操作(file)
前言 在 HTML 文档中 <input type="file"> 标签每出现一次,一个 FileUpload 对象就会被创建. 该元素包含一个文本输入字段,用来输入文 ...
- MYSQL数据库-SELECT详解
将SQL文件导入数据库中 $ source /url/file_name.sql ======================================================= S ...
- java初学第二章
这两天学习了基本的数据类型还有运算符. 分享一下学习过程还有写作~ 数据类型分为基本数据类型还有引用数据类型,基本数据类型有4类8种: 整型: byte,short,int,long 浮点型:floa ...
- web与request
request --> 封装了客户端所有的请求数据! 请求行 请求头 空行 请求体(GET没体) 回忆一下http协议!请求协议中的数 ...