SQL 40

[SQL/실습] 트랜잭션의 활용

트랜잭션의 활용 -- 트랜잭션 모드 (기본) : 자동 커밋 트랜잭션 update employee set salary = salary + commission where eno='103' ; -- 트랜잭션 모드 : 명시적 트랜잭션 start transaction; -- 명시적 트랜젝션 시작 -- delete from employee; -- insert into employee(eno,ename,job,manager,hiredate,salary,commission,dno) -- values('117','e17','chief','101','2020-11-02',1500,0,30); -- rollback; -- 취소하기 (되돌리기) -- commit; -- 반영하기 커미션하면 롤백이 안됨 insert into e..

Programming/SQL 2020.12.17

[SQL] 트랜잭션 제어문 (TCL) / 트랜잭션 모드

트랜잭션 제어문 (TCL) COMMIT -- 트랜잭션의 마지막 명령어가 수행되었음을 나타냄 -- 트랜잭션에 의한 변경을 확정 -- COMMIT 된 트랜잭션은 철회가 불가능함 -- COMMIT 명령문 실행하기 전에 하나의 트랜잭션 변경한 결과를 다른 -- 트랜잭션에서 접근할 수 없도록 방지하여 일관성을 유지함 ROLLBACK -- 트랜잭션의 변경을 취소하고 트랜잭션 종료 SAVEPOINT -- 현재 트랜잭션에서 ROLLBACK 시킬 위치 지정 -- 대규모 트랜잭션 ( 복수개의 명령어들로 이루진 트랜잭션 ) 에서 오류 발생이 전체 트랜잭션을 취소 시키는 것이 큰 부담이 될 수 있음 -- 실패한 일정부분만 취소 시키도록 함 ㅁ 트랜잭션 모드 1. 자동 커밋 트랜잭션 -- 하나의 명령문이 하나의 트랙잭션이 됨 ..

Programming/SQL 2020.12.17

[SQL] 트랜잭션(Transaction) - 트랜잭션의 활용 / 특성 / ACID

트랜잭션 : 논리적인 일의 단위 기본 설정 하나의 SQL 은 하나의 트랜잭션임 여러 개의 SQL 문들이 합쳐져서 하나의 트랜잭션이 될 수도 있음 트랜잭션의 활용 동시성 -- 대규모 데이터베이스를 수백 , 수천 명 이상의 사용자들이 동시에 접근함 -- 많은 사용자들이 동시에 데이터베이스의 서로 다른 부분 또는 동일한 부분을 접근하면서 데이터베이스를 사용함 동시성 제어 -- 동시에 수행되는 트랜잭션들이 데이터베이스에 미치는 영향 = 이들을 순차적으로 수행하였을 때 데이터베이스에 미치는 영향과 같도록 보장함 -- 다수 사용자가 데이터베이스를 동시에 접근하도록 허용하면서 데이터베이스의 일관성을 유지함 -- 여러 사용자나 여러 응용 프로그램들이 동시에 수행되어도 서로 간섭하지 못하도록 보장함 -> 트랜잭션 단위 ..

Programming/SQL 2020.12.17

[SQL] 다양한 중첩 질의문 - 다중 컬럼 서브쿼리 / 상호 연관 서브쿼리 / 중첩질의문 주의점

다중 컬럼 서브 쿼리 : 서브 쿼리의 결과가 여러 개의 속성들로 구성되어 주쿼리의 조건과 비교하는 서브 쿼리임 복수 개의 서브 쿼리들로 구성됨 메인 쿼리와 서브 쿼리의 비교 대상 칼럼을 분리하여 개별적으로 비교한 후 AND 연산에 의해 최종 결과를 출력함 예) 사원번호 101인 사원과 동일 부서에 동일한 급여를 지급받는 직원 구하기 select eno, ename, salary, dno from employee where dno in (select dno from employee where eno=101) and salary in (select salary from employee where eno=101) 상호 연관 서브 쿼리 메인 쿼리절과 서브 쿼리 간에 검색 결과를 교환하는 서브 쿼리 메인 쿼리와 ..

Programming/SQL 2020.12.17

[SQL] 중첩질의문 - 단일행 서브쿼리 / 다중행 서브쿼리 / 비교연산자

중첩질의문 중첩 질의문 : 하나의 SQL 문의 결과를 다른 SQL 문에 전달함 : 두 개의 SQL 문을 하나의 SQL 로 처리함 조인 질의문과 중첩 질의문 : 이론적으로 중첩 질의문은 조인 구문과 표현능력이 동일함 중첩질의문의 표현 : SQL 문 안에 SQL 문이 포함되어 있음 예) select dname from department where department.dno = (select dno from employee where employee.eno=103); 단일행 서브 쿼리 : 서브 쿼리의 결과로 하나의 튜플만이 반환 됨 서브 쿼리의 검색 조건이 후보키에 연관되어 있을 경우가 많음 예) 사원 번호 110 번과 같은 부서에 근무 하는 사원들의 사원 번호 와 부서번호 검색 사원번호가 기본키 임으로 사..

Programming/SQL 2020.12.17

[SQL/실습] 테이블 조인 - 연습문제 풀어보기 (답안)

답안 -- employee와 department 테이블을 조인하여 부서번호, 부서명, 이름, 급여를 급여가 높은 순으로 출력하라 select e.dno, dname, ename, salary from employee e, department d order by salary desc ; -- 이름이 e15인 사원의 사원번호, 급여 , 부서명을 급여가 낮은 순으로 출력하라 select eno, salary, dname from employee e, department d where ename='e5' ; -- 사원번호가 107인 사원의 사원명, 매니저, 부서명, 지역을 출력하라 select ename, manager, dname, loc from department ,employee where eno='10..

Programming/SQL 2020.12.17

[SQL] 조인 질의문 - 간단한 조인, 다양한 조인 ( 카티션프로덕트 / 동등조인 / 자연조인 / 쎄타조인 / 셀프조인 / 외부조인 )

조인 하나의 SQL 질의문에 의해서 여러 테이블에 저장된 데이터를 한번에 조회할 수 있는 기능 두 개 이상의 테이블을 ‘결합’ 한다는 의미 간단한 조인 -- FROM 절에 조인에 참여하는 두 테이블을 기록함 -- 콤마 (,) 로 구분함 -- WHERE 절에 조인 조건을 기술함 예) 사번이 103 인 사원의 부서명 을 알고 싶을 때 사원 정보 : EMPLOYEE 부서 정보 : DEPARTMENT 조인 조건 EMPLOYEE.DNO = DEPARTMENT.DNO => 두 테이블을 dno 값으로 연결한다는 뜻 select dname from employee, department where eno=103 and employee.dno=department.dno; 조인 작성시 유의사항 컬럼 이름의 모호성 서로 다른..

Programming/SQL 2020.12.17

[SQL] 데이터 삽입과 변경 - insert / update / delete

insert : 테이블에 데이터를 추가하기위한 데이터 조작어 단일행 입력 INSERT INTO 테이블명 [( 속성명,…, 속성명 )] VALUES ( 값,…, 값 ) 테이블명에 명시한 속성에 VALUES 절에 지정한 값을 입력함 테이블명에 속성을 명시하지 않으면 테이블 생성시 정의한 컬럼 순서와 동일한 순서로 입력 예) EMPTEST 테이블에 사원 정보( 50, “홍길동”, “staff”, NULL, 2012 -10-01, 500, 30, 10 ) 삽입 테이블 만들기 create table emptest( eno int, ename varchar(20), job varchar(20), manager int, hiredate datetime, salary int, commission int, dno int..

Programming/SQL 2020.12.17

[SQL/Error] (1452): Cannot add or update a child row: a foreign key constraint fails

(1452): Cannot add or update a child row: a foreign key constraint fails 참조테이블에 없는 값을 추가해서 발생한 오류 참조 무결성에 따라서 부모키에 해당하는 값만 넣을 수 있음. 참조하는 테이블에 데이터를 먼저 추가한 후, 참조받는 테이블에 데이터를 추가하니 오류해결. (외래키로 연결한 값을 동일하게 줘야함) 참조 : reeme.tistory.com/26

Programming/SQL 2020.12.17

[SQL/실습] 데이터 검색 - 연습문제 풀어보기 2 (답안)

테이블 만들고 튜플 삽입하기 사원(emp) 테이블만들기 use example; create table emp( empno int primary key, ename varchar(10), job varchar(10), mgr int, hiredate datetime, sal int, comm int, deptno varchar(2) ); 사원(emp) 테이블에 튜플 삽입 -- 컨트롤+ 쉬프트+ 엔터 > INSERT 한꺼번에 하기 insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values('7369','SMITH','CLERK','7902','1980-12-17','800',NULL,'20'); insert into emp(empno,ename..

Programming/SQL 2020.12.16