본문 바로가기
CS/Database

[MYSQL] 사용법 정리

by 쵸빙 2020. 5. 19.

자주 쓰이는 기본적인 MySQL 쿼리 문법을 정리해보겠다.

 

 

 

 

● 테이블 생성

1. 기본 테이블 생성

CREATE TABLE mytable(

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

NAME VARCHAR(50) NOT NULL

);

 

NOT NULL : 반드시 입력해야 함. 비어있을 수 없음.

AUTO_INCREMENT : 자동으로 숫자가 증가하도록 함.

PRIMARY KEY : 기본키로 지정.

 

2. 테이블 생성하면서 외래키 추가하기

FOREIGN KEY (USER_IDX) REFERENCES MEMBER (USER_IDX) ON UPDATE CASCADE ON DELETE CASCADE

 

 

 

● DESCRIBE 조회

1. 테이블 필드와 관련된 정보 조회

DESCRIBE 테이블명

 

2. 데이터 조회

SELECT * FROM 테이블명

 

3. 원하는 필드만 조회

SELECT 필드명1, 필드명2 FROM 테이블명

 

 

 

● WHERE 조건 검색

SELECT * FROM 테이블명 WHERE 필드명 = ‘값’

 

1. OR, AND

- 논리연산자

SELECT * FROM 테이블명 WHERE (필드명 = ‘값’) OR (필드명 = ‘값);

SELECT * FROM 테이블명 (필드명 = ‘값’) AND (필드명 = ‘값’);

 

2. LIKE

- 특정 부분 일치하는 데이터 조회

 

- 예 : 홍으로 시작되는 값을 모두 찾을 경우

SELECT * FROM 테이블명 WHERE 필드명 LIKE ‘홍%’;

 

- 예 : 홍으로 시작되고 뒤에 2글자가 붙을 경우

SELECT * FROM 테이블명 WHERE 필드명 LIKE ‘홍__’;

 

 

 

● ORDER BY

1. 오름차순 (DEFAULT)

SELECT * FROM 테이블명 ORDER BY 필드명 ASC;

 

2. 내림차순

SELECT * FROM 테이블명 ORDER BY 필드명 DESC;

 

 

● LIMIT 선택 범위

1. 특정 위치에 있는 레코드까지 선택

SELECT * FROM 필드명 LIMIT 레코드번호;

 

2. 특정 위치에 있는 레코드 ~ 레코드까지 선택

: 2번째 레코드부터 4개까지 선택

SELECT * FROM 필드명 LIMIT 2,4;

 

 

 

● 테이블 수정하기

1. 특정 테이블의 특정 데이터와 그 타입 수정

ALTER TABLE INQUIRY CHANGE DATA DATE VARCHAR(8);

 

2. 특정 테이블에 외래키 추가하기

ALTER TABLE MEMBER ADD CONSTRAINT START_TIME FOREIGN KEY(START_TIME) REFERENCES RENT_DETAILS(SEQ) ON DELETE CASCADE ON UPDATE CASCADE;

 

 

 

● 명령어 조합

SELECT FROM WHERE ORDER BY LIMIT

 

: id(int 필드), name (varchar 필드), modelnumber(varchar 필드)

SELECT id, name modelnumber FROM 테이블명

WHERE (id < 7) AND (modelnumber LIKE ‘A%’)

ORDER BY name DESC

LIMIT 3;

 

 

 

● INSERT 데이터 삽입 (저장)

INSERT INTO 테이블명 (필드명, 필드명, 필드명) VALUES (‘값’, ‘값’, ‘값’);

 

 

 

● UPDATE 데이터 업데이트 (수정)

1. 데이터 하나 수정

UPDATE 테이블명 SET 수정하고싶은필드명 = ‘수정하고싶은값’ WHERE 기본(Primary Key)필드 = ‘값’;

 

2. 데이터 여러개 수정

UPDATE 테이블명 SET 수정하고싶은필드명 = ‘수정하고싶은값’, 수정하고싶은필드명 = ‘수정하고싶은값’, 수정하고싶은필드명 = ‘수정하고싶은값’ WHERE 기본(PrimaryKey)필드 = ‘값’;

 

3. DELETE 데이터 삭제

DELETE FROM 테이블명 WHERE 필드 = ‘값’;

 

 

 

 

● 추가 정보들

SELECT 사용하기

1. SELECT * FROM table_name WHERE abc_column = ‘a’ ORDER BY a_column DESC LIMIT 100;

order by a_column은 정렬, order by a_column desc는 역순정렬, limit 100100개까지

 

2. SELECT * FROM table_name WHERE a_column like ‘%aaa%’;

a_column에서 aaa를 포함하는 모든 레코드를 가져옴.

 

3. SELECT * FROM table_name WHERE a_column BETWEEN 10 AND 100;

a_column에서 10~100 사이의 값을 가진 레코드를 가져옴.

 

4. SELECT a_column FROM table_name GROUP BY a_column;

a_column의 같은 값끼리 그룹을 묶음.

 

5. SELECT count(*) FROM table_name;

테이블의 전체 레코드 개수를 가져옴.

 

 

UPDATE 사용하기

UPDATE table_a SET table_a, a_column = table_b, a_column FROM table_a, table_b

WHERE table_a, a_column = table_b, a_column;

두 개의 테이블에서 조건을 비교하여 업데이트

 

 

문자 관련 함수

1. SELECT LEFT(a_column,, 2) FROM table_name;

a_컬럼에서 왼쪽부터 2자리를 잘라서 가져온다.

 

2. SELECT MID(a_column, 2, 4) FROM table_name;

a_컬럼 2자리부터 오른쪽으로 4자리만큼 가져온다.

 

3. SELECT RIGHT(a_column, 3) FROM table_name;

a_컬럼에서 오른쪽부터 3자리 잘라서 가져온다.

 

4. SELECT * FROM table_name WHERE LENGTH(a_column) = 10;

a_컬럼에서 길이가 10인 레코드만

 

5. UPDATE table_name SET a_column = REPLACE(a_column, ‘변경전글자’, ‘변경후글자’);

a_컬럼의 변경전글자라는 문자열을 변경후글자로 바꾸어 a_컬럼 수정

 

6. UPDATE table_name SET a_column = TRIM(a_column);

a_컬럼의의 왼쪽 오른쪽 공백을 모두 제거

 

7. SELECT AVG(a_column), MIN(a_column), MAX(a_column), SUM(a_column) FROM table_name;

AVG : 평균값, MIN : 최소값, MAX : 최대값, SUM : 합계

 

8. SELECT version(), user(), database();

MySQL 버전, 유저, 데이터베이스명 보기

 

 

 

날짜 관련 함수

SELECT NOW();

 

 

 

JOIN

1. a_테이블과 b_테이블에서 a_컬럼의 값이 같은 레코드만 가져옴

SELECT a_table.a_column, b_table.a_column

FROM a_table, b_table

WHERE a_table.a_column = b_table.a_column;

 

2. INNER JOIN

SELECT b.column_b

FROM table_a as a

FROM table_a as a

inner join table_b as b on a.column_a = b.column_a

WHERE a.column=’000’

테이블 A와 테이블 B를 비교하여 테이블 A과 테이블 B의 컬럼a 값이 000인 것의 테이블 B 컬럼b 값을 가져오는 쿼리

 

 

UNION

a_테이블과 b_테이블에서 a_컬럼, b_컬럼 모든 값을 한꺼번에 가져옴

SELECT a_column FROM a_table

UNION

SELECT b_column FROM b_table;

 

 

 

 

 

 

'CS > Database' 카테고리의 다른 글

[Edwith] 9. Maven  (0) 2020.04.20
[Edwith] 11. JDBC  (0) 2020.04.20
[Edwith] 8. DDL 알아보기  (0) 2020.04.16
[Edwith] 7. DML - DELETE 알아보기  (0) 2020.04.16
[Edwith] 6. DML - UPDATE 알아보기  (0) 2020.04.16