728x90
반응형

MariaDB SQL 58

INSERT 한번에 여러개를 해보자.

Insert 구문 하나로 여러개의 데이터를 올리고 싶다면 어떻게 해야 하나? INSERT INTO 테이블 (컬럼명) VALUES (데이터1), (데이터2), (데이터3), ... 먼저 테스트를 위한 테이블(TEST)를 생성해보자. CREATE TABLE TEST ( NAME varchar(200) NOT NULL COMMENT '이름', USE_YN varchar(1) NOT NULL DEFAULT 'Y' COMMENT '사용유무', PRIMARY KEY (NAME) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='테스트'; NAME 컬럼에... AAA, BBB, CCC, DDD, EEE, FFF 를 넣으려고한다면.... INSERT INTO 테이블 (컬럼명) VALUE..

MariaDB SQL 2023.03.21

세로 데이터를 가로 데이터로 변환해 보자

아래 TEST 테이블의 테이터를 VERTICAL(종/세로) 에서 HORIZONTAL(횡/가로) 로 변환해 보려고 한다. BEFORE : TEST (VERTICAL), 세로 데이터 TEST NAME CLASS SCORE AAA KOR 100 AAA ENG 100 AAA CHN 50 BBB KOR 90 BBB ENG 70 BBB CHN 30 CCC KOR 80 CCC ENG 80 CCC CHN 40 AFTER : TEST (HORIZONTAL), 가로 데이터 TEST NAME KOR ENG CHN AAA 100 100 50 BBB 90 70 30 CCC 80 80 40 ① 먼저 CASE WHEN 을 사용하여 데이터의 정렬을 가로화 해보자. SELECT NAME, CASE WHEN CLASS = 'KOR' T..

MariaDB SQL 2023.03.15

MAX vs MIN (최대 vs 최소) 함수를 알아보자

MAX(컬럼명) vs MIN(컬럼명) 해당 함수는 숫자만이 아닌 문자형 데이터에도 사용할 수 있다. 최대값 구하기 SELECT MAX(컬럼명) FROM 테이블; 최소값 구하기 SELECT MIN(컬럼명) FROM 테이블; USER_TABLE ID USER_NM 1 BBB 2 CCC 3 AAA 위의 USER_TABLE 에서 가장 큰 값의 ID를 가져오려면 SELECT MAX(ID) AS MAX_ID FROM USER_TABLE; [실행결과] MAX_ID 3 위의 USER_TABLE 에서 가장 작은 값의 ID를 가져오려면 SELECT MIN(ID) AS MIN_ID FROM USER_TABLE; [실행결과] MIN_ID 1 위의 USER_TABLE 에서 문자로 정렬시 가장 첫번째 USER_NM를 가져오려면 ..

MariaDB SQL 2023.03.03

CASE WHEN 을 사용하여 조건에 맞는 결과값을 나타내보자.

SQL Query 문에서 if같은 조건문을 사용하고자 할때, CASE 문을 사용한다. ※ 사용법 CASE WHEN 조건1 THEN '결과값1' WHEN 조건2 THEN '결과값2' . . . ELSE '최후의 결과값' END - WHEN과 THEN은 한쌍으로 사용되어야 합니다. - WHEN과 THEN은 다수 사용이 가능합니다. - ELSE가 존재하면 WHEN - THEN 조건에 해당하지 않는 경우 결과값을 설정할 수 있습니다. - ELSE가 존재하지 않고, 조건에 참이 아니면 결과값으로 NULL을 반환합니다. REGION ID DO SI 1 KK 수원 2 KK 용인 3 JJ 제주 4 JN 광주 5 KN 부산 6 ? 워싱턴 위의 REGION 테이블에서 DO를 조건에 따라 다른 결과값으로 대체하려면... S..

MariaDB SQL 2023.03.02

GROUP_CONCAT ()으로 여러 행의 문자열을 합칠 수 있다.

GROUP_CONCAT([DISTINCT] [컬럼][ORDER BY 컬럼 ASC/DESC][SEPAPATOR '구분자']) USER_ADDR IDX REGION NAME 1 서울 AAA 2 인천 CCC 3 인천 DDD 4 천안 BBB 5 인천 DDD 기본적으로는 구분자 등을 생략하고 사용한다. GROUP_CONCAT(컬럼명) : 문자열사이에 구분자는 쉼표(,)가 기본으로 들어간다. 위의 테이블(USER_ADDR)에서 지역(REGION)별 이름(NAME)을 나타내고 싶을 때는 SELECT REGION, GROUP_CONCAT(NAME) AS NAMES FROM USER_ADDR GROUP BY REGION ; [실행결과] USER_ADDR REGION NAMES 서울 AAA 인천 CCC,DDD,DDD 천안..

MariaDB SQL 2023.02.28

CONCAT() 여러 문자들을 합칠 수 있다.

CONCAT(문자열1, 문자열2, 문자열3,...) 여러 문자열을 함께 합쳐 봅니다. SELECT CONCAT("concat 함수는 ", "여러문자를 ", "연결하는 ", "함수!") AS 연결된문자열; [실행결과] 연결된문자열 concat 함수는 여러문자를 연결하는 함수! USER_PHONE NAME HP1 HP2 철수 1234 4321 영희 1004 4001 순이 8282 2828 위의 테이블(USER_PHONE)에서 '010' 과 ' - ' 을 추가하여 철수의 HP 를 표현해보자 SELECT CONCAT('010 - ', HP1, ' - ', HP2) AS HP FROM USER_PHONE WHERE NAME = '철수'; [실행결과] HP 010 - 1234 - 4321

MariaDB SQL 2023.02.27

ORDER BY 정렬에 대하여

ORDER BY 컬럼명 ASC / DESC 를 기억하자. ORDER BY는 명시하는 컬럼에 대한 정렬을 하고자 할 때 사용한다. ASC 는 오름차순 혹은 순방향 정렬이라고 하고, DESC 는 내림차순 혹은 역방향 정렬이라고 한다. ASC 는 생략을 할 수도 있다. ORDER BY 컬럼명 다음에 아무런 명시를 해주지 않는 다면 기본값으로 ASC 정렬이 이루어진다. EXAM IDX VAL1 VAL2 1 A 100 2 C 200 3 D 200 4 E 300 5 B 500 위의 테이블(EXAM)에서 VAL1에 대해 A,B,C,... 순방향으로 정렬을 해보자. ① SELECT IDX, VAL1, VAL2 FROM EXAM ORDER BY VAL1; ② SELECT IDX, VAL1, VAL2 FROM EXAM O..

MariaDB SQL 2023.02.22

ORDER BY FIELD()를 사용하여 특정한 값을 우선 정렬할 수 있다.

ORDER BY FIELD (필드명, 정렬값1, 정렬값 2, ... ) 를 기억하자. EXAM IDX VAL 1 A 2 B 3 D 4 C 5 E 위의 테이블(EXAM)에서 VAL의 정렬순서를 A→C→E→D→B 로 하고 싶을 때는 ① SELECT IDX, VAL FROM EXAM ORDER BY FIELD(VAL,'A','C','E','D','B'); ② SELECT IDX, VAL FROM EXAM ORDER BY FIELD(VAL,'D','B'), VAL; [실행결과] EXAM IDX VAL 1 A 4 C 5 E 3 D 2 B 위의 테이블(EXAM)에서 VAL의 정렬순서를 E→A→B→C→D 로 하고 싶을 때는 SELECT IDX, VAL FROM EXAM ORDER BY FIELD (VAL,'E') D..

MariaDB SQL 2023.02.21
728x90
반응형