본문 바로가기

Back-End

(60)
[DB] 데이터베이스 - self Join, outer Join, union, exists 문제1 - 회원아이디 b001회원의 마일리지값보다 큰, - 회원정보 조회하기 - 조회컬럼 : 회원아이디, 이름 - 2가지 이상의 방법 적용 -- 답1 (가상테이블 적용) SELECT A.mem_id, A.mem_name, A.mem_mileage FROM (SELECT mem_id ,mem_mileage, mem_name FROM member) A, (SELECT mem_id ,mem_mileage FROM member WHERE mem_id = 'b001') B WHERE A.mem_mileage > B.mem_mileage; -- 답2 (서브쿼리적용) SELECT mem_id, mem_name FROM member WHERE mem_mileage > (SELECT mem_mileage FROM mem..
[프로그래머스] 코딩테스트 Lv.1 덧칠하기 문제 어느 학교에 페인트가 칠해진 길이가 n미터인 벽이 있습니다. 벽에 동아리 · 학회 홍보나 회사 채용 공고 포스터 등을 게시하기 위해 테이프로 붙였다가 철거할 때 떼는 일이 많고 그 과정에서 페인트가 벗겨지곤 합니다. 페인트가 벗겨진 벽이 보기 흉해져 학교는 벽에 페인트를 덧칠하기로 했습니다. 넓은 벽 전체에 페인트를 새로 칠하는 대신, 구역을 나누어 일부만 페인트를 새로 칠 함으로써 예산을 아끼려 합니다. 이를 위해 벽을 1미터 길이의 구역 n개로 나누고, 각 구역에 왼쪽부터 순서대로 1번부터 n번까지 번호를 붙였습니다. 그리고 페인트를 다시 칠해야 할 구역들을 정했습니다. 벽에 페인트를 칠하는 롤러의 길이는 m미터이고, 롤러로 벽에 페인트를 한 번 칠하는 규칙은 다음과 같습니다. 롤러가 벽에서 벗..
[DB]데이터베이스 명령어5 (MariaDB) - 조인(Join), 가상테이블(inline view) 조인(JOIN) Inner Join 방식은 일반방식 or 표준방식 모두 표준처럼 사용됨 1. Inner Join - 일반방식 "우리나라 표준처럼 사용" Select 테이블1.컬럼1 ... 테이블n.컬럼1 From 테이블1, 테이블2, ... , 테이블n Where 관계조건(PK = FK) And 일반조건 From절 뒤에 테이블들을 콤마(,)로 구분하여 사용 Where절에 관계조건식(PK=FK)을 추가함 관계조건식은 최소한 (사용된 테이블의 갯수 -1) 만큼 제시 되야함 (SQLD출제) 2. Inner Join - 표준방식 "해외 표준처럼 사용" → 단계가 더 짧음 Select 테이블1.컬럼1 ... 테이블n.컬럼1 From 테이블1 Inner Join 테이블2 O..
[DB]데이터베이스 명령어5 (MariaDB) - 그룹함수(집합함수) 문자열 함수: CONCAT(str1, str2, ...): 문자열을 연결합니다. SUBSTRING(str, pos, len): 문자열의 일부분을 추출합니다. LENGTH(str): 문자열의 길이를 반환합니다. 숫자 함수: ROUND(x): 소수점 이하를 반올림합니다. ABS(x): 숫자의 절댓값을 반환합니다. 날짜 및 시간 함수: NOW(): 현재 날짜와 시간을 반환합니다. DATE_FORMAT(date, format): 날짜를 지정된 형식으로 포맷합니다. 논리 함수: IF(expr, true_value, false_value): 조건에 따라 값을 반환합니다. COALESCE(val1, val2, ...): NULL이 아닌 첫 번째 값을 반환합니다. 집계 함수: COUNT(expr): 특정 조건을 만족하..
[DB]데이터베이스 명령어4 (MariaDB) - replace, round, case, if, null 체크, 날짜 함수, 형 변환 함수 DB회사들마다 종속함수라는 것이 있다. 종속함수는 '다른'DB에서는 함수 이름이 다른 함수인데 우리는 MariaDB의 종속함수를 알아보자. 문제1 내용 1. 상품분류명에 컴퓨터가 포함되어 있고, 주문이력이 있는 상품에 대한 데이터를 조회. 2. 상품명, 상품분류명 조회하기 SELECT prod_name, (SELECT lprod_nm FROM lprod WHERE lprod_gu = prod_lgu) AS lprod_nm FROM prod WHERE prod_lgu IN (SELECT lprod_gu FROM lprod WHERE lprod_nm LIKE '%컴퓨터%') AND prod_id IN (SELECT cart_prod FROM cart WHERE cart_prod = prod_..
[DB] 데이터베이스 명령어3 (MariaDB) - concat(), upper(), trim(), substring(), left(), 서브쿼리 CONCAT * 병합 - 컬럼 데이터 합치기(병합) : concat()함수 사용 ( 중요! ) - 병합후 별명 지어줘야함!. - 회원이름, 회원주민번호(앞 - 뒤), 주소(앞 뒤) SELECT mem_name, CONCAT(mem_regno1, '-', mem_regno2) AS 'regno', CONCAT(mem_add1, ' ', mem_add2) AS 'add' FROM member; 대소문자 * 대소문자 - 대소문자 변환 : lower(), upper() - 회원가입할 때, 오류 찾을 때 사용 SELECT LOWER(mem_id) AS '소문자로', UPPER(mem_id) AS '대문자로' FROM member; TRIM * 공백제거 - 공백 제거하기 : TRIM(), LTRIM(), RTRIM..
[DB] 데이터베이스 명령어2 (MariaDB) - AS, IN, LIKE, BETWEEN 별칭 * 별칭사용하기 - 별칭을 사용하는 이유 : 긴 단어를 줄여서 사용하는데 좋음 - SQL에서 별칭을 사용할 수 있는 곳 ① 컬럼명 대신 별칭 사용 : as ex) SELECT mem_id AS id ② 테이블명 대신 별칭 사용 : 한칸 띄어쓰기 ex) FROM member mem * 회원 테이블 전체 조회하기 - 컬럼정보 : [mem_id, mem_pass, ....] - [{'a001', 'asdfasdf', ...}, {'b001', '1004'...}, {},,,] → 딕셔너리 한 개가 테이블의 한 줄로 입력됨 SELECT * FROM member; * 컬럼명 별칭 사용하기 [회원의 마일리지 값이 10 이상인 데이터만 조회하기] - 조회컬럼 : 회원아이디, 회원이름, 마일리지 - 별칭 : id..
[DB] 데이터베이스 명령어1(MariaDB, HeidiSQL) * commit과 rollback -- 데이터에 대한 입력/수정/삭제 시에는 commit 수행 -- 만약 입력/수정/삭제를 되돌리려면, rollback 수행 -- commit 이후에는 rollback이 안됩니다. -- mysql or mariadb는 자동 commit됩니다.(tool에서) -- oracle은 항상 commit 해야합니다.(tool에서) -- COMMIT; * 데이터 입력 (INSERT) INSERT INTO 테이블명 (컬럼명1, ...컬럼명N) VALUES (값1, ... 값N) * 데이터 수정 (UPDATE) UPDATE 테이블명 SET 수정할컬럼명1= 수정할값, 수정할컬럼명2= 수정할값 WHERE 수정조건 제시...(무조건) * 데이터 삭제 (DELETE) DELETE FROM 테이블..