연습문제 & 코딩테스트 문제

hyeh·2022년 8월 8일

SQL 기초

목록 보기
3/9
  • 2014년 7월 4일 ~ 7월 7일 사이에 주문 받은 도서의 주문 번호는?
    • data 자료형은 -가 있어도 - 없이 날짜를 입력해도 된다
    • BETWIEEN AND는 앞뒤 조건도 포함된다
SELECT orderid
FROM orders
-- WHERE orderdate BETWEEN '2014-07-04' AND '2014-07-07';
WHERE orderdate BETWEEN '20140704' AND '20140707';

  • 2014년 7월 4일~7월 7일 사이에 주문 받은 도서를 제외한 도서의 주문번호는?
    • 제외를 하고 싶을 땐 NOT을 사용하면 된다!!!
SELECT orderid
FROM orders
-- WHERE orderdate NOT IN('2014-07-04','2014-07-05','2014-07-06','2014-07-07');
WHERE orderdate NOT BETWEEN '20140704' AND '20140707';

  • 성이 김씨이고 이름이 아로 끝나는 고객의 이름과 주소
    • 앞뒤 글자를 지정할 때는 중앙에 %를 사용할 수 있다!!!
SELECT name, address
FROM customer
-- WHERE name LIKE '김%' AND name LIKE '%아';
WHERE name LIKE '김%아';

SELECT DISTINCT city
FROM station
WHERE city NOT LIKE 'a%'
	AND city NOT LIKE 'e%'
	AND city NOT LIKE 'i%'
	AND city NOT LIKE 'o%'
	AND city NOT LIKE 'u%'
	AND city NOT LIKE '%a'
	AND city NOT LIKE '%e'
	AND city NOT LIKE '%i'
	AND city NOT LIKE '%o'
	AND city NOT LIKE '%u'
SELECT DISTINCT city
FROM station
WHERE LEFT(city, 1) NOT IN ('a', 'e', 'i', 'o', 'u') 
	AND RIGHT(city, 1) NOT IN ('a', 'e', 'i', 'o', 'u')
SELECT DISTINCT city
FROM station
WHERE city REGEXP '^[^aeiou].*[^aeiou]$'
SELECT DISTINCT city
FROM station
WHERE SUBSTR(city, 1, 1) NOT IN ('a', 'e', 'i', 'o', 'u')
	AND SUBSTR(city, -1, 1) NOT IN ('a', 'e', 'i', 'o', 'u')

문제풀 때 TIP!

  • 필요한 테이블과 칼럼부터 확인!
  • 칼럼의 데이터타입 확인! (숫자, 문자열, 날짜 등)
  • 어떤 함수가 필요할지 생각하기! ⇒ 이 단계에서 모르는 부분 있다면 구글링(mysql 붙여서 검색)
  • 가급적 문제 이름으로 구글링하는 것은 마지막 단계에서만 하기! ⇒ 스스로 생각하는 힘!
profile
좌충우돌 천방지축 룰루랄라 데이터 공부

0개의 댓글