GO WILD, SPEAK LOUD, THINK HARD

엘리스 AI 트랙 03주차 - SQL로 데이터 다루기 I (1/6) 🔥 본문

개발/엘리스 AI 트랙

엘리스 AI 트랙 03주차 - SQL로 데이터 다루기 I (1/6) 🔥

Max 2021. 1. 6. 22:14
반응형

✔ 03주차. 데이터베이스 기초 개요

<수강 목표>

  • 데이터 모델링에 대해 이해하고 DB 정규화, 반정규화를 통해 성능을 향상합니다.

  • 표준 SQL의 DML문법을 익히고 실제 관계형 DB에서 생성, 조회, 수정, 삭제를 할 수 있습니다.

  • 표준 SQL의 DCL, DDL 문법을 익히고 실제 운영가능한 DB를 생성 및 관리할 수 있습니다.


[2장 데이터를 제어하는 DML]

- SQL 명령어 종류

  ① DML : data mainpularion language. 데이터 조작어

  ② DDL : 데이터 정리어

  ③ DCL : 데이터 제어어

  ④ TCL : 트렌젝션 제어어

 

1. 데이터에서 유사한 값 찾기

  - LIKE : 특정 문자가 포함된 문자열을 찾고 싶을 때 사용하는 명령

  - % : Wildcard. 문자를 모두 알지 못해도 시작하거나, 끝나거나 포함되는 문자열을 유추해서 검색할 수 있음

  - LIKE 조건의 기본문법

-- book 테이블에서 제목(title)이 '어린왕자'인 책 검색
SELECT *
  FROM book
 WHERE title LIKE '어린왕자';

  - LIKE 조건의 다양한 형태

-- book 테이블에서 제목(title)이 '왕자'로 끝나는 책 검색
SELECT *
  FROM book
 WHERE title LIKE '%왕자';

-- book 테이블에서 제목(title)이 '어린'으로 시작하는 책 검색
SELECT *
  FROM book
 WHERE title LIKE '어린%';

-- book 테이블에서 제목(title)에 '린왕'이 포함되는 책 검색
SELECT *
  FROM book
 WHERE title LIKE '%린왕%';

2. 데이터 정렬하기

  - ORDER BY : 데이터를 검색할 때 정렬하여 결과를 출력하는 명령어

  - DESC : 내림차순 정렬시 사용

  - ASC : 오름차순 정렬시 사용 

 

https://www.guru99.com/order-by-desc-and-asc.html

  - ORDER BY 문의 기본 문법

-- score 테이블에서 수학(math) 값이 높은 데이터부터 정렬하여 검색
SELECT *
  FROM score
ORDER BY math DESC;

-- score 테이블에서 수학(math) 값이 낮은 데이터부터 정렬하여 검색
SELECT *
  FROM score
ORDER BY math ASC;

3. 테이블에 데이터 삽입하기

  - INSERT : 관계형 데이터베이스의 테이블에 값을 저장하는 명령

  - INSERT 문의 기본 문법

-- '햄릿' 책 데이터를 book 테이블에 추가
INSERT INTO book (id, title, author, publisher)
VALUES ('3', '햄릿', '윌리엄 셰익스피어', '엘리스 출판');

-- 컬럼을 명시하지 않으면 순서대로 값을 삽입
INSERT INTO book
VALUES ('3', '햄릿', '윌리엄 셰익스피어', '엘리스 출판');

-- 여러개의 책 데이터를 book 테이블에 추가
INSERT INTO product
VALUES ('3', '햄릿', '윌리엄 셰익스피어', '엘리스 출판'),
	('4', '해리포터와 마법사의 돌', 'J. K. 롤링', '엘리스 출판'),
	('5', '노인과 바다', '어니스트 헤밍웨이', '엘리스 출판');

4. 테이블에 데이터 수정하기

  - UPDATE: 관계형 데이터베이스의 테이블에서 이미 저장된 값을 수정하는 명령

  - UPDATE 문의 기본 문법

-- 책 제목(title)이 '돈키호테'인 데이터의 제목(title)을 '돈키호테 1'로 변경
UPDATE book
   SET title = '돈키호테 1'
 WHERE title = '돈키호테';
 
-- 여러 책의 이름을 한꺼번에 변경
UPDATE book
   SET title = CASE id WHEN 1 THEN '어린왕자' ELSE title END,
       title = CASE id WHEN 2 THEN '돈키호테' ELSE title END
 WHERE id IN (1, 2);

5. 테이블에 데이터 삭제하기

  - DELETE : 관계형 데이터베이스의 테이블에서 이미 저장된 값을 수정하는 명령

  - DELTE 문의 기본 문법

-- 제목이 '돈키호테 1'인 책 데이터를 book 테이블에서 삭제
DELETE
  FROM book
 WHERE title = '돈키호테 1';

-- WHERE 조건이 없을 시 모든 데이터 삭제
DELETE
  FROM book
  
-- 여러개의 책 데이터를 삭제
DELETE
  FROM book
 WHERE id IN (1, 2, 3)

[3장 SQL과 함수]

- 함수

  ① 데이터 값을 계산하거나 조작 : 행 함수

  ② 행의 그룹을 계산하거나 요약 : 그룹 함수

  ③ 열의 데이터 타입을 변환

 

1. COUNT

  - COUNT : 검색한 결과의 데이터의 개수를 가져오는 내장함수. NULL 인 데이터는 제외.

  - COUNT 기본 문법

-- book 테이블 안에 있는 id 컬럼의 개수를 검색
SELECT COUNT(id) FROM book;

-- 검색할 데이터 *을 입력하면 모든 데이터 검색
SELECT COUNT(*) FROM book;

2. LIMIT

  - LIMIT: 테이블에서 출력하고자 하는 데이터의 개수를 제한하는 명령. 첫번째 컬럼의 시작은 0.

  - LIMIT기본 문법

-- book 테이블에서 데이터를 3개만 가져오기
SELECT * FROM book LIMIT 3;

-- 7번째 데이터부터 2개만 가져오기
SELECT * FROM book LIMIT 6, 2;

3. SUM & AVG

  - SUM : 지정한 컬럼들의 값을 모두 더해 총점을 구해주는 내장함수

  - SUM 기본 문법

-- grade 테이블에서 모든 수학점수를 더한 총점을 구하기
SELECT SUM(math) FROM grade;

  - AVG: 지정한 컬럼들의 평균값을 구해주는 내장함수

  - AVG 기본 문법

-- grade 테이블에서 과목별 평균 점수 찾기
SELECT AVG(korean), AVG(math), AVG(english) FROM grade;

4. MAX & MIN

  - MAX : 테이블에 존재하는 데이터에서 최대값을 가져오는 내장함수. 문자형도 가능.

  - MAX 기본 문법

-- grade 테이블에서 가장 높은 국어점수 찾기
SELECT MAX(korean) FROM grade;

  - MIN : 테이블에 존재하는 데이터에서 최솟값을 가져오는 내장함수. 문자형도 가능.

  - MIN 기본 문법

-- grade 테이블에서 가장 낮은 영어점수 찾기
SELECT MIN(english) FROM grade;

※ 수업 자료의 출처는 K-Digital Training x 엘리스 인공지능 서비스 개발 기획 1기 (elice.io/)입니다.

반응형
Comments