데이터베이스 인 스 턴 스 코드 - 3 절

제1 1 문제
기 존 데이터 시트 World, 필드 는 Name, Continent, Area, Population, Gdp 입 니 다.
한 나라 의 면적 이 300 만 평방킬로미터 가 넘 거나 인구 가 2500 만 명 이 넘 으 면 이 나 라 는 큰 나라 다.
요구: SQL 을 만들어 서 모든 나라 의 이름, 인구, 면적 을 선택 하 십시오.
select Name, Population, Area from World where Area>3000000 or Population>25000000;

해석: 또는 조건문 은 or 키 워드 를 사용 할 수 있 습 니 다.
열 두 번 째 문제
기 존 데이터 시트 Courses, 필드 는 Student, class 입 니 다.
요구: SQL 을 작성 하여 5 명 이 넘 는 모든 과정 을 선택 하 십시오. 또한 학생 들 은 매 수업 에서 중복 계산 되 어 서 는 안 됩 니 다.
select class from courses group by class having count(distinct student)>=5;

해석: 계산 할 때 같은 이름 의 학생 을 필터 해 야 합 니 다.
제1 3 문제
기 존 데이터 테이블 Logs, 필드 는 Id, Num
요구: SQL 을 작성 하여 최소 세 번 연속 으로 나타 나 는 모든 숫자 를 찾 습 니 다.
방안 1
select distinct L1.Num ConsecutiveNums from Logs L1, Logs L2, Logs L3 
where 
L1.Num=L2.Num and L2.Num=L3.Num and L1.id=L2.id-1 and L2.id=L3.id-1;

방안 2
select distinct Num as ConsecutiveNums 
from (
	select Num,
		case
			when @prev = Num then @count:=@count+1                                         
			when @(prev := Num) is not null then @count := 1
		end as CNT
	from Logs, (select @prev := null, @count := null) as t
) as temp
where temp.CNT>=3

해석: '=' 은 초기 화 를 표시 합 니 다. @ prev 는 사용자 정의 변수 이름 을 표시 합 니 다. 먼저 변수 @ prev, @ count 를 초기 화 합 니 다. 새로운 값 이 있 을 때 @ count 를 초기 화하 고 이 를 1 로 초기 화 한 다음 Num 이 @ prev 와 같 을 때 자동 으로 1 을 추가 합 니 다.
제1 4 문제
현재 데이터 시트 Employee, 필드 는 Id, Name, Salary, Manager Id 입 니 다.
요구: 수입 이 그들 사장 의 성명 을 초과 하 는 것 을 조회 해 주 십시오.
select Name from Employee e where Salary>(select Salary from Employee where id =e.ManagerId);

분석: 본 표 자체 관련 조회
제1 5 문제 부서 임금 이 가장 높 은 직원
현재 데이터 시트 Employee, 필드 는 Id, Name, Salary, Department Id 입 니 다.데이터 시트 Department, 필드 는 Id, Name
요구: 각 부서 에서 임금 이 가장 높 은 직원 을 찾 아 부서, 성명, 임금 을 받 아 라.
select
	d.Name Department,
	e.Name Employee,
	e.Salary Salary
from 
	Employee e join Department d
	on e.DepartmentId = d.Id
where e.Salary >= (
	select max(Salary) from Employee e1 where e.DepartmentId = e1.DepartmentId
);

해석: 우선 두 표 가 연 결 된 다음 에 Employee 가 스스로 연결 되 고 임금 이 최고 임금 과 같 을 때 만 직원 의 각 정 보 를 되 돌려 줍 니 다.

좋은 웹페이지 즐겨찾기