# group_concat() 和concat() 一样拼接字符串 用在分组里 需求:查看每个职位都有哪些员工名字 把所有员工成员的名字都列出来 把每个职位里的员工姓名列出来 mysql> select post,group_concat(name) from employee group by post; +-----------+-------------------------------------------------+ | post | group_concat(name) |…
强调: 如果我们用unique的字段作为分组的依据,则每一条记录自成一组,这种分组没有意义 多条记录之间的某个字段值相同,该字段通常用来作为分组的依据 如果按照每个字段都是唯一的进行分组,意味着按照这个表有多少条记录 就分多少组.没有意义 分组一定是 是 好多条记录 能够按照某个字段 只归为几类进行操作 四 聚合函数 max 最大值 min 最小值 avg 平均值 sum 求和 count 总数个数 # 需求 每个职位有多少个员工 没有where就不用写 对每个组进行 聚合函数的 统计 coun…
聚合函数只能用在组里使用 #没有group by 则默认算作一组 取出所有员工的最高工资 mysql> select max(salary) from employee; +-------------+ | max(salary) | +-------------+ | 1000000.31 | +-------------+ row in set (0.00 sec)…
mysql 数据操作 单表查询 group by 介绍 mysql 数据操作 单表查询 group by 聚合函数 mysql 数据操作 单表查询 group by 聚合函数 没有group by情况下 mysql 数据操作 单表查询 group by group_concat() 函数 mysql 数据操作 单表查询 group by 注意 mysql 数据操作 单表查询 group by 练习…
group by 是在where 之后运行 在写单表查询语法的时候 应该把group by 写在 where 之后 执行顺序 1.先找到表 from 库.表名 2.按照where 约束条件 过滤你想要的记录 3.group by 进行分组 4.分完组以后 再进行相应的查询 分组查询:GROUP BY 一 什么是分组?为什么要分组? 分类一定要找大家都有一样的属性 #.首先明确一点:分组发生在where之后,即分组是基于where之后得到的记录而进行的 #.分组指的是:将所有记录按照某个相同字段进…
GROUP BY 单独使用GROUP BY关键字分组 SELECT post FROM employee GROUP BY post; 注意:我们按照post字段分组,那么select查询的字段只能是post,想要获取组内的其他相关信息,需要借助函数 GROUP BY关键字和GROUP_CONCAT()函数一起使用 SELECT post,GROUP_CONCAT(name) FROM employee GROUP BY post;#按照岗位分组,并查看组内成员名 SELECT post,GRO…
小练习: 1. 查询岗位名以及岗位包含的所有员工名字 mysql> select post,group_concat(name) from employee group by post ; +-----------+-------------------------------------------------+ | post | group_concat(name) | +-----------+------------------------------------------------…
mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函数 定义显示格式 mysql 数据操作 单表查询 练习 mysql 数据操作 单表查询 concat_ws() 定义显示格式 mysql 数据操作 单表查询 where 约束 mysql 数据操作 单表查询 group by 分组 mysql 数据操作 单表查询 having 过滤 mysql 数据…
mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 like 模糊匹配 mysql 数据操作 单表查询 where约束 工作模式 mysql 数据操作 单表查询 where约束 练习…
单表查询的语法 distinct 去重 SELECT 字段1,字段2... FROM 表名 库.表名 WHERE 条件 过滤 符合条件的 GROUP BY field 分组条件 HAVING 筛选 过滤 ORDER BY field 排序字段 LIMIT n 限制条数 ; select distinct 字段1,字段2 关键字的执行优先级(重点) 重点中的重点:关键字的执行优先级 from where group by having select distinct order by limit…
创建数据库company create database company charset=utf8; use company; company.employee 员工id id int 姓名 emp_name varchar 性别 sex enum 年龄 age int 入职日期 hire_date date 岗位 post varchar 职位描述 post_comment varchar 薪水 salary double 办公室 office int 部门编号 depart_id int #…
#通过四则运算查询 FROM employee; AS Annual_salary FROM employee; Annual_salary FROM employee; 查看年薪salary*12 mysql from employee; +------------+-------------+ | +------------+-------------+ | alex | 12000003.72 | | yuanhao | 42000.00 | | liwenzhou | 25200.00…
SELECT 字段1,字段2... FROM 库名.表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 1.首先找到表 库.表名 2. 经过where 过滤条件 找到符合条件记录 3.按照分组归类 只剩下组这个单位 4.剩下只能取 组名和聚合函数 ,having过滤只有分组 和聚合函数 HAVING与WHERE不一样的地方在于 执行优先级从高到低:where > group by > having #1. Where 发…
1. 查询各岗位内包含的员工个数小于2的岗位名.岗位内包含员工名字.个数 mysql> select post,group_concat(name),count(id) from employee group by post; +-----------+-------------------------------------------------+-----------+ | post | group_concat(name) | count(id) | +-----------+-----…
如果不指定排序 默认是按照id字段 从小到大排序的  升序 mysql> select * from employee; +----+------------+--------+-----+------------+-----------+--------------+------------+--------+-----------+ | id | name | sex | age | hire_date | post | post_comment | salary | office | de…
select name,age from employee where id >7; 1.首先先找到表   from employee 2.表存在 mysql拿着约束条件  去表里 看依次匹配数据 符合这个条件不 如果匹配的数据 不符合 不应该丢给select 去打印数据 再去匹配第二条数据 匹配成功的数据 丢给select 处理  然后select 根据指定的字段 name,age 去打印数据 where会把整个记录走一遍…
WHERE约束 where字句中可以使用: 比较运算符:>< >=  <=  != between 80 and 100 值在80到100之间   >=80  <=100 in(80,90,100) 值是80或90或100    满足这个条件就可以 like 'egon%'pattern可以是%或_,%表示任意多字符_表示一个字符 逻辑运算符:在多个条件直接可以使用逻辑运算符 and or not select id,name,age from employee whe…
#定义显示格式 concat() 函数用于连接字符串 类似于python 格式化操作print("姓名:%s" % name)或者 用,拼接一个一个的变量print("alex","mike","jack") >>> print("alex","mike","jack") alex mike jack mysql> select concat(…
有个需求用concat以这种格式打印查询 mysql> select concat(name,':',age) from employee; +----------------------+ | concat(name,':',age) | +----------------------+ | | | | | | | | | | | | | | | | +----------------------+ rows in set (0.00 sec) mysql> select concat(na…
mysql; +----+-----------+------+-----+------------+---------+--------------+------------+--------+-----------+ | id | name | sex | age | hire_date | post | post_comment | salary | office | depart_id | +----+-----------+------+-----+------------+-----…
mysql> select * from employee; +----+------------+--------+-----+------------+-----------+--------------+------------+--------+-----------+ | id | name | sex | age | hire_date | post | post_comment | salary | office | depart_id | +----+------------+-…
需求找出年龄是 81 或者 73 或者 28 mysql ; +----+-----------+--------+-----+------------+-----------+--------------+----------+--------+-----------+ | id | name | sex | age | hire_date | post | post_comment | salary | office | depart_id | +----+-----------+-----…
查出所有员工的名字,薪资,格式为 <名字:egon>,<薪资:3000> mysql> select concat('<姓名:',name,'>') as name_info , concat('<薪资:',salary,'>') as salary_info from employee; +---------------------+---------------------+ | name_info | salary_info | +-------…
1. 分页显示,每页5条 mysql,; +----+------------+--------+-----+------------+---------+--------------+------------+--------+-----------+ | id | name | sex | age | hire_date | post | post_comment | salary | office | depart_id | +----+------------+--------+----…
SELECT * FROM employee WHERE name REGEXP '^ale'; SELECT * FROM employee WHERE name REGEXP 'on$'; SELECT * FROM employee WHERE name REGEXP 'm{2}'; 小结:对字符串匹配的方式 WHERE name = 'egon'; WHERE name LIKE 'yua%'; WHERE name REGEXP 'on$'; 需求 找到name 为jin开头的记录 r…
create table employee( id int not null unique auto_increment, name ) not null, sex enum('male','female') not null default 'male', #大部分是男的 age ) unsigned , hire_date date not null, post ), post_comment ), salary ,), office int, #一个部门一个屋子 depart_id int…
mysql 数据操作 多表查询 准备 多表连接查询介绍 mysql 数据操作 多表查询 多表连接查询 笛卡尔积 mysql 数据操作 多表查询 多表连接查询 内连接 mysql 数据操作 多表查询 多表连接查询 外链接之左连接 右连接 mysql 数据操作 多表查询 多表连接查询 全外连接 子查询介绍 mysql 数据操作 多表查询 子查询 介绍 mysql 数据操作 多表查询 子查询 带IN关键字的子查询 mysql 数据操作 多表查询 子查询 带比较运算符的子查询 mysql 数据操作 多表…
单表查询的语法及关键字执行的优先级 单表查询语法 SELECT DISTINCT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 关键字执行的优先级   from where group by select distinct having order by limit   1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组g…
子查询就是: 把一条sql语句放在一个括号里,当做另外一条sql语句查询条件使用 拿到这个结果以后 当做下一个sql语句查询条件mysql 数据操作  子查询 #1:子查询是将一个查询语句嵌套在另一个查询语句中. #2:内层查询语句的查询结果,可以为外层查询语句提供查询条件. #3:子查询中可以包含:IN.NOT IN.ANY.ALL.EXISTS 和 NOT EXISTS等关键字 #4:还可以包含比较运算符:= . !=.> .<等…
为什么需要多表查询: 因为我们不可能把所有数据都放在一张表里 我们把不同数据存储 放在一张一张不同表 方便管理,但我们为了方便管理,把数据拆分到一张一张表去存储. 但是数据还是一个整体,数据之间是有关联关系 ,那就要把分散的数据,合并到一起进行查询  多表查询概念: 连表操作 通过连接方式,把有关系的表拼成一个整体,进行关联查询. 就是把多张表记录 合并到一张表去查询 多表查询准备 数据库 数据表 新建数据库 create database db6 charset=utf8; use db6;…