관계형 데이터베이스: 하나 이상의 테이블로 이루어지며 서로 연결된 데이터를 가지고 있음, SQL을 통해 제어 가능
테이블의 구성요소: 컬럼과 레코드로 구성된 표, 모든 테이블은 고유의 이름으로 구분
SELECT로 검색
-SELECT *은 모든 데이터(테이블 용량이 5GB가 넘으면 멈춤)
-select distinct 제목, 저자 : 한 쪽 컬럼에 중복값이 있어도 다른 쪽 컬럼의 값이 다르면 다르게 취급(A가 쓴 어린왕자와 B가 쓴 어린왕자를 다르게 취급)
select * from book where title = '돈키호테'
select * from score where korean >= 90 or math>80
기타연산자
BETWEEN에서 10과 20도 포함임
여러개의 or은 in을 사용할 수 있음
select * from book where title = 'hi' or title = 'bye' or title = 'hello'; => select * from book where title in ('hi', 'bye', 'hello');
select * from book where title like '어린왕자'; // where title like '%왕자'; 왕자로 끝나는 거 검색 // where title like '%린왕%'; 중간에 린왕이 들어가는 거 검색
select * from score order by math desc // 기본은 오름차순(ASC), DESC 사용하면 내림차순
컬럼을 적지 않아도 되지만 그러면 값을 순서대로 입력해줘야함
where 조건문이 없으면 book 테이블의 모든 데이터 삭제
select count(id) from book;
sum : 지정한 컬럼들의 값을 모두 더하여 총점을 구해주는 내장함수
select sum(math) from score;
avg
select avg(math) from score;
max : 숫자형만이 아니라 문자형도 가능
select max(korean) from score;
min
select min(korean) from score;
select user_id, count(*) from rental group by user_id;
select user_id, count(*) from rental group by user_id having count(user_id) >= 2;
select * from rental inner join user; // inner join '연결할 테이블'
select * from rental inner join user // user 테이블과 inner join on user.id = rental.user_id // user 테이블의 id와 rental 테이블의 user_id가 같은 애들끼리
왼쪽 테이블의 모든 값을 포함하여 연결하기
select * from rental left join user on user.id = rental.user_id // user 테이블을 모두 출력하되 // 모든 user 테이블의 user_id와 rental테이블의 id가 겹치도록 합친다.
inner join vs left join
select * from user right join rental on user.id = rental.user_id // 중심이 되어야 할 테이블이 right join 뒤에 나와야함
//기존 방법 select * from employee where 급여 > 2500; // 2500이 elice의 급여 //서브쿼리 사용 select * from employee where 급여 > (select 급여 from employee where 이름 = 'elice'); // elice의 급여를 몰라도 elice의 급여보다 높은 급여 찾기 가능
select * from employee where 급여 in (select max(급여) from employee group by 부서번호);
select students.name, ( select math from middle_test as m where m.student_id = students.student_id) as middle_avg from students;