본문 바로가기

반응형

Data/MariaDB

(12)
DB] JOIN JOIN 이란? - 둘 이상의 테이블을 연결하여 검색하는 방법 - 두 테이블을 조인을 하려면 최소 하나의 공통된 컬럼이 있어야 한다. - 그래서 일반적으로 PK 와 FK 를 사용하여 조인에 활용 한다. JOIN 의 방법 1) cross join : 거의 안쓴다. 2) equi join : 제일 많이 사용 3) non-equi join : 안쓴다. 4) self join : 거의 안쓴다. 5) outer join : 많이 사용 한다. 1. CROSS JOIN - 카다시안 곱을 수행한다. - 두 개의 테이블을 곱한 행을 수행한다. FROM [table A] CROSS JOIN [table B]; emp 테이블의 ename 행(row)이 11개 dept 테이블의 deptno 행(row)이 5개 11 x 5 =..
DB] IN / EXSITS / ANY / ALL / limit IN & EXISTS 1. IN - '=' 비교만 가능, OR 조건의 검색 결과 내용을 가져온다. - 서브쿼리가 먼저 실행된다. 2. EXISTS - 기본적으로 IN과 같으나 참 / 거짓 반환 - 메인쿼리 비교조건이 서브쿼리의 결과 중에 '만족하는 값이 하나라도 있으면 참(1)/거짓(0) 반환 - 메인쿼리가 먼저 실행된다. 첫번째 쿼리문의 결과는 모든 값이 다 나왔다. 서브쿼리에 해당하는 값이 있다 => exist를 거쳐 '1'을 반환 => 결국 두번재 쿼리문과 같아진다. where 절에 1이 들어가면 참 => 모든 값을 보여준다. where 절에 0이 들어가면 거짓 => 아무 값도 보여주지 않는다. EXISTS 사용 방법 1) 메인쿼리가 먼저 실행된다. 2) emp 의 모든 값을 가져오고(메인쿼리) 등..
DB] 서브쿼리 , 상하관계쿼리 서브쿼리란? 쿼리 안의 쿼리 사전에 추출된 내용에서 재검색 하거나, 검색된 내용을 가상 컬럼을 만들어 추가할 수 있음 가져온 데이터를 재정제 하기 위해 사용한다. 서브쿼리는 특별한 문법이 없다. 해결해야 할 문제를 단계별로 적어보고, 테이블 간의 연관관계( 공통점)를 찾아보고 쿼리문을 적어보면 된다. 문제1) han 의 근무 부서 이름을 찾아라. 두 개의 쿼리문을 서브쿼리로 합쳐본다. 위의 쿼리문 실행과 아래 쿼리문 실행의 결과가 같다. 문제2) 부서위치가 LA 이거나 BOSTON 인 부서에 속한 사람들의 이름과 직책은? ALL / EXSITS ALL : 서브쿼리의 결과 중에서 모든 값이 일치하면 참 반환 EXSITS : 기본적으로 IN과 같으나 참/거짓 반환 문제3) sales 부서에 근무하는 사원 데..
DB] 제약 조건(constraint) 2 - 참조 제약 조건 / 연계 참조 무결성 제약 조건 / 유니크 제약 조건 / 체크 제약 조건 제약 조건은 테이블에 저장되는 데이터를 제약하는 특정 규칙으로 컬럼에 데이터를 넣을 경우 특정한 조건을 만족시켜야 할 경우에 사용한다. 즉, 지정된 조건에 맞지않으면 데이터 입력이 안되기 때문에 데이터의 정확성이 유지된다. 기본 키 제약 조건 ( PK ) - primary key NOT NULL 참조 제약 조건 (외래키, 참조키 , FK) - foreign key references 연계 참조 무결성 제약 조건 - on delete cascade 유니크 제약 조건 ( 유니크 키, 후보 키) - unique 체크 제약 조건 - check 1. 참조 제약 조건 - 외래 키, 참조 키 라고도 부른다. FOREIGN KEY (FK) - 외래 키로 연결되어 있으면 부모 - 자식 관계가 된다. - 따라서 부모 테이..
DB] 트랜젝션(TRANSACTION) Transaction database 에서 사용되는 쪼갤 수 없는 업무 처리의 단위. ALL or Nothing, 작업 내부의 과정이 하나라도 잘못되면 모두 취소되어야 한다. 예시) 5000만원을 송금하는 과정은 '5000만원을 A의 계좌에서 출금'하고 'B의 계좌에 입금'하는 2번의 과정으로 나눠져있다. 만약 5000만원이 'A의 계좌에서 출금'하는 것 까진 성공했으나 'B의 계좌에 입금'하는 것을 실패하게 되면 그 5000만원은 어디로 갔는지 알 수 없게 된다. 따라서 5000만원을 'A에게서 출금'하는 것과 'B에게 입금'하는 것은 트랜젝션으로 묶어 한 번에 처리해야 안전하다. 이 때 사용되는 것이 rollback 과 commit 이다. 입금 실패 하면 출금까지 rollback, 출금과 입금 모두 ..
DB] 제약 조건(constraint) 1 - 기본 키 제약 조건 / NOT NULL 제약 조건은 테이블에 저장되는 데이터를 제약하는 특정 규칙으로 컬럼에 데이터를 넣을 경우 특정한 조건을 만족시켜야 할 경우에 사용한다. 즉, 지정된 조건에 맞지않으면 데이터 입력이 안되기 때문에 데이터의 정확성이 유지된다. 기본 키 제약 조건 ( PK ) - primary key NOT NULL 참조 제약 조건 (외래키, 참조키 , FK) - foreign key references 연계 참조 무결성 제약 조건 - on delete cascade 유니크 제약 조건 ( 유니크 키, 후보 키) - unique 체크 제약 조건 - check 1. 기본 키 제약 조건 (Primary Key, PK) - 테이블 당 1개만 존재 - 중복 허용 안함, NULL 허용 안함 - 한 개의 컬럼에 지정하는 것이 일반적이지만..
DB] DML 2 - SELECT DML (Data Manipulation Language) 데이터 조작어 : 데이터베이스의 테이블에 들어있는 데이터를 삽입 / 수정 / 삭제 / 조회 하는 명령어 INSERT : 데이터 삽입 UPDATE : 데이터 수정 DELETE : 데이터 삭제 UPSERT : INSERT or UPDATE SELECT : 데이터 조회 SELECT : 데이터 조회 1. 특정 컬럼 조회 SELECT * FROM [테이블 명]; -- 특정 테이블의 모든 컬럼을 조회한다. 1) 산술표현, 별칭(ALIAS) salary * 12 또는 salary / 10000 등과 같이 산술표현 가능 복잡한 컬럼명의 경우 별칭을 줄 수 있다. [복잡한 컬럼명] AS [별칭] 2) 문자열 합치기 (CONCAT) CONCAT(합칠, 컬럼, 문자..
DB] DML 1 - INSERT / UPDATE / DELETE / UPSERT DML (Data Manipulation Language) 데이터 조작어 : 데이터베이스의 테이블에 들어있는 데이터를 삽입 / 수정 / 삭제 / 조회 하는 명령어 INSERT : 데이터 삽입 UPDATE : 데이터 수정 DELETE : 데이터 삭제 UPSERT : 입력되는 KEY가 중복일 경우 UPDATE, 아닐 경우 INSERT SELECT : 데이터 조회 1. 데이터 삽입 (INSERT) INSERT INTO [테이블명] ([컬럼명]) VALUES ([컬럼에 해당하는 값]); 각 컬럼에 해당하는 값들을 컬럼 순서대로 써준다. 테이블의 모든 컬럼에 데이터를 넣어줄 땐 컬럼 자리에 * 을 써주면 된다. 하지만 DB는 혼자 보는 것이 아니기 때문에 컬럼명을 모두 써주는 것이 좋고, * 을 사용하면 valu..

728x90