SELECT COUNT(*) FROM world.city;
SELECT * FROM world.city LIMIT 5;
-- DROP TABLE city_pop;
CREATE TABLE city_pop(city_name CHAR(70), population INT);
INSERT INTO city_pop
SELECT Name, Population FROM world.city;
SELECT COUNT(*) FROM city_pop;
SELECT * FROM city_pop LIMIT 5;
UPDATE city_pop
SET city_name = 'Seoul', population = 0
WHERE city_name = '서울';
SELECT * FROM city_pop WHERE city_name = 'Seoul';
DDL(데이터 정의어)
테이블의 구조를 만들때 사용
DML(데이터 조작어)
데이터를 검색, 삽입, 수정, 삭제 시 사용
DCL(데이터 제어어)
데이터에 대한 접근 권한 제어시 사용
🔹 문자열 저장하는 도메인
CHAR(10) 자바00000000 (길이가 고정적)
VARCHAR(10) 자바 (길이가 가변적) 메로리 효율성!
SQL
다른 프로그래밍 언어보다 데이터를 관리하는데 있어 훨씬 숩고 편리(데이터 부속어) 이클립스, STS와 같은 자바로 작성된 클라이언트/서버 응용 프로그램에 삽입가능 또는 웹 페이지(HTML)문서에도 삽입 가능
-> GROUP BY절을 사용하면 속성이 같은 값끼리 그룹을 만들 수 있다.
✅ HAVING절
✅ GROUP BY와 HAVING 절의 문법과 주의사항
✅ SQL 문의 실행 순서
🔺 외부조인
WHERE : 검색에 대한 조건을 많이 씀
JOIN은 WHERE 굳이 X 따로 키워드로 분리하여 사용한다!
- 하나의 SQL문 안에 다른 SQL문이 중첩된 쿼리를 말한다.
다른 테이블에서 가져온 데이터로 현재 테이블에 있는 정보를 찾거나 가공할때 사용 한다.
-> 조인 보다 필요한 데이터만 찾아서 공급하는 서브쿼리가 더 성능이 좋다.
SELECT bookname, publisher FROM Book AS b1
WHERE price > (SELECT AVG(price) FROM Book AS b2 WHERE b1.publisher = b2.publisher);
🔺 합집합 UNION, 차집합 EXCEPT, 교집합 INTERSECT
원래 단어에서 의미하는 것과 같이 조건에 맞는 튜플이 존재하면 결과에 포함시킴. 즉 부속질의문의 어떤 행이 조건에 만족하면 참임.
반면 NOT EXISTS는 부속직의문의 모든 행이 조건에 만족하지 않을 때만 참임.