CS/database

[데이터베이스] select, where, order by & top

꽁이꽁설꽁돌 2025. 5. 13. 23:28
728x90
반응형

 

 

select *
from INFORMATION_SCHEMA.TABLES

select distinct building
from classroom

 

 

  • classroom 테이블에서 중복 없이(building 값이 같은 것은 하나만)
  • building 열만 고유하게(distinct) 추출합니다.

 

select CONCAT(building, '_', 'Room', '_', room_number) as classroom_name, capacity
from classroom

 

 

 

  • classroom 테이블에서
  • 각 행의 building과 'Room' 문자열, room_number를 문자열로 이어 붙여서
    → 하나의 새로운 열 classroom_name으로 만들고
  • 그와 함께 capacity(수용 인원)도 같이 조회합니다.

 

select dept_name, budget
from department
where budget between 70000 and 80000

select course_id, title
from course
where dept_name = 'Comp.Sci.'

select building, room_number, capacity
from classroom
where (building='Arts' and capacity > 30)
		or (building='NewHall')

 

 

select top 2 building, room_number, capacity
from classroom
order by building asc, capacity desc
	case when capacity is null then 1 else 0 end
    
    
    
--select top 2: 결과 중 상위 2개 행만 가져온다.
--from classroom: classroom 테이블에서.
--order by:
--building 오름차순 (A~Z 순),
--capacity가 NULL이면 뒤로 정렬
--그 후 capacity를 내림차순 정렬.



building	room_number	capacity
Arts	A201	60 ← 1등
Arts	A101	45 ← 2등
Arts	A103	NULL ← 무시됨

 

 

select top 2 course_id, title, credits
from course
where dept_name = 'Comp. Sci.' and credits>=3
order by title asc

 

 

select building, room_number, capacity
from classroom
order by capacity asc
offset 2 rows fetch next 2 rows only


--select building, room_number, capacity: classroom 테이블에서 건물, 호실 번호, 수용 인원을 선택합니다.
--order by capacity asc: 수용 인원(capacity)을 오름차순으로 정렬합니다 (작은 수부터).
--offset 2 rows: 처음 2개 행을 건너뜁니다.
--fetch next 2 rows only: 그 다음 2개 행만 가져옵니다.

 

 

반응형