mysql--表数据操作
查询:
简单查询
####查询的字段必须在表中存在
#### 对查询出来的数据进行修改时,不会修改原来的数据,只是修改了可视化的,我们看到的数据。
# 查一个数据
select 字段名 from 表名; # 查多个数据
select 字段名,字段名,字段名...... from 表名; # 对查询出来的内容进行运算
select 字段名*12 from 表名 # 对查询出来的数据字段名去重
####distinct
select distinct 某个字段 from 表; # 查询出来的字段进行重命名
select 字段名 新名字 from 表;
select 字段名 as 新名字 from 表; # 查询出来的内容进行拼接
# concat
select concat('你想要用什么拼接字段名',字段名,'你想要拼接的其他的内容','字段名')from 表;
# 自动拼接 (确定用什么拼接,然后拼接后面的所有字段,用法类似于str方法的join方法)
select concat_ws('你想要用什么拼接',字段名,字段名,字段名...) from 表;
条件查询:
1 case 语句
### case语句
select
(case
when 条件(比如:name =='小明') then # 如果条件成立,查找下面的这个内容
要查询的字段名
when 条件 then
concat(要查询的字段名,'_可以加上拼接的内容') # 如果这个条件成立,给这个内容,拼接(其实就是对这个内容的操作,)
else
concat(要查询的字段名,'拼接的内容')
end) as 新名字 from 表名 # end 结束语句, as 起一个代名,从表中查找
2 where 条件:
###where条件查询
# where 支持
# 1 比较运算符 :> < >= <= <> !=
# 2 between 80 and 100 值在80到100之间的数
# 3 in(80,90,100) 值为80或者90或者100
# not in 值不是80,90,100
# 4 like 'e%'
通配符可以是%或者_
% 表示任意多个字符
_表示一个字符 select 字段 from 表 where 条件;
select 字段 from 表 where like '金%' # 表示条件为 金...的内容,后面不限字数
#'金_' 表示 金*内容,固定了字数
#'金__' 表示金**内容,固定了字数
#tetween
select 字段 from 表 where 字段 between 范围 #身份运算符 is /is not null
# 用来判断你是不是为空 # regex 使用正则
select 字段 from 表 where 字段 regexp '正则表达式';
3 group by 分组
#### group by 分组
select 字段 from 表 group by 字段;
# 这个式子查出来的是根据这个分类,将相同的分成一类,并且重复的数据只显示一个,可以根据这个方法去重。 # 显示所有数据使用group_concat
select group_concat(字段) from 表 group by 字段;
# 这个式子查出来的是根据这个分类,将相同的分成一类,并显示每一类的所有数据
4 聚合函数
#强调:聚合函数聚合的是组的内容,若是没有分组,则默认一组 示例:
SELECT COUNT(*) FROM employee; # 查询中的数据数量
SELECT COUNT(*) FROM employee WHERE depart_id=1; # 查询表中depart_id= 1的数据数量
SELECT MAX(salary) FROM employee; # 查询salary字段最大的数据
SELECT MIN(salary) FROM employee;# 查询salary字段最小的数据
SELECT AVG(salary) FROM employee;# 查询salary字段数据的平均值
SELECT SUM(salary) FROM employee;
SELECT SUM(salary) FROM employee WHERE depart_id=3;# 查询depart_id=3的数据总和
5 having 过滤
###having
#对分组进行条件过滤,一般都和group by连用
select post,group_concat(emp_name) from emp group by post having salary > 10000;#错误,分组后无法直接取到salary字段,使用条件字段时,我们必须要先查找这个数据 mysql> select 字段,group_concat(字段) from 表 group by 字段 having avg(字段) > 10000;
# 查找分组中的数据 # 如果我们想要使用having当做条件查询
# 那么他的条件就要先找出来才能使用
select emp_name,age from emloyee having age>18; #select * 的时候,我们默认这个将整个表当做一个分组
select * from emloyee having age>18;
小总结:
#!!!执行优先级从高到低:where > group by > having
#1. Where 发生在分组group by之前,因而Where中可以有任意字段,但是绝对不能使用聚合函数。
#2. Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,可以使用聚合函数
6 order 排序
按单列排序
SELECT * FROM employee ORDER BY salary; # 根据salary排序,升序
SELECT * FROM employee ORDER BY salary ASC; #ASC是升序
SELECT * FROM employee ORDER BY salary DESC;# desc是降序 按多列排序:先按照age排序,如果年纪相同,则按照薪资排序
SELECT * from employee
ORDER BY age,
salary DESC;
limit
SELECT * FROM employee ORDER BY salary DESC
LIMIT 3; #默认初始位置为0 SELECT * FROM employee ORDER BY salary DESC
LIMIT 0,5; #从第0开始,即先查询出第一条,然后包含这一条在内往后查5条 SELECT * FROM employee ORDER BY salary DESC
LIMIT 5,5; #从第5开始,即先查询出第6条,然后包含这一条在内往后查5条
mysql--表数据操作的更多相关文章
- Django之mysql表单操作
在Django之ORM模型中总结过django下mysql表的创建操作,接下来总结mysql表记录操作,包括表记录的增.删.改.查. 1. 添加表记录 class UserInfo(models.Mo ...
- 数据库 MySQL 之 数据操作
数据库 MySQL 之 数据操作 一.MySQL数据类型介绍 MySQL支持多种类型,大致可以分为四类:数值.字符串类型.日期/时间和其他类型. ①二进制类型 bit[(M)] 二进制位(101001 ...
- 利用Flume将MySQL表数据准实时抽取到HDFS
转自:http://blog.csdn.net/wzy0623/article/details/73650053 一.为什么要用到Flume 在以前搭建HAWQ数据仓库实验环境时,我使用Sqoop抽取 ...
- 如何实现MySQL表数据随机读取?从mysql表中读取随机数据
文章转自 http://blog.efbase.org/2006/10/16/244/如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysql ...
- MySQL 表数据多久刷一次盘?
前言 事情是这样的,在某乎的邀请回答中看到了这个问题: - 然后当时我没多想就啪一下写下来这样的答案: 这个其实要通过 MySQL 后台线程来刷的,在 Buffer Pool 中被修改的过的 Page ...
- Python将MySQL表数据写入excel
背景:将mysql表查询结果写入excel. 1.使用sqlyog工具将查询结果导出到Excel.xml中,用excel打开发现:因为text字段中有回车换行操作,显示结果行是乱的. 2.用mysql ...
- mysql之数据操作
一 介绍 MySQL数据操作: DML 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现 ...
- MySQL表的操作
一.存储引擎(了解) 前几节我们知道mysql中建立的库===>文件夹,库中的表====>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文 ...
- MySQL 之 数据操作
一 介绍 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现数据的删除 使用SELECT ...
- Database学习 - mysql 数据库 数据操作
mysql数据操作 查询语法 select * | field1,field1 ... from 表名 where 条件 group by 字段 having 筛选 order by 字段 limit ...
随机推荐
- LNMP一键包安装后解决MySQL无法远程连接问题
MySQL/MariaDB无法远程连接,如何开启? 1,没有给root对应的权限 -- @'192.168.1.123'可以替换为@‘%’就可任意ip访问 mysql> GRANT ALL PR ...
- Python- redis缓存 可达到瞬间并发量10W+
redis是什么? mysql是一个软件,帮助开发者对一台机器的硬盘进行操作. redis是一个软件,帮助开发者对一台机器的内存进行操作. redis缓存 可达到瞬间并发量10W+ 高并发架构系列:R ...
- Win7+keras+tensorflow使用YOLO-v3训练自己的数据集
一.下载和测试模型 1. 下载YOLO-v3 git clone https://github.com/qqwweee/keras-yolo3.git 这是在Ubuntu里的命令,windows直接去 ...
- lintcode 447 Search in a Big Sorted Array(倍增+二分)
题意:给一个按照升序排序的正整数数组.这个数组很大以至于只能通过固定的接口ArrayReader->get(k)来访问第k个数.并且也没有办法得知这个数组有多大.找到给出的整数target第一次 ...
- 一起学Python——数据类型详解
和学习其他编程语言一样,首先要了解一门语言的数据类型. Python的数据类型有整型.浮点型.字符串.布尔型.日期时间类型.list列表.set集合.tuple元组.dict词典等. 1.整型 就是数 ...
- Linux生成私钥和公钥免密连接
本文介绍Linux系统生成私钥和公钥进行免密连接,内容比较简单,阅读需要3分钟. 1.大致流程 有时需要从服务器A免密连接到服务器B,这时需要在服务器A生成私钥和公钥,大致过程其实就2步. 1.1 在 ...
- 从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理
前言 来源:https://dailc.github.io/2018/01/21/js_singlethread_eventloop.html 见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会 ...
- Python3面向对象—点和矩形类
Python类练习 定义一个类 class Point: '''二维坐标系中代表一个点''' pass print('打印Point:{}'.format(Point)) p1 = Point() p ...
- Android代码编译环境配置 “Gerrit和Git环境配置”
Gerrit和Git环境配置可以参考<git&gerrit操作指导> 步骤1. 先在Gerrit中创建新的账户: 步骤2. 在新的客户端上生成密钥(可以使用的是生成的公钥): 步骤 ...
- 软件工程团队:Spring计划会议及详细计划表
极限挑战! 小组Spring计划表: 11.15 进行软件需求分析,了解调查社会背景,确定要编写的软件,分配各小组成员的任务.确定小组会议每天召开地点时间. 3h 11.16 将任务进一步精确分配, ...