
칸 아카데미의 SQL강의 내용을 요약해봅니다.
뒷부분에 자가결합 부분이 다소 헷갈리지만 첫술에 배부를 수 없겠죠?
쌓이다보면 언젠가는 터득하게 되리라 기대해봅니다.
테이블 생성하기
CREATE TABLE [생성할 테이블명] ([생성할 컬럼명1][데이터타입], [생성할 컬럼명2][데이터타입]....) ;
예시
CREATE TABLE book(id integer,name text,rating integer);
데이터 삽입하기
INSERT INTO [삽입할 테이블명] VALUES ([첫번째 컬럼에 추가할 데이터], [두번째 컬럼에 추가할 데이터] ... );
예시
INSERT INTO book values(1,"white death",5);
INSERT INTO book values(2,"remember Miranda",4);
INSERT INTO book values(3,"Missing Agath crestie",3);
데이터 조회하기
SELECT 을 사용한다.
예시
//조건없이 전체 다 조회하고싶을때 *을 넣는다.
SELECT * FROM movies;
//조건으로 필터링하고 싶을때 WHERE이후에 조건을넣는다.
SELECT * FROM movies WHERE release_year > 2000
//특정 컬럼으로 조회하고 싶을때
SELECT name, age FROM customers;
데이터 통계내기
다음과 같이 예시를 바로 보시는게 이해가 쉬울 것 같습니다 .
//minutes컬럼을 모두 더한 결과를 얻고 싶을때 SUM을 사용합니다.
SELECT SUM(minutes) FROM todo_list;
//age컬럼의 최대(MAX)값을 구할때
SELECT MAX(age) FROM customers;
//이외에 최소값을 구하고 싶으면 MIN, 평균값을 구하고 싶으면 AVG등을사용합니다.
AND/ OR
조건문을 AND나 OR를 추가해서 볼 수도 있습니다.
SELECT title FROM songs WHERE mood="epic" AND released>1990 AND duration < 240;
SELECT title FROM songs WHERE mood = "epic" OR released > 1990 ;
HAVING
이 명령어로 내가 원하는 결과를 제한해서 볼 수도 있습니다.
//단어가 백만개 이상 포함된 책의 작가를 조회해주세요.
SELECT author, SUM(words) as Total_words FROM books GROUP BY author HAVING Total_words > 1000000;
//단어가 평균 15만개이상 포함된 책의 작가를 조회해주세요.
SELECT author, AVG(words) as avg_words FROM books GROUP BY author HAVING avg_words > 150000;
IN
IN을 활용해서 다른 테이블의 데이터를 참고해서 조회할 수도 있습니다.
//songs테이블의 airtist정보로 (팝장르의 아티스트 이름을 참고해서) 노래제목(title)을 조회해주세요.
SELECT title FROM songs WHERE artist IN (SELECT name FROM artists WHERE genre = "Pop");
CASE
CASE를 활용해서 구간별로 조건문을 넣어 데이터를 어떻게 표시해서 보여줄지 컬럼을 추가할 수도 있습니다.
SELECT name, number_grade,
CASE
WHEN number_grade > 90 THEN "A"
WHEN number_grade > 80 THEN "B"
WHEN number_grade > 70 THEN "C"
ELSE "F"
END as "letter_grade"
FROM student_grades;
데이터 변경하기
UPDATE [테이블명] SET [바꿀 컬럼명] = [바꿀 내용]
예시
UPDATE diary_logs SET content = "I had a horrible fight with OhNoesGuy" WHERE id = 1;
데이터 삭제하기
DELETE FROM [테이블명] WHERE ID = [ID번호]
이 명령어 사용을 권장하지 않습니다. 대신 삭제 여부를 표기하는 컬럼을 추가하는 방법을 주로 사용ㅎ바니다.
DELETE FROM diary_logs WHERE id = 1;
컬럼 추가하기
(이미 서비스중인 앱에서) 컬럼을 추가하고 싶을때 다음과 같은 구문을 사용합니다.
ALTER TABEL [테이블명] ADD [추가할 컬럼][데이터타입]
예시
ALTER TABLE clothes ADD price INTEGER ;