도르마무의 부자가 되는 일기

(Boothcamp, SQL) MySql ( SQL 데이터 조회 및 정렬) 04/05 본문

IT,PC/MySQL

(Boothcamp, SQL) MySql ( SQL 데이터 조회 및 정렬) 04/05

dorumamu 2022. 4. 7. 01:21

1. 데이터 조회하기

<SELECT>

모든 데이터를 조회할때는 SELECT 문으로 시작한다.

SELECT 칼럼1, 칼럼2, ..... FROM 테이블;

전체 테이블을 조회하기위해선  * 을 사용한다.

ex)

SELECT * FROM 테이블.....;

FROM 절에 테이블 명시 시, SELECT * FROM  데이터베이스.테이블) 형태로 기술

 

현재 사용하는 데이터베이스에 있는 테이블 조회 시 데이터베이스명 생략 가능

ex) USER 데이터베이스

 

다른데이터베이스의 테이블 조회시  데이터베이스.테이블로 사용한다.

 

ex) 현재 사용중인 USE world 데이터베이스에서 mywork 데이터베이스의 테이블을 조회하려면

SELECT * FROM mywork.movie_office WHERE....;

위와 같이 작성해야 한다.

 

2. 조건에 맞는 데이터 조회하기 (WHERE 절)

(1) WHERE 절

SELECT * FROM 테이블  WHERE 조회 조건;

조회 조건을 만족하는 건만 조회가능

조회 조건 : 칼럼, 연산자, 비교 값 

 

ex)

SELECT * FROM city WHERE countrycode = 'KOR';
// city테이블의 countrycode가 'KOR'인 값을 모두 찾는다.

조건에 맞는 연산자

 = : 두 값이 같은지 확인

 <>, != : 두 값이 다른지 확인

 > : 값이 큰지 확인

 >= : 값이 크거나 같은지 확인

 < : 값이 작은지 확인

 <= : 값이 작거나 같은지 확인

 BETWEEN 값1 AND 값2  :  비교값이 값1과 값2 사이에 있는지 확인

 ex) 7 BETWEEN  1 AND 9  -> (TRUE)

      7 BETWEEN  1 AND 5  -> (FALSE)

 

 LIKE : 비교 값에 특정 문자가 포함됬는지 확인

 ex) book LIKE 'A%' -> book 값이 A로 시작하는 모든 자료 검색

 

 IN () : 비교값이 ()에 명시한 값에 포함됐는지 확인 

 ex) book IN ('a', 'b', 'c') -> book값이  'a' 또는 'b' 또는 'c'인 건 검색

 

(2) LIKE 연산자

 

- 문자형 데이터를 비교

- 특정 문자가 포함된 자료 확인

 

column LIKE 'K%' → K로 시작하는 모든 건 검색, %는 모든 문자 의미 

column LIKE '%K' → K로 끝나는 모든 건 검색

column LIKE '%K%' → 중간에 K가 들어간 모든 건 검색

 

논리연산자

 

AND && 연결되는 조건이 모두 참(TRUE)이면 참(TRUE)

OR, || 연결되는 조건이 하나라도 참(TRUE)이면 참(TRUE)
NOT, ! 조건이 결과와 반대인 것이 참(TRUE)

 

<IN 연산자>

• 칼럼에 여러 개의 값이 포함되어 있는지를 확인할 때 사용

ex)

district IN ('seoul', 'kyonggi')

→ district 칼럼 값이 seoul이거나 kyonggi인 건

→ (district = 'seoul' or district = 'kyonggi')로도 찾아낼 수 있음

 

<부등호, Between,,,, and 연산자>

ex)

WHERE population >= 45000000 AND population <= 55000000

// population이 45000000 이상이고 55000000 이하인 건

 

WHERE population BETWEEN 45000000 AND 55000000 위와 같은 동일한 결과

 

(3) 칼럼별 별칭 지정

 

SELECT 절에 기술한 칼럼명을 원하는 이름으로 바꿔서 조회 가능하다

 

ex) 칼럼명 AS 별칭 -> 기존 칼럼명 대신 AS 다음에 오는 별칭으로 조회 가능(AS는 생략 가능)

SELECT id, name, population / 1000 AS pop_100 FROM city;

 population 칼럼을 1000으로 나눈 결과에 pop_100이라는 별칭을 지정하여 불러옴.

 

(4) ORDER BY 정렬

SELECT * FROM 테이블 WHERE  조회 조건 ORDER BY 칼럼1 ASC, 칼럼2 DESC;

ASC : 오름차순 정렬, 생략 가능하다.

DESC : 내림차순 정렬, 생략 불가하다.

 

ORDER BY 절 다음에 정렬하려는 칼럼명을 명시하는 대신 칼럼 순번을 적용해도 정렬이 가능하다

순번은 select 절에 명시한 칼럼의 순서이고 select절에 명시한 칼럼 개수보다 높은 순번을 명시하면 오류가 발생

 

ex) order by 1  desc

 

(5) LIMIT 절

SELECT * FROM 테이블 WHERE 조회 조건 ORDER BY ... LIMIT n;

- LIMIT 다음 명시한 n(숫자)개 만큼의 건(로우)만 조회됨

- ex) LIMIT 10 → 10건만 조회

- ORDER BY 절과 함께 사용하면 상위 n건 또는 하위 n건 데이터 조회 가능

Comments