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 ...
随机推荐
- Docker设置http代理
在国内由于不可描述的原因无法访问Google等网站,但是作为一枚挨踢人士,无法使用Google搜索,在使用Ctrl + C技能时是抓狂的:特别是当下Docker.Kubernetes等容器技术火热的时 ...
- LNMP 下使用命令导出导入 MySQL 数据库
导出数据库 导出数据库为 db_wp.sql.gz 文件: 1 mysqldump -u数据库用户名 -p数据库密码 --add-drop-table --complete-insert 数据库名 | ...
- [C]关于函数指针参数的赋值
问题 在有一次尝试用stat()函数获取文件属性的时候,发现如果直接声明一个指针,然后把这个指针作为参数传给函数,会导致函数执行失败,原代码: #include <sys/stat.h> ...
- sublime自动保存设置
首选项——用户设置 (Preferences:Settings - User) 行末添加"save_on_focus_lost": true 注意用逗号分隔 保存即可 save_o ...
- node express+socket.io实现聊天室
参照网址:https://www.jb51.net/article/135058.htm https://www.cnblogs.com/limitcode/p/7845168.html https: ...
- 修改linux终端命令行各字体颜色
这里我用的是 CentOS 7.5,觉得linux终端命令行全部为白色,会经常导致命令与输出内容难以分辨.于是上网找到修改linux终端命令行颜色的方法,发现通过定义PS1环境变量即可实现,下面我以r ...
- 如何手写Ajax实现异步刷新
所谓的异步刷新,就是不刷新整个网页进行更新数据. 只有通过js才能实现Ajax,进而实行异步刷新 表单提交数据和Ajax提交数据的区别:表单提交是提交的整个页面中的数据,提交数据之后会抛弃之前的页面( ...
- Spring注解式事务解析
#Spring注解式事务解析 增加一个Advisor 首先往Spring容器新增一个Advisor,BeanFactoryTransactionAttributeSourceAdvisor,它包含了T ...
- POJ 1515 Street Directions (边双连通)
<题目链接> 题目大意: 有m条无向边,现在把一些边改成有向边,使得所有的点还可以互相到达.输出改变后的图的所有边(无向边当成双向的有向边输出). 解题分析: 因为修改边后,所有点仍然需要 ...
- vue入门1(搭建项目)
安装node.js 安装cnpm npm install -g cnpm --registry=http://registry.npm.taobao.org 安装vue-cli脚手架构建工具 npm ...