select
- 선택하다. 보고싶은 데이터를 고를때 사용
- table : 엑셀과 비슷한 열column과 행 row으로 구성
- 10r(10개의 행) 12c (12개의 열) : 특정 주제단위로 저장되어있음.
SELECT * (아스타:테이블에 들어간 항목을 모두 본다) or 특정 컬럼명, 특정 컬럼명 으로도 조회 가능
FROM 테이블명
LIMIT (MySql에서만 나는 몇개의 행만 보고싶다)10 (10개만보고싶다)
order by
- 선택한 데이터를 정렬을 사용할때 쓰는 문법
- 가장 마지막에 사용
- limit 보다는 위에
- 가나다 순 123 순으로 보고싶거나 오름차순
SELECT *
FROM 테이블명
'ORDER BY 컬럼명'
LIMIT 10
10 9 8 순 내림차순
ORDER BY 컬럼명 desc
가장오래된거부터 뜸
ORDER BY YEAR,MONTH,day
group by / count
- count : 건수가 몇개인지 알아볼때 활용하는 문법
select count(*)
from 테이블명
- 테이블명의 행의 갯수를 알고싶을때!
- 특정 테이블에 들어있는 데이터의 전체 갯수를 알 수 있음.
- 보통 group by문법과 같이 사용
- 테이블의 전체가 아닌 특정 항목에 대한 합계나 갯수,평균등을 확인 할수 있음 중복을 제거할때도 사용
연도별 매매 건수 등
select 컬럼명,count(*)
from 테이블명
group by 합계나 갯수를 보고 싶은 컬럼명
select 컬럼명
from 테이블명
group by 합계나 갯수를 보고 싶은 컬럼명
=> 각각다른 연도의 값이 나옴 (중복없음) => 중복제거를 위해서도 자주 사용/특정 항목의 갯수를 알기 위해서도 자주 사용
where / and / or
- where : 테이블에 들어있는 모든 데이터가 아닌 일부 데이터만 보고싶을 때 사용하는 문법
조건을 줄때 사용하는 문법
SELECT 컬럼명 / *
FROM 테이블명
WHERE 컬럼명 = '조건'< 데이터 타입에따라서 ('문자' // 123)
and (조건 추가 , 위와 동일함) (동시조건 동시에 둘다 만족하는 값만나옴)
or (둘 중 하나만 만족해도 값이 나옴)
LIMIT 10
case when / else
- case when: 데이터의 값이 특정한 조건일때 다르게 표현해주는 역할을 하는 문법
- 10대,20대, 등 으로 나오게 grouping 할때 많이 쓰임
- 보기좋게 grouping 가능
select 컬럼명
case when 조건 then '10대'< grouping 된 표현 항목
when 조건2 then '20대'
end
from 테이블명
limit 10
- else와도 자주 쓰임
- 조건을 여러개 적었는데 그중 포함되지않는 나머지
select 컬럼명
case when 조건 then '10대'< grouping 된 표현 항목
when 조건2 then '20대'
else 기타표현내용
end
from 테이블명
limit 10
like / not like
- like : 특정단어가 포함되는 조건
- not like : 특정단어가 포함되지않는조건
select 컬럼명
from 테이블명
where 컬럼명 like '% 조건 %' ->앞뒤에 다른 이름이 나와도 상관없음
limit 10
서브쿼리
- 산식이 들어간 칼럼을 재활용하거나 할때
- 내가 가공한 쿼리를 재사용할때 여러번도 가능함
select *
from ( < 서브쿼리의 시작 ()안에 내용이 테이블의 내용
select 컬럼명, count (*) 컬럼명
from 테이블명
group by 컬럼명
)a <서브쿼리의 끝
where 컬럼명>100 (조건)
join (inner join)
- a테이블과 b테이블 중 한 곳에만 있는 정보는 나오지 않음
- 양쪽 테이블에 다 존재하는 정보만 보여줌
- 하나의 쿼리에 여러개의 테이블 정보를 사용할 떄 사용/특정
다양한 정보를 한번에 보고싶을때
select a.dong
,a.nm
.
.
.
from 테이블명a , 테이블명b
where a.area_cd=b.area_cd / a와b 테이블의 연결고리. 조인키, 두 테이블의 같은 값 연결고리
limit 5
- 하나의 쿼리에 여러개의 테이블 정보를 사용할 떄 사용/특정
outer join
- select a.dong
,a.nm
.
from 테이블명a (모두나옴)
left outer join 테이블명b (조건에 맞는 데이터 표시)
on a.area_cd=b.area_cd / a와b 테이블의 연결고리. 조인키, 두 테이블의 같은 값 연결고리
and b.con_year=2020 (건축년이 2020인 아파트) (조건)
limit 50
- null은 비어있는 데이터
=> 조건이 없을수도있음 - 양쪽에 데이터가 존재하지않더라도 null값으로 표현하면서
- 기준이 되는 데이터에 표시해줌
sum/min/max/AVG
select sum(컬럼명)
min(컬럼명)
max(컬럼명)
avg(컬럼명)
from 테이블명
where 조건
- group by 와도 활용 많이 됨
select 컬럼명1
sum(컬럼명)
min(컬럼명)
max(컬럼명)
avg(컬럼명)
from 테이블명
group by 컬럼명1 - 컬럼명1 별로 sum min max avg를 알수 있음
'😺Data Base > 😻 SQLD' 카테고리의 다른 글
[DB] Index (0) | 2022.09.17 |
---|---|
[RDBMS] 관계형 데이터 모델링 2 (0) | 2022.09.16 |
[RDBMS] 관계형 데이터 모델링 1 (0) | 2022.09.14 |
[DB] 트랜잭션 Transaction 이란? (0) | 2022.09.10 |
[DB] SQL 과 NoSQL (0) | 2022.09.08 |