SQL(MySQL)

SQl 기본 문법

느리지만 꾸준하게 2022. 4. 10. 19:02
-- SELECT ~ FROM ~ WHERE


USE market_db;

USE sys;
SELECT addr, height, debut_date
FROM member

-- 별칭을 부여 해보자
USE market_db;

USE sys;
SELECT height 키, debut_date "데뷔 일자", addr
FROM member
-- 키가 165 이상이고 member 6이상 초과인 데이터들

USE market_db;

USE sys;
SELECT * FROM member;

USE market_db;
SELECT * FROM member;

SELECT * FROM market_db.member;

SELECT mem_name FROM member;

SELECT mem_name, height, mem_number
	FROM member
    WHERE height >= 165 AND mem_number > 6;
-- OR을 써보자

SELECT mem_name, addr
		FROM member
        WHERE addr = '경기' OR addr = '전남' OR addr = '경남';
        
        
'에이핑크', '경기'
'블랙핑크', '경남'
'잇지', '경남'
'마마무', '전남'
'여자친구', '경기'



-- IN을 쓰면?
SELECT mem_name, addr
		FROM member
        WHERE addr IN('경기','전남','경남');
        
        
-- 앞에 '우'자 들어가는 회원은?
SELECT *
		FROM member
        WHERE mem_name LIKE '우%';
        
        
-- xx핑그인 회원은?
SELECT *
		FROM member
        WHERE mem_name LIKE '__핑크';

 

SELECT 문을 좀 더 깊게 알아보자

-- ORDER BY 절

SELECT 열_이름
	FROM 테이블_이름
    WHERE 조건식
    GROUP BY 열_이름
    HAVING 조건식
    ORDER BY 열_이름
    LIMIT 숫자
    
    
    
-- 데뷔 일자 신입부터
SELECT mem_id, mem_name, debut_date
			FROM member
            ORDER BY debut_date DESC;
            
            
            
-- 에러
SELECT mem_id, mem_name, debut_date, height
	FROM member
    ORDER BY height DESC
    WHERE height >= 164; -- 오류 발생
    
    
    
    
    
-- ORDER BY 조건문 여러개
SELECT mem_id, mem_name, debut_date, height
	FROM member
    WHERE height >= 164
    ORDER BY height DESC, debut_date ASC;
    
    
    
    
    
-- member중에서 앞에 3개를 보자
SELECT * 
	FROM member
    LIMIT 3;
    


-- 데뷔일자가 빠른 회원 3명을 보자.
SELECT mem_name, debut_date
	FROM member
    ORDER BY debut_date
    LIMIT 3;
    
    
-- 데뷔일자가 3등 부터 2개를 볼려면
SELECT mem_name, debut_date
	FROM member
    ORDER BY height DESC
    LIMIT 3, 2;

 

-- 중복된거 하나만 보여지게 하는거

SELECT DISTINCT addr FROM member;

-- GROUP BY - mem_id를 그룹별로 묶어서 amount합계를 내면
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 GROUP BY mem_id;

 

-- member id 별로 평균 구매 개수

SELECT mem_id, AVG(amount) "평균 구매 개수"
	FROM buy
    GROUP BY mem_id;
    
    
-- member 행의 개수를 세어보면
SELECT COUNT(*) FROM member;


-- 연락처가 있는 회원
SELECT COUNT(phone1) "연락처가 있는 회원" FROM member;


-- 총 구매 금액이 1000이 넘는 회원
SELECT mem_id "회원 아이디", SUM(price * amount) "총 구매 금액"
	FROM buy
    GROUP BY mem_id
    HAVING SUM(price * amount) > 1000;
    
  
-- SUM() 기준 내림차순
SELECT mem_id "회원 아이디", SUM(price * amount) "총 구매 금액"
	FROM buy
    GROUP BY mem_id
    HAVING SUM(price * amount) > 1000
    ORDER BY SUM(price * amount) DESC;

 

 

 

 

 

 

 

 

 

 

 

 

참고: <출처 한빛미디어: [SQl 기초 강의] 6강. SQL 기본 문법() >

https://www.youtube.com/watch?v=_JURyg_KzHE&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=7 

<출처 한빛미디어: [SQl 기초 강의] 7강. SQL, SELECT 절의 형식(ORDER BY 절과 GROUP BY 절) >

https://www.youtube.com/watch?v=6qkPy7RfLqQ&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=8 

 

'SQL(MySQL)' 카테고리의 다른 글

IF문, CASE문, WHILE문, 동적SQL / GUI 환경에서 테이블 & SQL로 테이블 만들기  (0) 2022.04.11
SQL - JOIN  (0) 2022.04.10
MySQL의 데이터와 형 변환  (0) 2022.04.10
INSERT, UPDATE, DELETE  (0) 2022.04.10
Mac에서 MySQL 설치  (0) 2022.01.03