데이터베이스안의 데이터들을 SELECT절을 사용해 조회할 수 있다.
EX) SELECT * FROM Atable
Atable의 데이터의 모든 데이터를 조회해서 보여주는 쿼리로 SELECT 앞의 * 이 전체를 의미한다.
이러한 SELECT 절과 함께 사용하여 데이터 조회에 조건을 걸 수 있다.
WHERE을 사용하는것으로 다음과 같은 예시들이 있다.
EX) SELECT * FROM Atable WHERE name = "이민우"
Atable의 데이터중 name필드값이 이민우인 데이터를 보여준다.
EX) SELECT * FROM Atable WHERE name = "이민우" AND age = "27"
Atable의 데이터중 name필드값이 이민우 이고 age필드값이 27인 데이터를 보여준다.
AND는 모든 조건이 총족하는 데이터를 보여줄때 사용한다.
EX) SELECT * FROM Atable WHERE name like "%민우"
Atable의 데이터중 name필드값이 %을 기준으로 민우로 끝나는 데이터를 보여준다.
EX) SELECT * FROM Atable WHERE name IN('이민우','김민우')
Atable의 데이터중 name필드값이 IN()안의 값인 이민우나 김민우인 데이터를 보여준다.
EX) SELECT * FROM Atable WHERE age BEETWEEN 20 AND 30
Atable의 데이터중 age필드값이 20~29 인 데이터를 보여준다.
필드값들 중 임의의 갯수를 정하고 정한 필드값을 기준으로 테이블을 조회한다.
EX) SELECT * FROM Atable GROUP BY name
Atable의 데이터를 name필드값을 기준으로 데이터를 조회한다.
GROP BY와 함께쓰이는 연산자는 다음과 같다.
EX) SELECT MAX(*) FROM Atable GROUP BY age
Atable의 데이터중 age필드값이 제일큰 데이터를 조회한다.
이와 반대로 MIN(*)은 age필드값이 제일 작은 데이터를 조회한다.
EX) SELECT age(*) FROM Atable GROUP BY age
Atable의 age필드값의 평균을 보여준다.
EX) SELECT num(*) FROM Atable GROUP BY age
Atable의 age필드값을 모두더한 값을 보여준다.
필드값들 중 임의의 갯수를 정하고 정한 필드값을 기준으로 테이블을 정렬한다.
EX) SELECT * FORM Atable ORDER BY age
Atable을 age값을 기준으로 데이터를 정렬하여 보여주는데 default값은 ASC로 오름차순으로 데이터를 보여준다 반대로 DESC는 내림차순으로 데이터를 보여주는데 age 다음 마지막으로 넣어주면 된다.
테이블의 이름을 축약한다.
*EX) SELECT FROM Atable a WHERE a.name = "이민우"
예시와 같이 a 로 테이블 이름을 축약하고 필드값앞에 붙여줌으로써 a테이블의 필드값이란것을 지정할 수 있다.
이렇게 테이블의 이름을 축약하는것은 다음으로 나올 JOIN에서 알 수 있다.
KEY 값으로 두 테이블을 연결한다.
*EX) SELECT FROM Atable a LEFT JOIN Btable b ON a.name = b.name
Atable을 a로 이름을 축약하고 Btable의 이름을 b로 축약하고 두테이블에 모두 존재하는 필드값인 name을 기준으로 두 테이블을 연결한다.
LEFT JOIN은 a 테이블값들은 모두 나타내면서 b테이블은 a테이블과 name일치하는 데이터 들을 조회한다.
예를들어 a 테이블 name값이 이민우 인것과 b테이블의 name값이 김민우 인것이 있다고 할때 이민우의 값은 나오지만 김민우의 값은 나오지 않는다.
또한 연결한다는것은 a테이블의 name 값이 이민우인 값들 옆에 b테이블의 name 값이 이민우인 값을 붙혀 조회한다.
마지막으로 a 테이블의 name필드에는 있지만 b 테이블의 name필드에는 없는 데이터가 있을 경우 name필드의 값들은 그대로 들어가고 b 테이블에 해당하는 값을은 null이 된다.
*EX) SELECT FROM Atable a INNER JOIN Btable b ON a.name = b.name
INNER JOIN은 a 테이블의 name필드값과 b 테이블의 name필드값이 모두 일치하는 값들을 연결해 조회한다.
LEFT 조인과는 다르게 값들이 일치하지 않는 데이터들은 조회되지 않는다.
추가적으로 NULL 데이터를 찾을 수 있는 쿼리는 IS NULL 과 IS NOT NULL이 있다 IS NULL은 NULL인것을 찾고 IS NOT NULL은 NULL이 아닌것을 찾는다.
JOIN과는 다른방식으로 테이블을 붙여준다.
EX) SELECT name FROM Atable
UNION
SELECT name FROM Btable
JOIN과는 다르게 필드값과 데이터 타입이 같은 테이블들을 붙여준다.
붙여준다는 것은 Atable의 name 값과 Btable name 값을 모두 한 필드에 합쳐 조회해준다고 할 수 있을것 같다.
예를들어 Atable에 이민우 김민우가 있고 Btable에 좌민우 우민우가 있다면 조회 데이터는 김민우 이민우 우민우 좌민우 이다.