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 ...
随机推荐
- Spring扩展自定义的XML标签
在网上搜了许多,感觉不够全面,就找了官方文档,下面记录如何找到对应的文档进入 网上许多博客都是以dateformat为实例进行编写的,通过官方的foo,能够学到更多的东西,下面贴一段代码,在官方示例上 ...
- 转载一篇好理解的vue ssr文章
转载:原文链接https://www.86886.wang/detail/5b8e6081f03d630ba8725892,谢谢作者的分享 前言 大多数Vue项目要支持SSR应该是为了SEO考虑,毕竟 ...
- 最新版 IntelliJ IDEA2018.3.x 破解教程
https://www.cnblogs.com/Candies/p/10050831.html
- RN页面获取组件位置和大小的方法
在RN的页面布局和操作中,有时需要获取元素的大小和位置信息,本文从网上抄袭了几个常用方法,以备不时之需. 首先是获取设备屏幕的宽高 import {Dimensions} from 'react-na ...
- pandas导入导出数据-【老鱼学pandas】
pandas可以读写如下格式的数据类型: 具体详见:http://pandas.pydata.org/pandas-docs/version/0.20/io.html 读取csv文件 我们准备了一个c ...
- oracle下查询的sql已经超出IIS响应时间
场景: 最近一直发生oracle下查询的sql已经超出IIS响应时间,但是后台DB的SQL查询还未终止,一直在查询.这对DB是造成很大的压力. 解决办法 增加OracleCommand 中的Comma ...
- ACA:利用ACA解决TSP优化最佳路径问题——Jason niu
load citys_data.mat n = size(citys,1); D = zeros(n,n); for i = 1:n for j = 1:n if i ~= j D(i,j) = sq ...
- tar 压缩归档
压缩归档 掌握归档的定义:归档(archiving)就是将许多文件(或目录)打包成一个文件. 了解归档的目的:归档的目的就是方便备份.还原及文件的传输操作. 掌握tar命令的功能:将多个文件(也可能包 ...
- CentOS6.5安装图形用户界面
CentOS 6.5 安装图形界面 安装的时候没有安装图像界面.安装步骤如下: 1.yum -y groupinstall Desktop 2.yum -y groupinstall "X ...
- VMware和Centos安装使用
下载centos系统ISO镜像 要安装centos系统,就必须得有centos系统软件安装程序,可以通过浏览器访问centos官网http://www.centos.org,然后找到Downloads ...