Practice/Oracle

MYSQL)SQL 기본 문법 정리 1

밍미a 2023. 1. 11. 16:17
728x90

오늘 공부한 내용

 

-- ----------------- use 문--------------- 
SELECT * FROM member;
-- ---------SELECT ~ FROM--------------
SELECT mem_name From member;
SELECT addr, debut_date,mem_name FROM member;
-- --------------열 이름의 별칭 AS--------------------------
SELECT addr AS 주소 , debut_date AS '데뷔 일자' , mem_name AS 이름 FROM member;
SELECT addr 주소 , debut_date '데뷔 일자' , mem_name 이름 FROM member;
-- -----------------SELECT ~ FROM ~ WHERE---------------------------
SELECT * 
FROM member
WHERE mem_name = '블랙핑크';
-- ----------------관계연산자, 논리연산자------------------------ 
-- - 관계연산자: >  <  >=  <=  =
-- - 논리연산자: AND  OR 
SELECT mem_id , mem_name FROM member WHERE height <= 162;
SELECT mem_name, height, mem_number 
	FROM member
	WHERE height >= 165 AND mem_number > 6; 
-- -----------------BETWEEN A AND B--------------------------
SELECT * 
FROM member
WHERE height BETWEEN  163 AND 165;
-- ---------------------IN()------------------------------------
SELECT mem_name, addr
FROM member
WHERE addr In  ('경기', '전남', '경남');
-- -------------------LIKE-------------------------
-- 문자열의 일부 글자를 검색할 때 사용
-- % : 무엇이든 허용
-- 언더바(_): 한글자 매치
-- 이름(mem_name)이 ‘우’ 로 시작하는 회원 검색

SELECT * FROM member WHERE mem_name LIKE '우%';
SELECT * FROM member WHERE mem_name LIKE '__핑크';
-- -----------------서브쿼리---------------------------
SELECT height 
FROM member 
WHERE height > (SELECT height FROM member WHERE mem_name = '에이핑크');
-- -------------ORDER BY------------------------------
-- 데뷔일자 빠른 순으로 정렬 
SELECT mem_id, mem_name, debut_date 
FROM member 
ORDER BY debut_date;
-- 데뷔일자 늦은 순으로 정렬
SELECT mem_id, mem_name, debut_date 
FROM member 
ORDER BY debut_date DESC;
-- 평균키가 큰 순으로 정렬
SELECT mem_id, mem_name, debut_date , height
FROM member
WHERE height >= 164
ORDER BY height DESC;

-- 평균 키가 같을 때는 데뷔일자가 빠른 순서로 정렬
SELECT mem_id, mem_name, debut_date , height
FROM member
WHERE height >= 164
ORDER BY height DESC, debut_date ASC;

-- LIMIT (출력 개수 제한)

SELECT mem_name, debut_date
FROM member
ORDER BY debut_date
LIMIT 3;

-- 중복 데이터 제거
SELECT addr FROM member;
-- ↓
SELECT DISTINCT addr FROM member;

-- 결과값을 원하는 열로 묶어 출력하는 GROUP BY
-- 출력 결과를 그룹으로 묶어줌, 주로 집계함수와 함께 사용됨.

-- 집계함수의 종류
-- 1. SUM() : 합계
-- 2. AVG() : 평균
-- 3. MIN() : 최소값
-- 4. MAX() : 최대값
-- 5. COUTN() : 행의 개수
-- 6. COUNT(DISTINCT) : 행의 개수 (중복제거)

-- 구매내역 모두 출력
SELECT mem_id, amount FROM buy ORDER BY mem_id;

-- SELECT mem_id, SUM(amount) FROM buy ORDER BY mem_id; 
-- 오.. 집계함수를 쓰려면 무조건 GROUP BY 를 써야하네...
 
 -- 각 회원의 구매한 개수(amount) 를 합쳐서 출력
SELECT mem_id, SUM(amount) FROM buy GROUP BY mem_id;

-- GROUP BY 절에 조건줄때 사용하는 HAVING 
-- 집계함수를 통해 계산 된 결과값에 조건을 줄떄는 HAVING 을 사용한다.

SELECT mem_id, SUM(price*amount) 
FROM buy
GROUP BY mem_id
HAVING SUM(price*amount) > 1000;

 


더 공부할 내용

 

 


느낀점

 

SQL은 전에 오라클을 공부한 적이 있어서 그런지 더욱더 쉽게 느껴졌다.

복습 겸 책을 찾아보고 쉬엄쉬엄 공부하고 있다. 

공부하다가 헷갈리는 부분을 조금 더 집중적으로 봐야겠다.