show databases; | 현재 시스템에서 db 목록 보기 |
use db이름; | 사용할 db 선택하기 |
show tables; | 현재 db에서 테이블 목록 보기 |
desc 테이블이름; | 특정 테이블의 구조 확인하기 |
select [distinct] * | 컬럼이름 [[as] `별칭`] from 테이블이름 [where 검색조건표현식] [order by 컬럼이름 [asc | desc]] [limit 조회시작위치, 조회할 데이터 수 ]; | |
distinct : 중복제거 옵션 as (혹은 공백) : 컬럼이름에 별칭 적용 where : 검색조건을 위한 식을 표현한다. order by : 조회된 데이터를 정렬 (ASC = 순차, DESC = 역순) limit : 부분조회 기능 | |
컬럼명 between A and B | 구간검색 |
컬럼명 in (A, B, C, D) | 다중검색 |
컬럼명 like '%키워드%' | '%키워드' | '키워드%' | 키워드검색 - 중간(전부), 끝, 시작 |
컬럼명 is [not] null | null검색 |
left(컬럼, 길이) | 주어진 값을 길이 글자 수 만큼 왼쪽에서 잘라냄 |
rigth(컬럼, 길이) | 주어진 값을 길이 글자 수 만큼 오른쪽에서 잘라냄 |
substring(컬럼, 시작위치, 길이) | 주어진 값을 시작위치부터 길이만큼 잘라냄 길이가 없을 경우 끝까지 잘라냄 |
* concat(컬럼n) | 주어진 값을을 하나의 문자열로 연결 |
trim(컬럼) | 앞뒤 공백 제거 |
* password(컬럼) | 주어진 값을 암호화 |
upper(컬럼), lower(컬럼) | 주어진 값을 대문자 / 소문자로 변경 |
now() | 시스템의 현재 시각 조회 |
date_add(시각, interval 값 단위) | 날짜 연산 |
date_format(시작, 형식) / %y%m%d %h%i%s | 주어진 시각을 형식에 맞춰 변경한 결과를 리턴 |
MAX() | 최대값 |
MIN() | 최소값 |
SUM() | 합계 |
AVG() | 평균 |
COUNT() | 갯수조회(컬럼명 지정시 null데이터 제외, 전체 데이터는 * 지정하여 조회) |
그룹 조회
SELECT 컬럼, 집계함수(컬럼) FROM 테이블이름
[WHERE 표현식]
[GROUP BY 컬럼n]
[HAVING 집계함수(컬럼)에 대한 표현식]
[ORDER BY 컬럼 [정렬옵션]]
- where 절을 사용하여 검색된 결과에 대해 그룹핑 가능
- group by 절에 사용된 컬럼은 집계함수 없이 select에 명시 가능 혹은 생략 가능
- group by 절에 사용되지 않은 컬럼은 반드시 집계함수를 사용해서 지정
- 집계함수의 결과값에 대한 조건 검색을 할 경우 반드시 having 절을 사용해야 한다.
EQUI 조인
SELECT {컬럼 별칭 n} FROM 테이블n
[WHERE 조인조건 [AND 검색조건]]
[GROUP BY 컬럼이름]
[ORDER BY 컬럼이름 [정렬옵션]]
- 추가적인 검색 조건은 조인 조건 뒤에 AND로 명시
- from절에서 테이블 이름을 나열하면서 별칭 지정 가능. 공백 혹은 as 사용
- 두 개 이상의 테이블에서 같은 이름의 컬럼이 있을 경우 select에서 각 컬럼을 테이블이름.컬럼이름 혹은 별칭이름.컬럼이름 형태로 지정
INNER 조인
SELECT {컬럼 별칭 n} FROM 테이블1
INNER JOIN 테이블2 ON 조인조건
[WHERE 검색조건]
[GROUP BY 컬럼이름]
[ORDER BY 컬럼 [정렬옵션]]
OUTER 조인
한쪽 테이블의 데이터를 모두 출력해야 하는 경우 사용
SELECT {컬럼 별칭 n} FROM 테이블1
LEFT OUTER JOIN 테이블2 ON 조인조건
[WHERE 검색조건]
[GROUP BY 컬럼이름]
[ORDER BY 컬럼 정렬옵션]
SubQuery
SQL문 안에 새로운 SQL문이 구성되어 있는 경우. 주로 특정 조회결과를 다른 조회에서 조건검색에 활용할 경우 사용
SELECT ... FROM 테이블1 WHERE 컬럼이름 [=, IN] (SELECT ... FROM WHERE ...)
- 결과가 하나의 행인 경우 비교연산자를 사용하여 메인쿼리의 WHERE절을 구성
- 결과가 여러 개의 행인 경우 IN 연산자를 사용하여 메인쿼리의 WHERE절을 구성
데이터 저장
INSERT INTO 테이블이름 (컬럼n) VALUES(값n);
- 컬럼이름의 나열을 생략할 경우 테이블 구조에 따라 전체 값을 모두 명시해야 함.
- 컬럼이름과 값은 저장하기를 원하는 필드만 명시하면 됨.
- 명시하지 않을 경우 NULL저장
- NOT NULL로 설정된 필드는 반드시 명시되어야 한다.
- 날짜 형식의 경우 YYYY-MM-DD HH:MI:SS 형식으로 설정
- now() 함수를 사용할 경우 현재 시점이 저장됨.
데이터 수정
UPDATE 테이블이름 set 컬럼n=값n [WHERE 검색조건];
- where절이 설정되지 않을 경우 모든 행이 일괄 수정됨
데이터 삭제
DELETE FROM 테이블이름 [WHERE 검색조건];
- where절이 설정되지 않을 경우 모든 행이 일괄 삭제됨
데이터베이스 생성
CREATE DATABASE db이름 DEFAULT CHARSET utf8;
테이블 생성
CREATE TABLE 테이블이름 ( 컬럼이름 데이터 타입 [NOT NULL | NULL] [AUTO_INCREMENT])
[PRIMARY KEY 컬럼이름] [FOREIGN KEY 컬럼이름 REFERENCES 대상테이블명 (대상테이블의 컬럼명)]
ENGINE = InnoDB DEFAULT CHARSET = utf8;
데이터베이스 및 테이블 삭제
DROP DATABASE db이름;
DROP TABLE 테이블이름;
'Database > MySQL' 카테고리의 다른 글
executeQuery() 에러 (0) | 2019.10.08 |
---|---|
MySQL - 일별통계, 주간통계, 월간통계, 기간별통계 (3) | 2019.10.04 |
Native Data Type Code (0) | 2019.09.26 |
auto_increment 값 초기화 (0) | 2019.07.05 |
기본 명령어2 (0) | 2018.12.26 |