본문으로 바로가기

기본 명령어

category Database/MySQL 2018. 12. 21. 09:51
반응형

 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