中级工程师基础SQL试题
一、查詢員工的全名,email和電話
SELECT concat(first_name,',',last_name),email,phone_int//將employees表的所有員工的last_name和first_name拼接起來作為Name FROM employees;二、查詢所有員工的全名,月薪和年薪(月薪*12)
SELECT first_name,last_name,salary,salary*12 FROM employees;三、查詢所有員工的全名,月薪和年終獎(jiǎng)(年薪*commission_pct)
SELECT first_name,last_name,salary,salary*12*ifnull(commission_pct,0) //IFNULL函數(shù)是MySQL控制流函數(shù)之一,它接受兩個(gè)參數(shù),如果不是NULL,則返回第一個(gè)參數(shù)。否則,IFNULL函數(shù)返回第二個(gè)參數(shù)。 //傭金百分比 (CommissionPCT)但是傭金百分比,數(shù)據(jù)庫(kù)里employees表里的一個(gè)列。FROM employees;四、查詢哪些部門和職位有員工
SELECT DISTINCT department_id,job_id from employees WHERE department_id is not null //SELECT DISTINCT用于返回唯一不同的值五、查詢1999年之后入職的員工信息
SELECT first_name,last_name,hire_date FROM employees WHERE year(hire_date) >= '1999'六、查詢公司的老板信息
SELECT first_name,last_name FROM employees WHERE manager_id IS NULL七、查詢所有員工信息,按照部門和年薪降序排序;
SELECT first_name,last_name,salary*12 as total FROM employees ORDER BY department_id,total DESC //ORDER BY 關(guān)鍵字用于對(duì)結(jié)果集按照一個(gè)列或者多個(gè)列進(jìn)行排列。 //ORDER BY 關(guān)鍵字默認(rèn)按照升序進(jìn)行排序。DESC降序八、給用戶名加密,保留員工全名前3位,中間4位使用*代替,如果姓名還有多余的字符,保留;
SELECT concat(RPAD(substring(concat(first_name,last_name),1,3),7,'*'), SUBSTRING(concat(first_name,last_name),8)) FROM employees九、計(jì)算員工姓名和全薪;
SELECT first_name,last_name,salary,salary*12*(1+ifnull(commission_pct,0)) FROM employees十、查詢員工所屬的部門id,如果沒有部門,打印“未分配部門”
SELECT first_name,last_name,ifnull(department_id,'未分配部門') FROM employees十一、查詢出每一個(gè)部門的平均工資
SELECT department_id,AVG(salary) FROM employees WHERE department_id is not null GROUP BY department_id十二、查詢平均工資高于8000的部門和其平均工資
SELECT department_id,AVG(salary) FROM employees WHERE department_id is not null GROUP BY department_id HAVING AVG(salary)>=8000十三、查詢換過工作員工換工作的次數(shù)
SELECT employee_id,COUNT(employee_id) FROM job_history GROUP BY employee_id十四、查詢?cè)?5,96,97,98年各進(jìn)公司多少人
SELECT year(hire_date),count(employee_id) FROM employees WHERE YEAR(hire_date) in ('1995','1996','1997','1998') GROUP BY YEAR(hire_date)十五、輸出員工名稱,員工id,員工所屬部門
SELECT first_name,last_name,department_name FROM employees e JOIN departments d ON e.department_id = d.department_id十六、輸出員工信息,包括employee_id, first_name,
department_id, department_name location_id city SELECT e.employee_id,e.first_name,d.department_id,d.department_name,l.location_id,l.city FROM employees e JOIN departments d ON e.department_id = d.department_id JOIN locations l ON d.location_id = l.location_id十七、在 EMPLOYEES 表中所有薪水位于JOB_GRADES表最低薪水和最高薪水之間雇員的薪水級(jí)別
SELECT e.first_name,e.last_name,e.salary FROM employees e,job_grades j WHERE e.salary BETWEEN j.lowest_sal AND j.highest_sal SELECT e.first_name,e.last_name,e.salary FROM employees e JOIN job_grades j ON e.salary BETWEEN j.lowest_sal AND j.highest_sal十八、查詢所有有獎(jiǎng)金的員工的姓名,部門,地址,城市
SELECT e.employee_id,e.first_name,d.department_id,d.department_name,l.location_id,l.city FROM employees e JOIN departments d ON e.department_id = d.department_id JOIN locations l ON d.location_id = l.location_id WHERE e.commission_pct IS NOT NULL十九、查詢last_name為’Ki’ 的員工的經(jīng)理信息
SELECT first_name,last_name FROM employees WHERE employee_id IN (SELECT manager_id FROM employees WHERE last_name LIKE 'Ki%') //IN操作符允許where子句中規(guī)定多個(gè)值 //LIKE操作符用于WHERE子句中搜索列中的指定模式二十、查詢公司工資最低的員工信息
SELECT first_name,last_name,salary FROM employees WHERE salary = (SELECT MIN(salary) FROM employees)二十一、查詢1999年來公司的所有員工的最高工資的員工
SELECT first_name,last_name,hire_date,salary FROM employees WHERE salary= (SELECT MAX(salary) FROM employees WHERE year(hire_date)='1999') AND year(hire_date) = '1999' //WHERE子句用于過濾記錄.二十二、查詢?cè)?jīng)做過ST_CLERK的員工信息
SELECT e.first_name,e.last_name,j.job_id FROM employees e JOIN job_history j ON e.employee_id = j.employee_id WHERE j.job_id = 'ST_CLERK'總結(jié)
以上是生活随笔為你收集整理的中级工程师基础SQL试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java date转sql date_j
- 下一篇: MySQL之表结构设计