👥 조별 과제

⚡ 개념 정리하기 !

  1. 테이블
  1. DBMS : Database Management System
  1. SQL / ORM : Structured Query Language / Object Relational Mapping
# 참고 : Python에서의 ORM (SQLAlchemy)

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

db = create_engine("sql database address");
session = sessionmaker(db);
base.metadata.create_all(db);

# SELECT ~ FROM Table ~ WHERE ~ 
session.query('Table').filter(lambda x: <bool>)
  1. 쿼리(query)
  1. SELECT, FROM, WHERE

⚡ 토론해보아요 !

  1. 자신이 만든 DB를 이용한 쿼리문을 작성해서 소개해보아요 !

선우: Subjects

Untitled

** NULL을 - 로 표현함 (원래 아무 것도 쓰지 않았어야 했는데.. 깜빡했습니다)

-- 이수한 과목만 출력
SELECT 과목이름 FROM Subjects WHERE 평점 IS NOT NULL;

/*
+---------------------------------+
| 과목이름                         |
+---------------------------------+
| 컴퓨팅사고와 인공지능리터러시      |
| 소프트웨어 중심세상               |
+---------------------------------+
2 rows in set (0.00 sec)
*/

윤정: restaurant

Untitled

SELECT * FROM restaurant WHERE 유형='양식';

/*
+--------+---------------+--------+--------------------------+-------------+
| 순위   | 맛집 이름      | 유형   | 최애 메뉴                 | 가격(원)    |
+--------+---------------+--------+--------------------------+-------------+
|      1 | 토마트        | 양식   | 트라플머쉬룸피자           |       19000 |
|      2 | 미태리        | 양식   | 감베리 파스타              |        8800 |
+--------+---------------+--------+--------------------------+-------------+
2 rows in set (0.01 sec)
*/

한울: student

Untitled

SELECT studentID FROM student WHERE gpa BETWEEN 2 AND 3;
SELECT studentID FROM student WHERE sname LIKE "tom%";

/*
+-----------+
| studentID |
+-----------+
|         1 |
|         2 |
|         3 |
|         6 |
|         7 |
+-----------+
5 rows in set (0.00 sec)

+-----------+
| studentID |
+-----------+
|         2 |
|         4 |
+-----------+
2 rows in set (0.00 sec)
*/

지민: baseball

Untitled

-- 승률이 50% 이상인 팀의 이름과 승리 횟수 출력
SELECT Team_name, win FROM baseball WHERE winning_rate > 0.5;
# 만약에 '평균 승률'보다 높은 팀을 출력하고 싶다면
SELECT Team_name FROM baseball WHERE winning_rate >
	(SELECT AVG(winning_rate) FROM baseball);
  1. SQL 명령어를 더 찾아 소개해보아요 !

명령어 뒤에 붙는 옵션

Untitled

  1. ‘Query Language’ 가 무엇인지, 우리가 아는 C / Python / JavaScript 등의 언어와는 어떻게 다른지 알아보아요 !

기타 팁

  1. SQL Query는 원칙적으로 ‘;’으로 끝나야 함. 그러나 한 문장만 사용하는 경우 상황에 따라 생략 가능
  2. 명령어(SELECT, DELETE, WHERE, …)는 대소문자를 구분하지 않으나, 관례상 전부 대문자로 작성함.
  3. 명령어가 짧으면 한 줄, 길면 여러 줄에 나누어 표현할 수 있음.