Select
- 기본 사용 형식
SELECT <추출할 열 이름>
FROM <원본 테이블 이름> <쿼리 내에서 사용할 이름>
WHERE <추출할 조건>
ORDER BY #정렬
- 기본적으로 쿼리는 소문자로 작성해도 된다 ! 단, 칼럼명은 대소문자 구분
- 정렬
- ORDER BY <열 이름 혹은 몇번 째 열인지> asc (오름 차순), desc (내림차순) ;
- 날짜 데이터 다루는 방식
- 형식 지정 : DATE_FORMAT(<열 이름>'%Y-%m-%d') AS <열 이름>
- 월만 지정해서 조건 지정할 때: MONTH(<날짜가 포함된 열 이름>)
- 조건을 지정할 때having <열 이름> like ‘%서울’
- WHERE AND 조건 AND 조건
- 연산
- 평균: AVG
- 소숫점: ROUND(<열 이름>,<소수점 자리 >)
- groupby : 그룹별 평균 등등
- Example
- 강원도에 위치한 생산공장 목록 출력하기
- SELECT FACTORY_ID, FACTORY_NAME, ADDRESS FROM FOOD_FACTORY WHERE ADDRESS like'강원도%';
- 흉부외과 또는 일반외과 의사 목록 출력하기
- SELECT DR_NAME, DR_ID, MCDP_CD,DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') FROM DOCTOR WHERE MCDP_CD = "CS" or MCDP_CD ="GS" ORDER BY 4 DESC, 1;
- 서울에 위치한 식당 목록 출력하기
- #평균 리뷰 점수 : groupby 활용 #테이블 합치기 필요 select A.REST_ID, B.REST_NAME,B.FOOD_TYPE,B.FAVORITES,B.ADDRESS, round(avg(A.REVIEW_SCORE),2) as SCORE from REST_REVIEW A #REST_REVIEW 테이블을 A이름으로 가져오기 join REST_INFO B on A.REST_ID = B.REST_ID #rest_id 기준으로 조인 group by A.REST_ID having B.ADDRESS like '서울%' #서울로 시작하는 단어 order by SCORE desc, B.FAVORITES desc ;
- 조건에 맞는 도서 리스트 출력하기
- SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE FROM BOOK WHERE CATEGORY = '인문' AND YEAR(PUBLISHED_DATE) = 2021 ORDER BY PUBLISHED_DATE;
- 과일로 만든 아이스크림 고르기
- 두 테이블을 합치기 위해서는 join 활용
- 테이블 이름을 a로 지정헀다면 뒤에서 a로 쓰기. 합친 이후에는 테이블 이름 지정해줄 필요 없음
select a.FLAVOR from FIRST_HALF a left join ICECREAM_INFO on a.FLAVOR = ICECREAM_INFO.FLAVOR where TOTAL_ORDER >3000 and INGREDIENT_TYPE = 'fruit_based' order by TOTAL_ORDER desc;
- 평균 일일 대여 요금 구하기
- 조건문 지정
- round를 통한 반올림과 avg를 통한 평균 합계
select round(avg(DAILY_FEE),0) as AVERAGE_FEE # 평균 일일 대여 요금 / 소수점 반올림 from CAR_RENTAL_COMPANY_CAR where CAR_TYPE = 'SUV' #차 종류 조건문
SUB QUERY (서브 쿼리문)
- 하나의 쿼리 문장 내에 포함된 또 하나의 쿼리 문장.
- 비교연산자의 오른쪽에 기술해야 하고 반드시 괄호 안에 넣어야 함.
- 메인 쿼리가 실행되기 이전에 한 번만 실행됨.
- 가격이 제일 비싼 식품의 정보 출력하기
SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = (select max(PRICE) from FOOD_PRODUCT)
기본키와 외래키
- 기본키 (Primary Key): 각 테이블에 1개만 지정 가능→ 테이블을 나타내는 id
- 데이터를 구분할 수 있는 식별자로 사용
- NULL값이 허용되지 않음
- 연결되는 두 테이블 중 기준테이블에 위치
- 외래키 (Foreign Key): 각 테이블 여러개 지정 가능하며, 두 테이블 사이의 관계를 연결
- 연결되는 두 테이블 중 참조 테이블에 위치
300x250