SQL

    [MySQL] 문자열 길이 조회하는 방법 CHAR_LENGTH(), LENGTH()

    문자열의 길이를 찾는 방법은 LENGTH()와 CHAR_LENGTH() 두 가지가 있어요. 차이점은 LENGTH()는 문자열의 byte길이를 반환하고, CHAR_LENGTH()는 문자열 길이를 반환해요. 예시를 통해서 쉽게 알아봅시다. - LENGTH() SELECT LENGTH(12345); 결괏값: 5 SELECT LENGTH('Hello'); 결괏값: 5 SELECT LENGTH('안녕'); 결괏값: 6 - CHAR_LENGTH() SELECT CHAR_LENGTH(12345); 결괏값: 5 SELECT CHAR_LENGTH('Hello'); 결괏값: 5 SELECT CHAR_LENGTH('안녕'); 결괏값: 2 결과적으로 한글로 입력된 문자열의 길이를 알고 싶을 땐 CHAR_LENGTH()함수를 ..

    [MySQL] LIKE 여러번 사용해야 할 때는 'REGEXP'

    LIKE를 여러번 사용해야 하는데, IN을 함께 사용할 수 없어요. 이럴 때 깔끔하고, 간단하게 쿼리를 작성하기 위해 사용하는 것이 REGEXP 입니다. 사용방법: SELECT 칼럼1 FROM 테이블 WHERE 칼럼1 REGEXP '문자1|문자2|문자3'; ( | 은 OR의 역할을 해줘요) 1) 칼럼1에서 'a, b, c, d'가 포함된 문자 모두 출력하기 (원하는 문자 그대로 입력) SELECT 칼럼1 FROM 테이블 WHERE 칼럼1 REGEXP 'a|b|c|d'; -- REGEXP를 사용하지 않고 위와 동일한 값 출력하기 SELECT 칼럼1 FROM 테이블 WHERE 칼럼1 LIKE '%a%' OR 칼럼1 LIKE '%b%' OR 칼럼1 LIKE '%c%' OR 칼럼1 LIKE '%d%'; 2) 칼..

    [MySQL] 집계함수 + GROUP BY 기본 개념 (COUNT, SUM, AVG, MAX, MIN, STD, VAR_SAMP)

    [MySQL] 집계함수 + GROUP BY 기본 개념 (COUNT, SUM, AVG, MAX, MIN, STD, VAR_SAMP)

    집계함수를 Order 테이블을 통해서 한 번 정리를 하고 집계함수와 GROUP BY를 함께 사용하는 법도 알아보도록 해요. COUNT() - 칼럼의 개수를 파악할 때 사용 SELECT COUNT(order_no) AS '주문수' FROM Order; 결괏값: order_no의 개수가 집계되어 출력 SUM() - 칼럼의 합계를 알고 싶을 때 사용 SELECT SUM(sales_amt) AS '주문금액' FROM Order; 결괏값: sales_amt의 모든 주문금액 합계가 집계되어 출력 AVG() - 칼럼의 평균값을 알고 싶을 때 사용 SELECT AVG(sales_amt) AS '평균주문금액' FROM Order; 결괏값: sales_amt의 평균값이 출력 MAX() / MIN() - 칼럼의 최대/최소값..

    [MySQL] Null 값 처리하는 방법 (IFNULL, CASE)

    Null 값을 원하는 값으로 변경을 해야 할 경우가 있어요. 이럴 때 활용할 수 있는 방법 두 가지를 정리해보겠습니다. 1) IFNULL() 사용방법 -- 해당 칼럼에 Null값은 대체할 값으로 바뀌고,원래 값이 있다면 그대로 조회 SELECT IFNULL(칼럼이름, 'Null이 있을 경우 대체할 값') FROM 테이블명; 2) CASE() 사용방법 SELECT CASE WHEN 칼럼이름 IS NULL THEN "Null일 때 대체할 값" ELSE 칼럼이름 -- Null이 아닌 값이 그대로 출력될 수 있도록 ELSE 사용 END AS 칼럼이름 FROM 테이블명;

    [MySQL] 숫자형 함수 정리 (ABS, ROUND, CEILNG, FLOOR, POWER, SQR)

    절댓값 반환 함수 ABS() -- ABS(숫자) SELECT ABS(-123) 결과: 123 설정값 기준으로 반올림 함수 ROUND() -- ROUND(숫자, 설정값) SELECT ROUND(1.56, 1) 결과: 1.60 크거나 같은 최소 정수 추출 함수 CEILING() -- CEILING(숫자) SELECT CEILING(1.56) 결과: 2 작거나 같은 최소 정수 추출 함수 FLOOR() -- FLOOR(숫자) SELECT FLOOR(1.56) 결과: 1 n의 m 거듭 제곱 함수 POWER() -- POWER(n, m) SELECT POWER(3, 2) 결과: 9 n의 제곱근 함수 SQRT() -- SQRT(n) SELECT SQRT(9) 결과: 3

    [MySQL] CASE 기본개념, 예제로 쉽게 이해하기

    [MySQL] CASE 기본개념, 예제로 쉽게 이해하기

    CASE문이란? '조건문' 기본형식 및 기억할 것들 CASE WHEN 조건1 THEN 조건1 충족할 때 반환되는 값 WHEN 조건2 THEN 조건2 충족할 때 반환되는 값 WHEN 조건3 THEN 조건3 충족할 때 반환되는 값 ELSE 모든 조건 해당되지 않을 때 반환되는 값 END 1) WHEN - THEN은 항상 같이 사용하기 2) WHEN - THEN 개수 상관 없음 3) ELSE가 없고, WHEN - THEN 조건 충족하지 않으면 NULL 값 반환 4) 조건문 마지막에 END 꼭 써주기 프로그래머스 예제 SEX_UPON_INTAKE 열에서 중성화 여부를 'O', 'X'로 변경하고 칼럼의 이름도 '중성화'로 변경해볼게요. 'Newtered Male' → 'O' 'Spayed Female' → 'O'..

    [MySQL] UNION의 기본 개념, 사용법을 예시로 쉽게

    [MySQL] UNION의 기본 개념, 사용법을 예시로 쉽게

    UNION이란? 2개 이상 테이블에 존재하는 같은 성격의 값을 하나의 쿼리로 추출하는 것 사용하기 전 유의사항 - 대응하는 칼럼의 이름이 다르다면 하나로 통일해주는 게 좋아요. 그래서 다르다면 AS(별칭)을 통해서 같게 해줍니다. 예시) TABLE_1의 asia 칼럼과 TABLE_2의 country 칼럼을 UNION을 통해 하나의 쿼리로 추출해보겠습니다. 1. 중복되지 않은 값만 추출하는 법 (= UNION DISTINCT or UNION) SELECT asia AS 'country' FROM TABLE_1 UNION -- UNION DISTINCT과 결괏값이 같다 SELECT country FROM TABLE_2; 두 칼럼의 이름이 다르기 때문에 'country'로 통일 시켰어요. 단, 별칭은 UNIO..

    [MYSQL] 데이터 삭제하는 방법 DELETE, DROP, TRUNCATE

    데이터를 삭제하는 방법은 크게 3가지가 있어요. 각 특징을 숙지하고 예시를 보면 좋아요. 1) DELETE는 WHERE 절을 통해서 조건을 걸고 데이터를 삭제할 수 있어요. 또한 행 단위로 데이터가 삭제돼요. (단, 테이블은 유지된다.) 2) DROP은 데이터만 삭제하는 것이 아니라 테이블 전체가 삭제돼요. 3) TRUNCATE은 DELETE와 달리 WHERE 절을 사용할 수 없어서 모든 행 데이터가 삭제돼요. (단, 테이블은 유지된다.) DELETE 기본 형식 주의사항은 DELETE에 조건이 없다면 모든 행이 삭제된다는 것을 꼭 기억해야 해요. DELETE FROM 테이블_이름 WHERE 조건; 예시) city 테이블 중 city_name에서 '대'로 시작하는 데이터를 삭제하는 방법 DELETE FR..

    [MYSQL] UPDATE 기본 개념과 주의사항 알아보기

    [MYSQL] UPDATE 기본 개념과 주의사항 알아보기

    UPDATE문은 데이터를 수정해주는 역할을 해요. 기본 문법과 주의사항을 함께 살펴봅시다. 1) UPDATE문 기본 문법 UPDATE 테이블_이름 SET 열1 = 값1, 열2 = 값2 -- 변경하고 싶은 데이터 입력 WHERE 조건 조건에는 SET에 작성한 변경 값들을 적용할 행을 적어주면 돼요. 예시) city_name, population 데이터 바꾸기 UPDATE city_popul SET city_name = '서울', population = 0 WHERE city_name = 'Seoul'; 해석을 하면 "Seoul이 있는 행에서 city_name을 '서울'로 population을 0으로 바꾸자" 예요. 주의사항) 만약 조건을 걸어주지 않는다면, SET에 적은 값들이 데이터 전체에 적용되는 재앙..

    [MYSQL] 테이블 구조 살펴보는 방법 DESC

    [MYSQL] 테이블 구조 살펴보는 방법 DESC

    JOIN을 하거나 데이터 복사를 하기 위해서는 테이블의 구조를 살펴봐야 해요. 테이블 구조를 살펴볼 수 있는 명령어는 DESC 입니다. 1) DESC 데이터베이스 이름.테이블 이름; DESC market_db.member; 데이터베이스 이름을 생략하고 DESC member;라고 해도 같은 결괏값이 나옵니다. 단, USE market_db;를 통해서 사용하는 데이터 베이스를 선언해줘야 합니다.