(2023.2.20) Today_I_Learned_day-126

SHOW DATABASES
- 현재 서버에 어떤 DB가 있는지 보기
- USER database_name
- 사용할 데이터베이스 지정
- 지정해 놓은 뒤 특별히 다시 USE문을 사용하거나 다른 DB를 사용하겠다고
명시하지 않는 이상 모든 SQL문은 지정 DB에서 수행
- Workbench에서 직접 선택해 사용 O (Navigator ⇒ SCHEMAS ⇒ 데이터베이스 선택)
- SHOW TABLE
- 데이터베이스 database_name의 테이블 이름 보기
- SHOW TABLE STATUS
- 데이터베이스 database_name의 테이블 정보 조회
- DESCRIBE(DESC)
- 테이블에 무슨 열이 있는지 확인
- DESCRIBE database_name;
- DESC database_name;
- SELECT
- <SELECT…FROM>
- SELECT * (SELECT & FROM database_name)
- 전체 데이터들을 볼 수 있음
- SELECT 열 이름
- 테이블에서 필요로 하는 열만 가져오기 가능
- 여러 개의 열을 가져오고 싶을 때는 콤마로 구분
- 열 이름의 순서는 출력하고 싶은 순새대로 배열 가능
- SELECT FROM WHERE
- 기본적인 WHERE절
- 조회하는 결과에 특정한 조건으로 원하는 데이터만 보고 싶을 때 사용
- SELECT 필드 이름 FROM 테이블 이름 WHERE 조건식;
- 조건이 없을 경우 테이블의 크기가 클수록 찾는 시간과 노력이 증가
- 관계 연산자의 사용
- OR
- AND
- 조건
- 관계(NOT, AND, OR)
- 연산자의 조합으로 데이터를 효율적으로 추출
- IN
- 이산적인(Discrete)값의 조건에서는 IN() 사용 가능
- WHERE Name IN(’Seoul’,’Tokyo’,’New York)
- LIKE
- 문자열의 내용 검색하기 위해 사용
- 문자 뒤에 %- 무엇이든(%) 허용 ‘Tel %’ ⇒ Tel Aviv…
- 한 글자와 매치하기 위해서는 ‘’ 사용 ‘KO’ ⇒ KOR….
- Sub QUERY(서브 쿼리)
- 쿼리문 내 또 쿼리문이 들어 있는 것
- 서브 쿼리의 결과가 둘 이상이 되면 에러 발생
- ANY
- 서브쿼리의 여러 개의 결과 중 한 가지만 만족해도 가능
- SOME은 ANY와 동일한 의미로 사용
- =ANY 구문은 IN과 동일한 의미
- ALL
- ORDER BY
- 결과가 출력되는 순서를 조절하는 구문
- 기본적으로 오름차순 정렬
- 내림차순으로 정렬
- ASC(오름차순)는 default이므로 생략 가능
- ORDER BY 구문을 혼합해서 사용하는 구문도 가능
- LIMIT
- 출력 개수를 제한
- 상위의 N개만 출력하는 ‘LIMIT N’ 구문
- 서버의 처리량을 많이 사용해 서버의 전반적인 성능을 나쁘게 하는
악성 쿼리문 개선 시 사용
- GROUP BY
- 그룹으로 묶어주는 역할
- 집계 함수(Aggregate Function)를 함께 사용
- AVG(): 평균
- MIN(): 최소값
- MAX(): 최대값
- COUNT(): 행의 개수
- COUNT(DISTINCT): 중복 제외된 행의 개수
- STDEV(): 표준 편차
- VARIANCE(): 분산
- 효율적인 데이터 그룹화
- 읽기 좋게 하기 위해 별칭 사용 (AS)
- SELECT name, MAX(…) AS ‘별칭’
- HAVING
- WHERE과 비슷한 개념으로 조건 제한
- 집계 함수에 대해서 조건 제한하는 편리한 개념
- HAVING절은 반드시 GROUB BY절 다음에 나와야한다.
- ROLLUP
- 총함 또는 중간합계가 필요할 경우 사용
- GROUP BY절과 함께 WITH ROLLUP문 사용
- JOIN
- JOIN은 데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여
하나의 테이블이나 결과 집합으로 표현