SQL 35

Entity 제약조건

PRIMARY KEY와 UNIQUE 제약조건 비교둘 다 중복을 허용하지 않는 제약조건입니다. 하지만 다음과 같은 차이점이 있습니다.항목PRIMARY KEY (기본키)UNIQUE (교유 제약조건)중복 허용❌ 안 됨❌ 안 됨NULL 허용❌ 불가✅ 가능개수테이블당 1개만 가능여러 개 설정 가능용도테이블의 고유 식별자로 사용특정 칼럼의 중복 방지용자동 설정NOT NULL 자동 포함NOT NULL 아님 (따로 설정해야 함) PRIMARY KEY와 UNIQUE 설정 방법테이블을 만들 때 같이 설정하는 방법 (CREATE TABLE 내부에서)CREATE TABLE NOTICE ( ID NUMBER, TITLE VARCHAR2(300) NOT NULL, WRITER_ID VARCHAR2(..

SQL 2025.07.17

도메인 제약 조건

제약 조건이란?제약 조건(Constraint)은 데이터베이스에서 잘못된 값이 들어오지 않도록 막는 규칙입니다.그림의 흐름처럼 데이터베이스 설계는 다음과 같은 순서로 진행됩니다:그리고 그 과정에서 유효한 값만 허용되도록 제약 조건을 설정하게 됩니다.도메인 → 엔티티 → 릴레이션 도메인: 유효한 값의 범위도메인(Domain)은 속성(Attribute)에 들어올 수 있는 값의 허용 범위입니다.예시:학번: 0보다 큰 정수납입금: 0보다 크고 100만 원보다 작은 정수이름: 20자 이내의 문자열납입일: 2012년 이후 날짜즉, 데이터가 갖춰야 할 기본 조건을 도메인이라고 합니다. 도메인 제약 조건도메인에 맞지 않는 값이 들어오지 못하게 막는 제약 조건을 설정할 수 있습니다. 대표적인 것들이 다음과 같습니다:1)..

SQL 2025.07.17

데이터 딕셔너리

데이터 딕셔너리란?데이터 딕셔너리(Data Dictionary)는 Oracle 데이터베이스 내부에 존재하는 일종의 시스템 테이블 모음입니다.여기에는 사용자가 만든 데이터가 아니라, 시스템이 자동으로 생성하고 관리하는 정보(메타데이터)가 저장되어 있습니다. 데이터 딕셔너리에 저장되는 정보는?Oracle은 데이터베이스의 모든 구조와 구성 요소를 추적하기 위해 데이터 딕셔너리를 사용합니다.예를 들어 다음과 같은 정보들이 저장됩니다:사용자 계정 정보: 누구(ID)가 DB에 있는가?권한 정보: 각 사용자는 무엇을 할 수 있는가? (예: SELECT, INSERT 권한)오브젝트 정보:어떤 테이블, 뷰, 시퀀스, 프로시저가 존재하는가?제약 조건 정보:어떤 PK, FK, Unique 제약 조건이 있는가?함수/프로시저 ..

SQL 2025.07.17

View

전체 테이블 구성 이해하기MEMBER 테이블IDNAMENEWLEC뉴렉YJS유재석JUNG정형돈KANG강호동 NOTICE 테이블 (게시글)IDTITLEWRITER_ID1ORACLE 개요NEWLEC2SQL 구문NEWLEC3DML 사용하기NEWLEC4DML 사용하기DRAGON5DML 사용하기DRAGON ③ COMMENT 테이블 (댓글)IDCOMMENTNOTICE_ID1많은 도움~12정리를 잘하네요~13감사합니다.3 JOIN 순서 및 해석SELECT N.ID, N.TITLE, N.WRITER_ID, M.NAME, COUNT(C.ID) CNTFROM MEMBER MRIGHT OUTER JOIN NOTICE N ON M.ID = N.WRITER_IDLEFT OUTER JOIN COMMENT C ON N...

SQL 2025.07.17

UNION

JOIN으로 합치는 방법ID NAMENEWLEC 뉴렉NEWLEC 뉴렉NEWLEC 뉴렉ID TITLE WRITER_ID1 ORACLE 개요 NEWLEC2 SQL 구문 NEWLEC3 DML 사용하기 NEWLEC의미두 테이블 모두 NEWLEC이라는 ID 또는 WRITER_ID 값을 가지고 있음.이 두 테이블을 JOIN으로 연결하면, MEMBER의 각 행과 NOTICE의 각 행이 곱해지듯 연결됨.즉, MEMBER에 NEWLEC이 3번 반복되고, NOTICE에도 NEWLEC이 3개 있으니, 결과적으로 3x3 = 9개의 행이 만들어짐.SQLSELECT M.ID, M.NAME, N.TITLEFROM MEMBER MJOIN NOTICE N ON M...

SQL 2025.07.17

ORCAL JOIN

JOIN은 어디서 사용되는가?JOIN은 FROM절에서 사용되는 연산자입니다.두 개 이상의 테이블을 연결해서 논리적으로 하나의 테이블처럼 만들기 위해 사용되며,JOIN의 종류에 따라 결과가 달라집니다.SELECT ...FROM A JOIN B ON 조건 ANSI 방식 vs Oracle 방식방식JOIN을 사용하는 위치예시 문법ANSI 방식FROM A JOIN B ON 조건FROM MEMBER M INNER JOIN NOTICE N ON M.ID = N.WRITER_IDOracle 방식FROM A, B WHERE 조건FROM MEMBER M, NOTICE N WHERE M.ID = N.WRITER_IDANSI 방식이 최신이고, 가독성이 좋으며, OUTER JOIN도 명확히 표현할 수 있어 대부분 선호됩니다...

SQL 2025.07.17

SELF JOIN

자기 조인(Self Join)이란?자기 조인은 하나의 테이블이 자기 자신과 조인하는 것을 말합니다. 데이터가 계층적 관계를 가지고 있거나 자기 자신 안에 포함 관계를 나타낼 때 유용하게 사용됩니다.예) 직원 테이블에서 사원과 그 사원의 상사 정보를 함께 조회할 때 테이블 구조 예시아래와 같은 MEMBER 테이블이 있다고 가정합니다.IDNAMEBOSS_IDdragon손오공kingkim김두한kingyoo유재석yongkang강호동yongnewlec뉴렉nullking김세종nullyong김용만null여기서 BOSS_ID는 해당 사원의 상사의 ID를 나타냅니다. 즉,손오공(dragon)의 상사는 김세종(king)유재석(yoo)의 상사는 김용만(yong) 자기 조인 쿼리 분석SELECT M.*, ..

SQL 2025.07.17

OUTER JOIN을 이용한 게시글 목록 조회

SQL에서는 여러 테이블의 데이터를 연결해서 보다 풍부한 정보를 만들 수 있습니다. 이때 사용하는 것이 바로 JOIN입니다. 내부 조인(INNER JOIN): 기본 개념과 필드 충돌문제 상황: 동일한 필드명(ID, NAME 등)이 여러 테이블에 존재SELECT NOTICE.ID, NOTICE.NAME, MEMBER.NAMEFROM MEMBERINNER JOIN NOTICE ON MEMBER.ID = NOTICE.WRITER_ID;NOTICE 테이블과 MEMBER 테이블에 둘 다 ID, NAME 필드가 존재하여 충돌 발생 가능성 있음해결책: 테이블명을 붙여서 정확히 지정 테이블 별칭(Alias)을 사용하여 SQL 가독성 향상SELECT N.ID, N.WRITER_ID, M.NAMEFROM MEMBER M..

SQL 2025.07.16

OUTER JOIN

OUTER JOIN의 개념과 종류OUTER JOIN은 참조키가 일치하지 않는 행도 포함시키는 조인입니다.LEFT OUTER JOIN-- LEFT 테이블 기준: MEMBER 테이블에 모든 데이터를 유지SELECT *FROM MEMBERLEFT OUTER JOIN NOTICEON MEMBER.ID = NOTICE.WRITER;MEMBER 테이블의 모든 데이터를 기준으로,일치하는 NOTICE가 없으면 NULL로 표시됩니다.예시 결과:NEWLEC뉴렉1ORACLE 개요NEWLECNEWLEC뉴렉2SQL 구문NEWLECNEWLEC뉴렉3DML 사용하기NEWLECYJS유재석NULLNULLNULLJUNG정형돈NULLNULLNULLKANG강호동NULLNULLNULL RIGHT OUTER JOIN-- RIGHT 테이블 기준..

SQL 2025.07.16

INNER JOIN

데이터베이스를 사용할 때 가장 중요한 개념 중 하나는 바로 무결성(Integrity)과 관계(Join)입니다. 데이터의 무결성 (Data Integrity)DBMS(Database Management System)는 데이터를 중앙에서 일관되게 관리해줍니다. 각각의 사용자(컴퓨터)가 독립적으로 데이터를 저장한다면 중복, 불일치, 데이터 오류가 발생하기 쉽습니다.중앙 데이터베이스(DB)를 통해 모든 정보가 연결되어 있다면 다음과 같은 장점이 있습니다:등록금 정보, 학생 정보, 도서 대여 정보 등이 학생 번호(학번)를 통해 서로 연동됨변경 시 하나의 데이터만 수정하면 전체 연관 데이터가 자동으로 반영됨무결성이 보장되어 데이터 정확성과 일관성이 높아짐📌 예시:학번 234 → 홍길동, 등록금 231,000원,..

SQL 2025.07.16