SQL 기초

Jeongmin Lee·2021년 6월 3일
0

🍍SQL공부

목록 보기
1/1

🚀 MySQL 다운로드 및 설치

MySQL 접속 후 자신의 컴퓨터에 맞는 버전 찾아 설치:)
파일 크기가 더 작은 파일(노랑색 표시)로 다운로드....♥

window 바로 가기 => https://dev.mysql.com/downloads/installer/

설치 후 입력해둔 비밀번호 이용하여 Local instance MySQL80에 접속!

🍄 MySQL 본격 시작

👁‍🗨 SQL 공부 전, 배경 지식

★ SQL 기능에 따른 분류 ★

  • 데이터베이스
  • DBMS
    a. RDBMS : Relational DBMS. 즉, 테이블 형태
    b. NoSQL DBMS :Not Only SQL Non-Relational DBMS.
    • e.g. 그래프형태
  • SQL
  • DDL : CREATE, ALTER, DROP
  • DMS : SELECT, INSERT, DELETE, UPDATE
  • DCL : GRANT, REVOKE

Next,
Step1 : Query문 입력창을 통해 원하는 데이터 베이스를 생성
Step2 : 스키마와 데이터가 착오없이 생성되었는 지 확인

😃이 단계까지 끝나면 TABLE 형태 데이터 생성이 완료😄

🔥 MySQL 시작하기 직전에 알아두면 좋은 팁
1. Workbench 주요 단축키와 주석

a. 실행 : Ctrl + Enter
b. 전체 실행 : Ctrl + Shift + Enter
c. 주석 처리 : Ctrl + /
d. Beautify : Ctrl + B
e. 스크립트 오픈 : Ctrl + Shift + O
f. 편집 : MS Office와 동일
g. -- (끝에 스페이스나 탭 필수) or # or ctrl+\ : 주석
h. /* */ : 여러 줄 주석

  1. 용어

    a. 투플 - row - 레코드
    b. 속성 - column - 필드

🦥 Workbench를 이용할 때, 특정 데이터베이스를 지정하여 데이터를 사용하는 방법은 크게 두 가지가 있당.

  • Option 1 : '데이터 베이스.테이블 이름' 을 함께 입력

    SELECT PHONE
    FROM madang.customer
    WHERE name = '김연아' 
  • Option 2 : 'USE ' 이용하여 사용할 데이터 베이스 먼저 정한 후 시작

    USE madang;
    SELECT 
    	DISTINCT PHONE  /**DISTINCT 중복 제거 /
    FROM customer
    WHERE name <> '김연아'; 

🙈Column 이름 변경🙉

SELECT	bookname AS 이름, price AS '할인 가격' 
FROM	book
WHERE price NOT IN (7000,13000); /*IN과 NOT IN 속도 측면에서 사용 비추천! 대신 WHERE PRICE <> 7000 AND PRICE<>13000 추천 */

🥨 NULL

SELECT 
	*
FROM 
	CUSTOMER
WHERE 
	PHONE IS NOT NULL;

😰 찾고자 하는 데이터 명칭을 확실히 모를 때? 😭
  🍜 해결책 = LIKE 사용

SELECT 
	*
FROM
	book
WHERE
	bookname LIKE '%축구%' 
;

요때 큰 따옴표 보다는 작은 따옴표 사용 추천!

SELECT 
	*
FROM
	book
WHERE
	bookname LIKE '_구%'
;

🥗 오름차순/내림차순

SELECT 
	*
FROM
	book
ORDER BY
	price ASC, bookname DESC
;

이 외에도 여러 종류의 SQL WIDCARD 문자들 확인 해보기!

🦢 집계함수 ( AS많이 사용함 )

a. SUM,AVG,MIN,MAX

SELECT 
	SUM(saleprice) AS 판매액,
    	AVG(saleprice) AS 평균가,
    	MIN(saleprice) AS 최저가, 
    	MAX(saleprice) AS 최고가
FROM
	orders
WHERE 
	custid = 2
;

b. 셀 추가

SELECT
	orderid, custid, bookid, saleprice, saleprice*1.1 as '실제판매가'
FROM orders
;

c. Having

SELECT 
    custid, COUNT(bookid)
FROM
    orders
GROUP BY custid
HAVING COUNT(bookid) >= 3;

💚 복잡한 쿼리(Join & Subquery)

a. Join

select 
	orderid, name, O.custid
from 
	customer as C, 
    	orders as O
where 
	customer.custid = orders.custid
order by
	C.custid
limit 1
;

b. Subquery

select 
	*
from
	book
where 
	price = (
    	select
        	max(price)
        from
        	book)
;

c. Join + Subquery
Q. 출판사별로 출판사의 평균 도서 가격보다 비싼 도서를 구하시오.

SELECT 
    *
FROM
    book AS b1,
    (SELECT 
        publisher, AVG(price) AS avg_price
    FROM
        book
    GROUP BY publisher) AS b2
WHERE
    b1.publisher = b2.publisher
        AND b1.price >= avg_price;
profile
데이터 분석을 공부하며 기록하는 블로그 입니다💘

0개의 댓글

관련 채용 정보