MySQL 연습 7|| 간단한 기사 1위(5문제 포함, 난이도: 간단)

소개: 제목은 Niuke의 온라인 프로그래밍 SQL 실습에서 따온 것입니다.이 기사의 내용은 주로 블로거의 아이디어, 관련 통찰력 및 질문을 수행할 때 주요 요점에 대한 요약을 설명하는 것입니다. 대체적으로 명확한 버그는 고치기 쉽고, 숨은 버그는 찾기 힘들고, 갈 길이 멀다.

질문 1 (난이도: 쉬움)

다음과 같은 직원 테이블 프로필이 있습니다.

쓰기 요구 사항:

직원에서 최신 직원의 모든 정보를 찾으면 위의 예의 출력은 다음과 같습니다.

문제 해결 아이디어:

 문제 해결 코드:

#解法一:
SELECT * FROM employees
ORDER BY hire_date DESC
LIMIT 1;

#解法二:
SELECT * FROM employees
WHERE hire_date = (
SELECT max(hire_date) FROM employees);

비교 요약:

  • 제한은 사용하기 더 편리하지만 여러 데이터 조각이 동일한 요구 사항을 충족하는 경우에는 이 상황이 적용되지 않습니다.

질문 2 (난이도: 쉬움)

다음과 같은 직원 테이블 프로필이 있습니다.

쓰기 요구 사항:

사원 목록에서 마지막에서 세 번째 사원에 대한 모든 정보를 찾으십시오. 위 예제의 출력은 다음과 같습니다.

참고: 같은 날짜에 시작한 직원이 있을 수 있으므로 직원 온보딩 시간이 마지막에서 세 번째인 직원이 한 명 이상 있을 수 있습니다.

문제 해결 아이디어:

  문제 해결 코드:

select * from employees
where hire_date = (
select distinct hire_date from employees
order by hire_date desc limit 2,1
);

비교 요약:

  • 첫 번째 질문과 비교하여 두 번째 질문은 같은 날짜에 가입한 직원의 존재를 허용하므로 한도를 적용할 수 없으며, 이는 한도의 한도이기도 합니다.
  • 보충 지식: limit 절의 기능은 반환되는 쿼리 결과의 수를 제한하는 것입니다. 사용법 : [select * from table name limit m,n ], 여기서 m은 쿼리 결과의 인덱스 값이며 0부터 시작합니다. 기본값, n은 쿼리 결과 반환된 금액입니다.


질문 3 (난이도: 쉬움)

직원 테이블이 있으며 직원 프로필은 다음과 같습니다.

부서 테이블이 있으며 dept_emp 프로필은 다음과 같습니다.

쓰기 요구 사항:

부서에 배정된 모든 사원의 last_name, first_name, dept_no를 찾습니다. 미지정 부서의 사원은 표시되지 않습니다. 위의 예는 다음과 같습니다.

문제 해결 아이디어:

 문제 해결 코드:

#内联解法
select employees.last_name,employees.first_name,dept_emp.dept_no
from dept_emp
inner join employees
on dept_emp.emp_no=employees.emp_no;

#左连接解法:
select employees.last_name,employees.first_name,dept_emp.dept_no
from dept_emp
left join employees
on dept_emp.emp_no=employees.emp_no
where dept_no is not null;

비교 요약:

  • 상대적으로 간단한 2 테이블 연결의 사용을 주로 검토합니다.

질문 4 (난이도: 쉬움)

급여 척도가 있으며 급여는 다음과 같이 프로파일링됩니다.

쓰기 요구 사항:

15개 이상의 급여 레코드와 해당 레코드 번호 t가 있는 사원 번호 emp_no를 찾으십시오. 위 예의 출력은 다음과 같습니다.

문제 해결 아이디어:

 문제 해결 코드:

select emp_no, count(*) from salaries
group by emp_no
having count(*)>15;

비교 요약:

  • 그룹화 후 필터링은 have를 사용하고 그룹화 전 필터링은 where를 사용합니다.

질문 5 (난이도: 쉬움)

급여 척도가 있으며 급여는 다음과 같이 프로파일링됩니다.

쓰기 요구 사항:

전체 사원의 구체적인 급여 상황을 찾아 같은 급여를 한 번만 표시하고 역순으로 표시하면 위의 예의 출력은 다음과 같습니다.

문제 해결 아이디어:

문제 해결 코드:

select distinct salary
from salaries
order by salary desc;

비교 요약:

  • 주로 고유한 키워드의 사용과 상대적으로 간단한 내림차순으로 순서의 사용을 검토합니다.

추천

출처blog.csdn.net/Inochigohan/article/details/122619132