DB 관련
생성
CREATE DATABASE 데이터베이스_이름;
사용
USE 데이터베이스_이름;
Table 관련
테이블 전체 조회
SHOW TABLES;
테이블 생성
CREATE TABLE 테이블_이름 (컬럼명 컬럼타입()), (컬럼명2, 컬럼타입2()) · · · ;
테이블 상세 조회
DESCRIBE 테이블_이름;
데이터 입력
파일로부터 입력
LOAD DATA LOCAL INFILE '파일경로/파일이름.확장자' INTO TABLE 테이블_이름;
※ 만약 파일을 자동 줄 바꿈 적용된 상태라면 아래와 같이 조건 추가
LOAD DATA LOCAL INFILE '파일경로/파일이름.확장자' INTO TABLE 테이블_이름 LINES TERMINATED BY '\r\n';
쿼리문으로 입력
INSERT INTO 테이블 이름 VALUES (들어갈 데이터1, 들어갈 데이터2, · · · );
데이터 조회
테이블에 있는 모든 데이터 조회
SELECT * FROM 테이블_이름;
(단, 숨겨진 열은 보이지 않음)
조건을 이용한 데이터 조회
조건 기준과 같은 데이터 조회
SELECT * FROM 테이블_이름 WHERE 조건_대상_컬림_이름 = '조건';
조건 기준과 크기 비교하여 데이터 조회
(크거나 같음 예시)
SELECT * FROM 테이블_이름 WHERE 조건_대상_컬림_이름 >= '조건';
조건 기준이 여러개인 경우
- AND
SELECT * FROM 테이블_이름 WHERE 조건_대상_컬럼_이름 = '조건' AND 조건_대상_컬럼2_이름 = '조건2';
- OR
SELECT * FROM 테이블_이름 WHERE 조건_대상_컬럼_이름 = '조건' OR 조건_대상_컬럼2_이름 = '조건2';
- 둘 다 사용
SELECT * FROM 테이블_이름 WHERE (조건_대상_컬럼_이름 = '조건' AND 조건_대상_컬럼2_이름 = '조건2') OR (조건_대상_컬럼3_이름 = '조건3' AND 조건_대상_컬럼4_이름 = '조건4') ;
테이블에 있는 데이터 중 선택하여 조회
SELECT 조회할_컬럼, 조회할_컬럼2 FROM 테이블_이름;
조회할 컬럼 기준으로 정렬
SELECT DISTINCT 조회할_컬럼 FROM 테이블_이름;
조건이 있는 선택 조회
SELECT 조회할_컬럼, 조회할_컬럼2, · · · FROM 테이블_이름 WHERE 조건_대상_컬럼_이름 = '조건';
정렬하여 조회
SELECT * FROM 테이블_이름 ORDER BY 정렬할_컬럼;
역순으로 정렬
SELECT * FROM 테이블_이름 ORDER BY 정렬할_컬럼 DESC;
컬럼마다 다르게 정렬
SELECT * FROM 테이블_이름 ORDER BY 정렬할_컬럼1, 정렬할_컬럼2 DESC;
-> 컬럼1 : 정방향 정렬, 컬럼2 : 역순 정렬
날짜 데이터 연산하여 조회
※ yyyy-MM-dd 타입의 DATE 타입 컬럼(day)이 있다고 가정하고 설명
SELECT TIMESTAMPDIFF(YEAR, day, CURDATE()) AS day_diff FROM 테이블_이름;
- TIMESTAMPDIFF(YEAR, day_1, day_2) : day_1과 day_2의 연도 차이를 출력함
- AS 컬럼_이름 : 앞의 연산 내용을 컬럼_이름으로 붙여서 새로운 컬럼으로 표시함
- 예시 결과
+----------+----------------+-----------------+------+
| name | day | CURDATE() | age |
+----------+----------------+-----------------+------+
| Fluffy | 1993-02-04 | 2003-08-19 | 10 |
| Claws | 1994-03-17 | 2003-08-19 | 9 |
+----------+----------------+-----------------+------+
날짜 데이터 연산한 결과에 정렬 추가(위 예시 테이블 활용)
SELECT TIMESTAMPDIFF(YEAR, day, CURDATE()) AS day_diff FROM 테이블_이름 ORDER BY 정렬할_컬럼;
날짜 데이터 연산한 결과에 조건 추가
SELECT TIMESTAMPDIFF(YEAR, day, CURDATE()) AS day_diff FROM 테이블_이름 WHERE 조건_대상_컬럼_이름 = '조건' ;
날짜 데이터 연산한 결과에 조건, 정렬 추가
SELECT TIMESTAMPDIFF(YEAR, day, CURDATE()) AS day_diff FROM 테이블_이름 WHERE 조건_대상_컬럼_이름 = '조건' ORDER BY 정렬할_컬럼;
년,월,일 더하여 조회
1년 더하기
SELECT day + INTERVAL 1 YEAR;
1개월 더하기
SELECT day + INTERVAL 1 MONTH;
1일 더하기
SELECT day + INTERVAL 1 DAY;
조건에 패턴 더하여 조회
SELECT * FROM 테이블_이름 WHERE 조건_컬럼 LIKE '조건';
LIKE 조건
- %~ : 조건 컬럼에 ~가 % 뒤에 들어간 데이터 조회
EX) SELECT * FROM some_table WHERE name LIKE '%aa';
RESULT)
+----------+
| name |
+----------+
| ewdaa |
| ziaaa |
+----------+
- ~% : 조건 컬럼에 ~가 % 앞에 들어간 데이터 조회
EX) SELECT * FROM some_table WHERE name LIKE 'aa%';
RESULT)
+------------+
| name |
+------------+
| aa12d |
| aabqsae |
+------------+
- %~% : 조건 컬럼에 ~가 % 앞, 뒤에 들어간 데이터 조회
EX) SELECT * FROM some_table WHERE name LIKE '%aa%';
RESULT)
+----------+
| name |
+----------+
| ewaac |
| zaaaa |
+----------+
- --- : 컬럼 글자 수가 - 갯수만큼인 데이터 조회
EX) SELECT * FROM some_table WHERE name LIKE '--';
RESULT)
+----------+
| name |
+----------+
| ew |
| zi |
+----------+
조회된 데이터 갯수 조회
SELECT COUNT(*) FROM 테이블_이름;
원하는 컬럼만 갯수 조회
SELECT 컬럼1, COUNT(컬럼2) FROM 테이블_이름;
출처
'개발잡담 > DB' 카테고리의 다른 글
MySQL 명령어 사용법 - 기본 2 (0) | 2024.01.16 |
---|---|
MongoDB ↔ Spring Boot 연동 (0) | 2023.11.07 |
Base 64 인코딩이란? (0) | 2023.09.05 |