MySQL
关于个人在MySql遇到的问题
汤圆的爸爸
这条道路很漫长!
展开
-
菜鸡对于count的简单认识
从执行计划来看,count(1)和count(*)的效果是一样的。总结:InnoDB引擎下:1.count(1) /count(*)会统计表中的所有的记录数,包含字段为null 的记录;2.count(列名) 会统计该字段在表中出现的次数,不统计字段为null 的记录;count查询效率问题:其实,count(*)和count(1)的效率是一样的!两者没有性能差异!(如果表存在主键,他们都是根据主键去count的,速度都较快;如果不存在主键,则速度都较慢!)当表的数据量大些时,对表作原创 2020-09-27 16:06:21 · 276 阅读 · 0 评论 -
MYSQL多种情况的判断----------case(when)的使用
获取有奖金的员工相关信息。给出emp_no、first_name、last_name、奖金类型btype、对应的当前薪水情况salary以及奖金金额bonus。 bonus类型btype为1其奖金为薪水salary的10%,btype为2其奖金为薪水的20%,其他类型均为薪水的30%。 当前薪水表示to_date='9999-01-01'本题我的答案:...原创 2020-09-22 11:36:34 · 255 阅读 · 0 评论 -
sum(salary)+ OVER(order by emp_no)的使用
按照salary的累计和running_total,其中running_total为前N个当前( to_date = '9999-01-01')员工的salary累计和,其他以此类推。 具体结果如下Demo展示:题解:另外增加一列字段running_total:就是统计前面员工的工资...原创 2020-09-22 11:28:50 · 610 阅读 · 0 评论 -
聚合函数的开始学习
按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果employees我觉得这个题目就是聚合函数的使用:聚合函数group_concat(X,Y),其中X是要连接的字段,Y是连接时用的符号,可省略,默认为逗号。本题目题解:...原创 2020-09-21 11:51:26 · 159 阅读 · 0 评论 -
2020/9/21----------------MYSQL的问题
删除emp_no重复的记录,只保留最小的id对应的记录。字段如下:题解:首先根据每个emp_no分组并且筛选最小的id上下两种解法对比就是当在一个表筛选出字段为条件(该表为内表)然后在这一个表更新以内表为条件(外表)就会出现以下问题[Err] 1093 - You can't specify target table 'titles_test' for update in FROM clause ...原创 2020-09-21 10:39:06 · 137 阅读 · 0 评论 -
2020-09-18对于表actor批量插入如下数据,如果数据已经存在,请忽略(不支持使用replace操作)
题目表以及字段:个人的题解:插入数据 假如数据在表中已经存在 就忽略 不用插入原创 2020-09-18 10:57:18 · 165 阅读 · 0 评论 -
2020-09-18 MYSQL奇闻趣事
题目:汇总各个部门当前员工的title类型的分配数目,即结果给出部门编号dept_no、dept_name、其部门下所有的当前(dept_emp.to_date = '9999-01-01')员工的当前(titles.to_date = '9999-01-01')title以及该类型title对应的数目count(注:因为员工可能有离职,所有dept_emp里面to_date不为'9999-01-01'就已经离职了,不计入统计,而且员工可能有晋升,所以如果titles.to_date 不为 '9999-01原创 2020-09-18 10:33:14 · 154 阅读 · 0 评论 -
查找描述信息(film.description)中包含robot的电影对应的分类名称(category.name)以及电影数目(count(film.film_id)),而且还需要该分类包含电影总数量
题意:1.首先电影的描述包含robot2.并且该分类包含的全部的电影数量大于5(该分类是指包含robot的电影描述所在的那个分类)3.并且统计电影的描述包含robot的数量为几表字段如下:题解:1.我们可以建立一个临时表:包含robot的电影表,所以我们可以直接查询该表的电影数量即就是题意三的要求2.建立一个film_category的临时表:可以查询该分类包含的全部的电影数量大于5(该分类是指包含robot的电影描述所在的那个分类)本题目本人的答案:..原创 2020-09-17 11:55:06 · 540 阅读 · 0 评论 -
将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分 (注:该数据库系统是sqllite,字符串拼接为 || 符号,不支持concat函数
员工表的字段如下:CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PRIMARY KEY (`emp_no`));第一次遇到需要把表中字段的拼原创 2020-09-17 11:02:55 · 332 阅读 · 0 评论 -
查找当前薪水(to_date=‘9999-01-01‘)排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,你可以不使用order by完成吗
以下是表的字段详细说明CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PRIMARY KEY (`emp_no`));CREATE TABLE原创 2020-09-16 13:55:16 · 232 阅读 · 0 评论 -
查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序 (注:可能有employees表和salaries表里存在记录的员工,有对应
以下是表的字段说明CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL, -- '入职时间'PRIMARY KEY (`emp_no`));CR...原创 2020-09-16 13:28:00 · 311 阅读 · 0 评论