2025. 1. 19. 04:19ㆍ혼자 공부하는 SQL
짜라자잔짠~☆ 다시 돌아온 SQL 시작! ˶˙ᵕ˙ )ノ゙
문법에 대해서 알아보자
* market_db.sql 파일 사용
기본 중에 기본 SELECT ~ FROM ~ WHERE
SELECT문 : 구축이 완료된 테이블에 사용. 데이터 추출 기능.
SELECT 열 이름 FROM 테이블 이름 WHERE 조건식
→ 테이블에 조건에 맞는 열을 가져온다.
데이터베이스 만들기
DROP DATABASE IF EXISTS market_db
-- market_db가 있으면 삭제
CREATE DATABASE market_db;
-- market_db 생성
DROP DATABASE : 데이터베이스 삭제
IF EXISTS : 데이터베이스가 존재하는지
CREATE DATABASE : 데이터베이스 생성
테이블 만들기
USE market_db;
CREATE TABLE member
(
-- 테이블 정의 코드
);
USE : 데이터베이스 선택
CREATE TABLE : 테이블 생성
+ 데이터 타입
VARCHAR : 문자열 데이터
AUTO_INCREMENT : 자동 숫자 입력(1, 2, 3, ...) 데이터를 입력할 때 NULL 값을 넣어줌!
데이터 입력하기
INSERT INTO member VALUES(
-- 데이터
);
INSERT INTO : 데이터 삽입
VALUES : 데이터 지정
데이터 조회하기
SELECT * FROM member;
→ member 테이블의 모든(*) 데이터 조회
→ market_db.member 로 쓸 수 있음
* USE 문으로 지정했기 때문에 member만 써서도 OK
좀 더 긴 SELECT문 .. 잘 기억해두기! ദ്ദി(•̀ ᗜ <)
SELECT 열_이름 // 열 지정
FROM 테이블_이름 // 테이블 지정
WHERE 조건식 // 가져올 데이터의 조건
GRUOP BY 열_이름 // 데이터 그룹화
HAVING 조건식 // 그룹화 데이터에 조건 적용
ORDER BY 열_이름 // 데이터 정렬
LIMIT 숫자 // 데이터 개수 제한
WHERE 테이블의 조건
BETWEEN ~ AND
- WHERE height >= 163 AND height <= 165;
- WHERE height BETWEEN 163 AND 165;
IN
- WHERE addr = '경기' OR addr = '전남' OR addr = '경남';
- WHERE addr IN('경기', '전남', '경남');
LIKE
- WHERE mem_name LIKE '우%';
- WHERE mem_name LIKE '__핑크';
* % : 글자 무엇이든 허용, '우'로 시작하는 모든 단어
* _ : 글자 수(언더바 개수) 허용, (2글자)+핑크인 모든 단어
중첩
SELECT mem_name, height FROM member
WHERE height > (SELECT height FROM member WHERE mem_name = '에이핑크');
-- 이름이 '에이핑크'인 회원의 평균 키보다 큰 회원 조회회
좀 더 깊게 알아보는 SELECT 문
ORDER BY 데이터 정렬
SELECT mem_id, mem_name, debut_date FROM member ORDER BY debut_date;
-- 데뷔 일자(debut_date)가 빠른 순서대로 출력
ASC(Ascending) : 오름차순(기본값)
DESC(Descending : 내림차순(제일 뒤에 붙여서 사용)
LIMIT 데이터 개수 제한
SELECT * FROM member LIMIT 3;
-- 앞에서부터 3개
SELECT * FROM member LIMIT 3, 2;
-- 3번부터 2개
* 숫자 하나만 쓰면 0부터 시작
DISTINCT 중복 제거
SELECT adder FROM member;
-- 경기, 경남, 서울, 경남, ...
-- 모든 주소 출력
SELECT DISTINCT addr FROM memeber;
-- 경기, 경남, 서울, 전남, 경북
-- 중복된 데이터를 1개만 남기고 제거하여 출력
GROUP BY 데이터 그룹화
+ 집계 함수
함수명 | 설명 |
SUM() | 합계 |
AVG() | 평균 |
MIN() | 최소값 |
MAX() | 최대값 |
COUNT() | 행의 개수 |
COUNT(DISTINCT) | 행의 개수(중복X) |
SELECT AVG(amount) "평균 구매 개수" FROM buy;
-- 전체 회원이 구매한 물품 개수(amount)의 평균
데이터 변경을 위한 SQL 문
INSERT 데이터 입력
INSERT INTO 테이블 [(열1, 열2, ...)] VALUES (값1, 값2, ...)
* 열을 생략하면 값이 순서대로 들어간다.
INSERT INTO 테이블_이름 (열_이름1, 열_이름2, ...) SELECT 문;
* 열 개수와 SELECT 문의 열 개수가 같아야 한다.
UPDATE 데이터 수정
UPDATE 테이블_이름 SET 열1=값1, 열2 =값2, ... WHERE 조건;
* WHERE을 생략하면 전체 행의 값이 변경된다.
DELETE 데이터 삭제
DELETE FROM 테이블_이름 WHERE 조건;
* DELETE 문보다 TRUNCATE문이 훨씬 빠르다!
* DROP은 테이블을 아예 없애는 반면 DELETE와 TRUNCATE는 빈 테이블을 남긴다!
오늘의 과제
- 다음 보기 중에서 각 문항의 빈칸에 들어갈 것을 고르세요.
LIKE, DESC, ORDER BY, DISTINCT, ASC, AND, OR, >=, LIMIT
1. SELECT * FROM member _____ height;
SELECT * FROM member ORDER BY height;
2. SELECT * FROM member _____ 5,2;
SELECT * FROM member LIMIT 5,2;
3. SELECT _____ phone1 FROM member;
SELECT DISTINCT phone1 FROM member
'혼자 공부하는 SQL' 카테고리의 다른 글
[혼공S] 6주차_스토어드 프로시저 (0) | 2025.02.23 |
---|---|
[혼공S] 5주차_인덱스 (0) | 2025.02.16 |
[혼공S] 4주차_제약조건, 뷰 (0) | 2025.02.09 |
[혼공S] 3주차_데이터 타입, 조인, 조건문, 동적 SQL (0) | 2025.01.26 |
[혼공S] 1주차_데이터 활용하기 (0) | 2025.01.12 |