我们来看看基本的SELECT查询语句的练习难度
题目如下
# 1.查询员工12个月的工资总和,并起别名为ANNUAL SALARY
# 2.查询employees表中去除重复的job_id以后的数据
# 3.查询工资大于12000的员工姓名和工资
# 4.查询员工号为176的员工的姓名和部门号
# 5.显示表 departments 的结构,并查询其中的全部数据
第一题,1.查询员工12个月的工资总和,并起别名为ANNUAL SALARY
这个还是比较有难度的,工资总和怎么理解呢,
理解1:基本工资12个月就是基本工资*12,,我们先运行一下这里我们立马就报错了,为什么呢,因为中间多了个空格,那么我们就要给它加一个双引号,记得我们时间和字符串用的是单引号,字段名用双引号.
理解2:包含奖金的工资.这里有的同学就会说了,工资是包含奖金的,那么我们就要这么写
USE atguigudb;
SELECT employee_id,salary(1+commission_pct])*12 "annual salary"
FROM employees;
这里我们一执行就会发现,很多年工资都变成空了,为什么呢,是因为我们人commission_pct中的空值加入运算了,那么就会导致,出现很多年工资是空值,我们就要使用ifnull函数
SELECT employee_id,salary*(1 + commission_pct)*12 "annual salary"
FROM employees;
两个都对,就看你怎么理解了
2.查询employees表中去除重复的job_id以后的数据
我们先正常查询 SELECT JOB_id FROM employees;
我们发现一个有107条记录DISTINCT就是去重我们再试一试
SELECT DISTINCT job_id FROM employees;
这次只剩下19条,说明有19个工种,下一个.
# 3.查询工资大于12000的员工姓名和工资
其实这一块来讲,属于我们下一章的运算符的内容,但是不是特别困难我们就加入了where的联系中
SELECT last_name,salary
FROM employees
WHERE salary>12000;
这些员工的工资就如下.
# 4.查询员工号为176的员工的姓名和部门号
SELECT last_name,department_id
FROM employees
where employee_id = 176;
sql语言一看就是外国人发明的.如果我们中国人查肯定是在哪个表里查什么.sql的语言模式是我要查什么,在哪里.我们习惯是
# 5.显示表 departments 的结构,并查询其中的全部数据
DESC departments;
SELECT * FROM departments;
大家也熟悉熟悉我们的表内容,之后还会用到,部门表里有个位置id,要去location表里查看
我们会发现表和表之间有点关系,我们到时候要进行多表查询,到时候的查询语句就会复杂一点.
我们最简单的查询语句就出来了
SELECT * FROM 表 WHERE 条件;
我们一般都会用到where,因为你们想,我们一个表里有几万条,上万条数据,如果你不加where,那么我们要呈现给用户那是非常恐怖的事情,我们一般都会加一点过滤条件,我们已经用上了大于,小于等于,这些运算符.除了这些运算符还有哪些更丰富的运算符呢,接下来我的文章就说一下算数运算符