MySQL 주요 문법
SHOW DATABASESE
- 현재 서버에 어떤 DB가 있는지 보기
USE
- 사용할 데이터베이스 지정
지정해 놓은 후 특별히 다시 USE문 사용하거나 다른 DB를 사용하겠다고 명시하지 않는 이상
모든 SQL문은 지정 DB에서 수행
- Workbench에서 직접 선택해 사용 가능
- [Navigator] → [SCHEMAS] → 데이터베이스 선택
SHOW TABLES
- 데이터베이스 테이블들의 이름 보기
SHOW TABLE STATUS
- 데이터베이스 테이블의 정보 조회
DESCRIBE(DESC)
- 특정 테이블에 무슨 열이 있는지 확인
- DESCRIBE city;
- DESC
SELECT
-
- 요구하는 데이터를 가져오는 구문
- 일반적으로 가장 많이 사용되는 구문
- 데이터베이스 내 테이블에서 원하는 정보를 추출
SELECT의 구문 형식
SELECT 열 이름
- 테이블에서 필요로 하는 열만 가져오기 가능
- 여러 개의 열을 가져오고 싶을 때는 콤마로 구분
- 열 이름의 순서는 출력하고 싶은 순서대로 배열 가능
- SELECT FROM WHERE
기본적인 WHERE절
- 조회하는 결과에 특정한 조건으로 원하는 데이터만 보고 싶을 때 사용
- SELECT 필드이름 FROM 테이블 이름 WHERE 조건식;
- 조건이 없을 경우 테이블의 크기가 클수록 찾는 시간과 노력이 증가
- 관계 연산자의 사용
- MySQL 함수 및 연산자
BETWEEN
- 데이터가 숫자로 구성되어 있어 연속적인 값은 BETWEEN… AND 사용 가능
IN
- 이산적인 값의 조건에서 사용 가능
LIKE
- 문자열의 내용 검색하기 위해 LIKE 연산자 사용
- 문자 뒤에 % -무엇이든(%) 허용
- 한 글자와 매치하기 위해서는 ‘_’사용
Sub Query
- 서브 쿼리
- 쿼리문 안에 또 쿼리문이 들어 있는 것
- 서브 쿼리의 결과과 둘 이상이 되면 에러 발생
city 테이블의 칼럼 CountryCode를 모를 때 사용 예시.
위의 전체 구문에 소괄호 안 구문의 반환값이 매칭 되어 CountryCode에 해당하는 모든 레코드를 반환한다.
ANY
- 서브 쿼리의 여러 개의 결과 중 한 가지만 만족해도 가능
- SOME은 ANY와 동일한 의미로 사용
- = ANY 구문은 IN과 동일한 의미
ORDER BY
- 결과가 출력되는 순서를 조절하는 구문
- 디폴트는 오름차순 정렬 , 생략가능
- 내림차순 정렬은 열 이름 뒤에 DESC
- 혼합 가능
DISTINCT
- 중복된 것은 1개씩만 보여주면서 출력
- 테이블의 크기가 클수록 효율적
LIMIT
- 출력 개수를 제한
- 상위의 N개만 출력하는 ‘LIMIT N’ 구문
- 서버의 처리량을 많이 사용해 서버의 전반적인 성능을 나쁘게 하는 악성 쿼리문 개선할 때 사용
GROUP BY
- 그룹으로 묶어 주는 역할
- 집계 함수를 함께 사용
- AVG( ):평균
- MIN( ):최소값
- MAX
- COUNT :행의 개수
- COUNT(DISTINCT): 중복 제외된 행의 개수
- STDEV : 표준 편차
- VARIANCE : 분산
- 효율적인 데이터 그룹화
- 읽기 좋게 하기 위해 별칭 Alias 사용
HAVING
- WHERE과 비슷한 개념으로 조건 제한
- 집계 함수에 대해서 조건 제한하는 편리한 개념
- HAVING절은 반드시 GROUP BY절 다음에 나와야 함