코테용 sql
강의 영상 요약
- SHOW DATABASES; : 현재 서버에 어떤 DB가 있는지 보기
- USE DB_NAME;
- 사용할 DB지정
- 다시 USE문사용 OR 다른 DB사용하겠다고 명시하지않으면 모든 SQL문은 지정DB에서 수행
- Workbench에서 직접 선택해 사용가능
- DESCRIBE(DESC) TABLE_NAME;
- TABLE_NAME 테이블에 무슨 열이 있는지 확인
- SELECT …
- 가장많이 사용
- 요구하는 데이터 가져옴
- 데이터 베이스 내 테이블에서 원하는 정보 추출
- FROM table_references
- WHERE where_condition
- GROUP BY {..}
- HAVING …
- ORDER BY …
- EX
- SELECT * FROM city;
- SELECT Name, Population FROM city;
- WHERE 절
- SELECT * FROM city WHERE Population >= 8000000 AND Population > 7000000;
- SELECT * FROM city BETWEEN 7000000 AND 8000000;
- 관계 연산자 사용 가능
- NOT OR AND = < > <= >= !=
- IN 이산적인값
- SELET * FROM city WHERE Name IN(‘Seoul’, ‘New York’, ‘Tokyo’);
*
: 모든- LIKE
- 문자열의 내용 검색
- 문자 뒤에 % - 무엇이든 허용
- 한글자와 매치하기위해서는 ‘_‘사용
- SELET * FROM city WHERE CountryCode LIKE ‘KO_’;
- SELET * FROM city WHERE Name LIKE ‘Tel %’;
- sub query
- 서브 쿼리의 결과가 둘 이상이 되면 에러
1 2 3 4 5
SELET * FROM city WHERE CountryCode = ( SELECT CountryCode FROM city WHERE Name = 'Seoul');
- 서브 쿼리의 결과가 둘 이상이 되면 에러
- ANY
- 서브쿼리의 여러 개의 결과 중 한 가지만 만족해도 가능
- SOME은 ANY와 동일한 의미로 ㅏ용
- =ANY 구문은 IN과 동일한 의미
1 2 3 4 5
SELET * FROM city WHERE Population > ANY ( SELECT CountryCode FROM city WHERE District = 'New York');
- ALL
- 서브쿼리의 여러 개의 결과를 모두 만족 시켜야 함
1
2
3
4
5
SELET *
FROM city
WHERE Population > ALL ( SELECT CountryCode
FROM city
WHERE District = 'New York');
- ORDER BY
- 결과가 출력되는 순서를 조절하는 구문
- 기본 오름차순 정렬
- 열 이름 뒤에 DESC 내림차순
- SELECT * FROM city ORDER BY Population DESC
- DISTINCT
- 중복된것은 1개씩만 보여주면서 출력
- SELECT DISTINCT …
- LIMIT
- 출력개수 제한
- 상위의 N개만 출력 LIMIT N
- GROUP BY
- 그룹으로 묶어주는 역할
- 집계함수 함께 사용(Aggregate Function) AVG(), MIN,MAX, COUNT 행의개수, COUNT(DISTINCT) 중복 제외된 행의 갯수 , STDEV 표준편차, VARIANCE 분산
- 별칭(Alias) 사용
1 2 3
SELET CountryCode AVG(Population) AS 'Average' FROM city GROUP BY CountryCode
- HAVING
- WHERE과 비슷한 개념으로 조건 제한
- 집계함수에 대해서 조건 제한하는 편리한 개념
- GOURP BY절 다음에 나와야함.
1 2 3 4
SELET CountryCode AVG(Population) AS 'Average' FROM city GROUP BY CountryCode HAVING MAX(Population) > 8000000
- ROLLUP
- 총합 또는 중간합계가 필요할 경우 사용
- GROUP BY절과 함께 WITH ROLLUP문 사용
1 2 3
SELET CountryCode, Name SUM(Population) FROM city GROUP BY CountryCode, Name WITH ROLLUP
- JOIN
- DB내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현
1 2 3
SELET CountryCode, Name SUM(Population) FROM city JOIN country ON city.CountryCode = country.Code
- DB내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현
Posted 2021-02-18