본문 바로가기
Study

[SQL] Chapter 3. (6~8강)

by Hwanin99 2025. 7. 7.

7강.


ORDER BY 절 (오름차순)

SELECT mem_id, mem_name, debut_data
FROM member
ORDER BY debute_data  #default는 오름차순(ASC)
출력 결과

 

ORDER BY 절 (내림차순)

SELECT mem_id, mem_name, debute_date
FROM member
ORDER BY debut_date DESC
출력 결과

SELECT mem_id, mem_name, debut_date, height
FROM member
ORDER BY height DESC, debut_data ASC
WHERE height >= 164  #오류 발생(SELECT 절 순서 지킬 것)
-----------------------------------------------------
SELECT mem_id, mem_name, debut_data, height
FROM member
WHERE height >= 164
ORDER BY height DESC, debut_date ASC

LIMIT

SELECT *
FROM member
LIMIT 3
출력 결과

 

SELECT *
FROM member
LIMIT 3,2
출력 결과
  • 4번째부터 2개 행 보기 (인덱스 번호는 0부터)

DISTINCT

SELECT addr
FROM member
ORDER BY addr
출력 결과

 

SELECT
DISTINCT addr
FROM member
출력 결과

GROUP BY

buy 테이블

SUM() 합계
AVG() 평균
MIN() 최소값
MAX() 최대값
COUNT() 행의 개수
COUNT(DISTINCT) 행의 개수(중복은 1개만 인정)

 

SELECT mem_id, SUM(amount)
FROM buy
GROUP BY mem_id
출력 결과

 

SELECT mem_id '회원 아이디', SUM(amount) '총 구매 개수'
FROM buy
GROUP BY mem_id
출력 결과

 

SELECT mem_id '회원 아이디', SUM(price*amount) '총 구매 금액'
FROM buy
WHERE SUM(price*amount) > 1000
GROUP BY mem_id  #오류 발생
-----------------------------------------------------------
SELECT mem_id '회원 아이디', SUM(price*amount) '총 구매 금액'
FROM buy
GROUP BY mem_id
HAVING SUM(price*amount) > 1000
출력 결과
  • GROUP BY는 HAVING() 조건식

8강.

AUTO_INCREMENT를 통한 자동 생성

CREATE TABLE ksh(
toy_id INT AUTO_INCREMENT PRIMARY KEY,
toy_name CHAR(4),
age INT);

INSERT INTO ksh VALUES (NULL, '보핍', 25);
INSERT INTO ksh VALUES (NULL, '슬링키', 22);
INSERT INTO ksh VALUES (NULL, '렉스', 21)
출력 결과
  • toy_id는 자동 생성된 것을 볼 수 있다.

 

ALTER TABLE ksh AUTO_INCREMENT=100;
INSERT INTO ksh VALUES(NULL,'재남',35);
출력 결과
  • 100부터 시작하도록 값을 변경하는 것도 가능.

 

ALTER TABLE ksh AUTO_INCREMENT=1000;
SET @@auto_increment_increment=3;

INSERT INTO ksh VALUES(NULL, '토마스', 20);
INSERT INTO ksh VALUES(NULL, '제임스', 23);
INSERT INTO ksh VALUES(NULL, '고든', 25);
출력 결과
  • @@auto_increment_increment를 사용하여 3씩 증가하도록 설정도 가능.