[DB] MySQL 기본 문법 정리

2020. 5. 22. 12:03DataBase/MySQL

반응형

■ 데이터 정의어 (DDL : Data Definition Language)

1. 테이블 컬럼(필드) 추가

설명) 컬럼를 기준컬럼의 위 또는 아래에 타입조건에 맞춰 컬럼추가. 

예시) ALTER TABLE 테이블명 ADD 추가할필드명 타입 조건 first 또는 after 기준필드명;
ALTER TABLE tblexam ADD address VARCHAR(20) after name;

2. 테이블 컬럼(필드) 수정

설명) 테이블에서 컬럼(필드) 수정.

예시) ALTER TABLE 테이블명 MODIFY 컬럼명 타입조건 NULL조건;
ALTER TABLE tblexam MODIFY id int not null;

3. 테이블 컬럼(필드) 삭제

설명) 테이블에서 컬럼(필드)삭제.

예시) ALTER TABLE 테이블명 DROP 삭제할필드명;
ALTER TABLE tblexam DROP id;

4. 테이블 컬럼(필드) 제약조건 추가

설명) 해당 컬럼에 제약조건 부여

예시) ALTER TABLE 테이블명 ADD CONSTRAINT 변수(예)pk_id) 제약조건(컬럼명);
ALTER TABLE tblexam ADD CONSTRAINT pk_id PRIMARY KEY(id);

데이터 조작어 (DML : Data Manipulation Language)

1. DESC

설명) 테이블의 구조를 참조

예시) DESC 테이블명;
DESC tblexam;

2. 중복 행 제거하기(Distinct)

설명) 열이름에 해당하는 데이터를 중복없는 레코드로 호출한다.

예시) SELECT DISTINCT(열이름) FROM 테이블명;
SELECT DISTINCT(id) FROM tblexam;

3. 패턴(LIKE)

※ 메타 문자 : %(임의의 문자열), _(임의의 문자하나)

설명) SQL 앞에 문자가 있거나 없으며, SQL문자 뒤에 문자하나가 존재하는 데이터가 조건에 해당한다.

예시) WHERE 열이름 LIKE '%SQL_'

4. IN

설명) 열이름에 해당하는 데이터가 A,B,O인 레코드를 호출한다.

예시) SELECT * FROM 테이블명 WHERE 열이름 IN (A,B,C)
SELECT * FROM tblexam WHERE blood_type IN (A,B,O);

5. CASE

설명) WHEN 절에서 조건에 해당된다면 해당 THEN절의 결과를 가져오고, 전체 WHEN 절의 조건에 해당되지 않는다면, ELSE절의 결과를 가져온다.

예시)
CASE WHEN 조건식1 THEN 식1
    [WHEN 조건식2 THEN 식2]
                  :
    [ELSE 식3]
END

6. 정렬(ORDER BY)

※ LIMIT절이 없을 경우 쿼리문의 가장 마지막에 위치한다.

정렬형식 =  ASC(디폴트) : 오름차순, DESC : 내림차순

 

설명) ORDER BY 작성 순서를 우선순위로 정렬한다. (열이름1[오름차순]>열이름2[내림차순]>열이름3[오름차순])

SELECT * FROM 테이블명 WHERE 조건 ORDER BY 열이름1 ASC, 열이름2 DESC, 열이름3;

7. 제한하기(LIMIT)

※ 쿼리문의 가장 마지막에 위치한다.

OFFSET절을 사용O : 원하는 위치에서 아래로 원하는 레코드 갯수를 호출.

OFFSET절을 사용X : 레코드의 가장 상위위치부터 아래로 원하는 레코드 갯수를 호출.

 

설명) OFFSET은 첫번째 레코드를 0으로 판단하기 때문에, 정렬된 레코드에서 4번째 레코드부터 3개의 레코드를 호출

1) SELECT * FROM 테이블명 ORDER BY 열이름 DESC LIMIT 3 OFFSET 3;

1) SELECT * FROM 테이블명 ORDER BY 열이름 DESC LIMIT 3, 3; 

8. 그룹화(GROUP BY)

※ 그룹화 하고자 하는 열의 데이터를 그룹화하는 작업

 

설명) 열이름1 , 열이름2를 그룹화하여 테이블의 레코드를 호출한다.

SELECT * FROM 테이블명 GROUP BY 열이름1, 열이름2

9. HAVING절

※ 그룹화(GROUP BY)와 같이 사용되며, 그룹 함수를 통해 조건을 주고 싶을 경우 사용

 

설명) 해당 열이름으로 그룹화된 데이터에서 그룹 함수를 사용한 조건과 매치되는 레코드를 호출한다.

SELECT * FROM 테이블명 GROUP BY 열이름 HAVING 그룹함수를 이용한 조건

예시) select * from emp group by job having sum(sal) = 2000;

10. REPLACE() 함수

※ 데이터 값 치환

 

설명) 열이름의 데이터의 내용 중 'a' 를 'b' 로 치환한다.

REPLACE(열이름, 'a', 'b')

예시) apply -> bpply

11. count()함수

설명) 열이름에 해당하는 데이터의 갯수를 반환(NULL은 계산하지 않는다.)

select count(열이름) from 테이블명;
반응형

'DataBase > MySQL' 카테고리의 다른 글

[DB] MySQL 함수정리  (0) 2020.05.23
[DB] MySQL 한글 인코딩 설정  (0) 2020.05.22
[DB GUI] Oracle SQL Developer에 MySQL연동  (0) 2020.05.21
[DB GUI] Heidi SQL 설치 방법  (0) 2020.05.21
[DB] MySQL Server 설치 방법  (0) 2020.05.21