본문 바로가기

DB

(5)
[DB] 데이터베이스 용어 헷갈리는 데이터베이스 용어 정리 1. 릴레이션 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위 = DB 테이블 그 자체 2. Attribute(어트리뷰트 & 속성) 내가 저장하고 싶은 개체의 항목들 = DB 테이블의 각 컬럼 3. Tuple(튜플 & 레코드) 릴레이션의 각 행을 레코드(= 튜플)라 칭한다. 튜플이 조금 더 공식적인 명칭. = DB 테이블의 행 4. Domain(도메인) 릴레이션에 포함된 속성들이 각각 가질 수 있는 값들의 집합 = DB 테이블에서 컬럼 제외, 한 컬럼에 해당하는 값(열) 전체 5. Degree(디그리 & 차수) 한 릴레이션 안에 있는 Attribute(어트리뷰트)의 수 모든 릴레이션은 적어도 하나 이상의 Attribute(어트리뷰트)를 가지고 있다. = DB 테..
MSSQL) Merge문 사용 데이터 검색 후 데이터 유무에 따라 insert 혹은 update를 실행하고 싶을 때 mssql에서는 merge문을 사용할 수 있다. ------------------------------------------- 데이터가 있을 경우 -> UPDATE 데이터가 없을 경우 -> INSERT ------------------------------------------- 예를 들어 시청이력을 저장하고 싶을 때, 기존에 시청 이력이 있는 경우 동일한 시청이력을 쌓지 않게 UPDATE를, 시청 이력이 없는 경우에는 INSERT를 실행하여 이력을 추가하고 싶을 때 사용할 수 있다. 기본 문법은 아래와같다. MERGE INTO TEST_TABLE AS A USING (SELECT 1 AS DUAL) AS B ON (A..
MSSQL) NULL 값 함께 카운트 하기 한 컬럼 값을 기준으로, 해당 컬럼 값을 가지고 있는 행의 갯수를 구하고 싶을 때 COUNT함수를 사용한다. SELECT 컬럼, COUNT(컬럼) FROM 테이블명 GROUP BY 컬럼 일반적으로 이러한 이름으로 사용하게 되는데, 문제는 이랬을 때 아래 사진 처럼 NULL 값은 카운트 되지 않는다. (분명 STU_STAT 값이 NULL인 행이 있음에도 불구) 이럴 때는 CASE WHEN 컬럼 IS NULL THEN 'NULL' ELSE 컬럼 END 문법을 사용해주면 된다. 예시는 아래와 같다. SELECT STU_STAT, COUNT(CASE WHEN STU_STAT IS NULL THEN 'NULL' ELSE STU_STAT END) FROM MEMBER GROUP BY STU_STAT 실행해보면 잘 ..
MariaDB) 글 번호 정렬 row number() 사용 게시판과 같이 글 번호가 삽입된 채 리스트가 출력되는경우, 글 번호를 정렬해주어야하는 상황이 생긴다. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 이렇게 10개의 게시글을 생성한 후 3번 게시물을 삭제했을 때 1, 2, 4, 5, 6, 7 ,8 ,9, 10 이렇게 3번만 빠진 채로 글 번호가 매겨져있기 때문이다. 이것을 1, 2, 3, 4, 5, 6, 7, 8, 9 이렇게 번호를 다시 매기고 싶을 때? row number() 함수를 사용할 수 있다. 다만, 버전에 따른 제약이 있어서 mariaDB 10.2 버전 이상부터 사용가능하다. ----------------------------------------------------------------------------------------- [..
MySQL) 기본 쿼리문 정리글 제가 가장 많이 사용하는 기본적인 쿼리문을 정리한 글입니다. ---------------------------------------- ** 테이블 생성 create 테이블명(col int); ** 테이블(쿼리, 레코드) 조회 1. 전체 조회의 경우(테이블의 모든 필드(열)와 레코드(데이터) 조회) SELECT * FROM 테이블명; 2. 부분 조회의 경우(필요한 필드의 레코드만 조회 가능) SELECT 레코드값1, 레코드값2 FROM 테이블명; 3. 내림차순 정렬 후 조회 SELECT * FROM 테이블명 ORDER BY 컬럼 DESC; 4. 오름차순 정렬 후 조회 SELECT * FROM 테이블명 ORDER BY 컬럼 ASC; ** 테이블 구조 상세조회 ( field, type, null, key와 같..