가장 기본인 데이터를 불러오는 쿼리문
SELECT 컬럼명 FROM 테이블명
SELECT 컬럼명 FROM 테이블명 WHERE 조건
SELECT 컬럼명 FROM 테이블명 WHERE 조건 ORDER BY 컬럼명 ASC or DESC
SELECT 컬럼명 FROM 테이블명 WHERE 조건 ORDER BY 컬럼명 ASC or DESC LIMIT개수
데이터를 삽입하는 쿼리문
INSERT INTO 테이블명 (칼럼명1, 칼럼명2) VALUES ( 값1, 값2)
ex) INSERT INTO Employees (Employee_id, First_name) VALUES (100, ‘Aiden’);
INSERT INTO 테이블명 VALUES (값1, 값2)
데이터를 수정하는 쿼리문
UPDATE 테이블명 SET 칼럼명 = 변경할 값
UPDATE 테이블명 SET 칼럼명 = 변경할 값 WHERE 조건
UPDATE 테이블명 SET 칼럼명1 = 변경할 값1, 칼럼명2 = 변경할 값2 WHERE 조건
테이블에 데이터를 삭제하는 쿼리문
DELETE FROM 테이블명
DELETE FROM 테이블명 WHERE 조건
오름차순과 내림차순으로 정렬할 수 있다.
- 오름차순 : 작은 값 부터 큰 값으로의 순서 ( ASC )
- 내림차순 : 큰 값 부터 작은 값으로의 순서 ( DESC )
설명할 때 쓰일 테이블입니다 테이블 이름은 member입니다.
num | name | grade | salary | class | birthday |
---|---|---|---|---|---|
1 | wqsd | C | 4500 | 1 | 1996-04-13 |
2 | dsg | B | 6700 | 1 | 1998-05-20 |
3 | wqas | A | 10500 | 1 | 2000-01-01 |
4 | Sda | A | 13000 | 3 | 1999-11-22 |
SELECT 칼럼명 FROM 테이블명 ORDER BY 정렬 기준 칼럼명 DESC(내림차순) // ASC(오름차순)
SELECT * FROM member ORDER BY num DESC
SELECT * FROM member ORDER BY birthday
SELECT * FROM member ORDER BY birthday ASC
💡 ASC(오름차순)은 기본 설정입니다.
SELECT * FROM member ORDER BY grade ASC
💡 문자 또한 비교하여 사용 가능합니다
SELECT * FROM member ORDER BY class DESC, grade ASC
💡 ORDER BY절에 칼럼을 여러개 지정할 수 있다 ( , ) 작은 따옴표로 구분
SQL범위 검색하는 문
테이블 이름은 member입니다.
num | name | grade | salary |
---|---|---|---|
1 | wqsd | C | 4500 |
2 | dsg | B | 6700 |
3 | wqas | A | 10500 |
4 | Sda | A | 13000 |
샐러리가 5000 이상 10000 이하인 사람의 이름을 검색해 보겠습니다.
SELECT name FROM member WHERE salary ≥ 5000 AND SALARY ≤ 10000
💡 BETWEEN은 앞에 오는 값이 무조건 작은 값 이어야 합니다.
SELECT name FROM member WHERE salary BETWEEN 5000 AND 10000
SELECT * FROM member WHERE salary NOT BETWEEN 5000 AND 10000
💡 NOT BETWEEN을 통해 해당 범위에 해당하지 않는 값을 가져올 수도 있습니다.
WHERE절 뒤에 붙여서 칼럼이 특정값을 가지고 있는지 확인하는 용도로 쓰입니다.
설명에 쓰일 테이블입니다. 테이블 이름은 member입니다.
num | name | grade | salary | class | birthday |
---|---|---|---|---|---|
3 | wqas | A | 10500 | 1 | 2000-01-01 |
4 | Sda | A | 13000 | 3 | 1999-11-22 |
2 | dsg | B | 6700 | 1 | 1998-05-20 |
1 | wqsd | C | 4500 | 1 | 1996-04-13 |
SELECT 칼럼명 FROM 테이블명 WHERE 칼럼명 IN (값1, 값2 …)
SELECT 칼럼명 FROM 테이블명 WHERE 칼럼명 NOT IN (값1, 값2 …)
SELECT * FROM member WHERE name IN ('wqas', ‘dsg’)
MAX : EXPR중 최댓값을 반환하는 함수
MIN : EXPR중 최솟값을 반환하는 함수
COUNT : EXPR의 행의 개수를 반환한다. [ NULL값은 개수에 포함안됨.]
NAME | CLASS | SALARY |
---|---|---|
철수 | A | 100 |
짱구 | B | 200 |
초롱이 | B | 400 |
유리 | A | 300 |
맹구 | A | 350 |
SELECT MAX(SALARY)
, MIN(SALARY)
FROM 테이블
MAX와 MIN은 그룹함수로서 GROUP BY절을 이용해 그룹별로 최댓값/최솟값을 출력할 수 있다.
SELECT CLASS
, MAX(SALARY)
, MIN(SALARY)
FROM 테이블
GROUP BY CLASS
CLASS | MAX(SALARY) | MIN(SALARY) |
---|---|---|
A | 350 | 100 |
B | 400 | 200 |
결과
- A 클래스의 최대값 350 최소값 100 / B클래스의 최대값 400 최소값 200가 출력됨
SELECT COUNT(SALARY)
FROM 테이블
COUNT(SALARY) |
---|
5 |
결과
- 5개 ROW가 있고 NULL값은 없기 때문에 5가 출력이 되었다.
COUNT함수는 그룹 함수로써 GROUP BY 절을 이용해 그룹별로 ROW의 개수를 출력할 수 있다.
SELECT CLASS
, COUNT(SALARY)
FROM 테이블
CLASS | COUNT |
---|---|
A | 3 |
B | 2 |
결과
- CLASS가 A인 SALARY칼럼 ROW는 3개 / CLASS가 B인 SALARY칼럼 2개 출력되었다.
SELECT COUNT(CLASS) FROM 테이블 WHERE CLASS = A
SUM : EXPR 총합을 구하는 함수
AVG : EXPR 평균을 구하는 함수
NAME | CLASS | SALARY |
---|---|---|
철수 | A | 100 |
초롱이 | B | 200 |
짱구 | B | 300 |
유리 | A | 400 |
맹구 | A | 400 |
SELECT SUM(SALARY) FROM 테이블
SUM(SALARY) |
---|
1400 |
결과
- 하나의 행만 출력되며 모든 행의 SALARY값을 더해 출력이 됩니다.
SELECT AVG(SALARY) FROM 테이블
AVG(SALARY) |
---|
280 |
결과
- 하나의 행만 출력되며 SALARY칼럼 모든 행의 평균을 출력합니다.
그룹화 하여 데이터 조회
SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼;
SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼;
SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼 HAVING 조건식;
GROUP BY 그룹화할 컬럼 [HAVING조건식] ORDER BY 컬럼1 [,컬럼 2, 컬럼3…….];
테이블 이름 here_collection
IDX | TYPE | NAME |
---|---|---|
1 | 1 | 탄지로 |
2 | 1 | 네즈코 |
3 | 2 | 젠이츠 |
4 | 2 | 이노스케 |
5 | 3 | 카나오 |
6 | 3 | 시노부 |
7 | 4 | 기유 |
type 그룹화 하여 name 개수 조회
SELECT type, COUNT(name) AS cnt FROM hero_collection GROUP BY type;
결과
TYPE | CNT |
---|---|
1 | 2 |
2 | 2 |
3 | 2 |
4 | 1 |
type 그룹화 하여 name 개수를 가져온 후 그 중에 개수가 2개 이상인 데이터 조회
SELECT type, COUNT(name) AS cnt FROM here_colloection GROUP BY type HAVING cnt ≥ 2;
결과
TYPE | CNT |
---|---|
1 | 2 |
2 | 2 |
3 | 2 |
type 1 초과인 type 그룹화 하여 name 개수를 가져온 후 그 중에 개수가 2개 이상인 데이터를 type 내림차순 정렬로 조회
SELECT type, COUNT(name) AS cnt FROM hero_collection
WHERE type > 1 GROUP BY type HAVING cnt ≥ 2 ORDER BY type DESC;
결과
TYPE | CNT |
---|---|
3 | 2 |
2 | 2 |
중복 제거 함수
중복적인 값이 정돈 되어있어도 값이 많은경우 어떠한 값들이 있는지 세기 힘들것이다 하지만 이 함수를 이용해 몇 만건이 정렬디어 있더라도 중복값들이 하나씩만 출력된다.
SELECT DISTINC 컬럼FROM 테이블
테이블 이름 Skills
WSI |
---|
아침 |
저녁 |
저녁 |
아침 |
저녁 |
아침 |
아침 |
SELECT DISTINCT** WSI **FROM** Skills;
WSI |
---|
아침 |
저녁 |
SELECT 컬럼 FROM 1번 테이블 INNER JOIN 2번 테이블 ON 조인 될 조건 WHERE 조건문;
SELECT 칼럼 FROM 1번 테이블(LEFT테이블) <LEFT | RIGHT | FULL> OUTER JOIN 2번 테이블(RIGHT테이블) ON 조인될 조건 WHERE 검색 조건
SELECT * FROM 1번 테이블 CROSS JOIN 2번 테이블
SELECT 칼럼 FROM 테이블 별칭A INNER JOIN 테이블 별칭B ON 조인될 조건 WHERE 검색 조건