반응형

All 62

[SQL 활용] 10. 중첩 질의문

10. 중첩 질의문 중첩 질의문의 개요 중첩질의문은 조인구문과 사실 똑같은데 어떤 사람들에겐 조인보다 중첩 질의문으로 생각하는게 더 편할수도 있다. 중첩 질의문으로 인해 sql의 파워가 훨씬 증가하진 않지만, 표현능력이 향상된다. 단일행 서브 쿼리 : 검색조건이 후보키와 연관되있을경우 한 튜플당 하나밖에 없는 고유값이기때문에 한개의 튜플만 나올수밖에 없음. 다중행 서브쿼리의 경우 피연산자의 타입이 맞지 않아서 일반적인 비교 연산자를 사용할 수 없음. 사원번호가 기본키니까 = 연산자를 사용해도 문제가 없다. 단일행 서브쿼리이기때문. 봉급이 500 이상인 사원과 같은 부서에서 근무하는 사원들은 여러명은 여러명이라 다중행이고, 그래서 비교연산자(=)를 쓸 수 없다. = 대신 IN을 쓰면 된다. 20번 부서 사..

[SQL 활용] 09. 조인 질의문

09. 조인 질의문 조인 Employee에 대해 E라는 별명을, Department에 대해 D라는 별명 사용. 다양한 조인 구문 ex) E.DNO = D.DNO 자연 조인 : 두 테이블이 공통으로 가진 속성을 기준으로 동등조인을 한다. 같은 테이블을 다른 별명으로 지정해주면 두 개의 다른 테이블로 인식한다. 사원은 다 나오고 그 중에 관리자가 있는 애들은 관리자 이름도 같이 나오게 하려고.

[SQL 활용] 08. 트랜잭션

08. 트랜잭션 트랜잭션 트랜잭션 제어문(TCL) commit문을 만나기 전까지 모든 명령문을 하나의 트랜잭션으로 여김. dno가 10번인걸 지운 후 dno가 null인 새로운 튜플을 삽입. dno가 null값이 안되게 설정했으니 오류가 뜸. @@ERROR에 오류가 저장되므로 혹시 @@ERROR이 0이 아니면, 즉 어떠한 에러가 저장되있다면 롤백을 하고, 그렇지 않다면 commit을 해라. savepoint까지만 rollback하도록. 저장점 : SAVE TRAN svpoint1 ROLLBACK TRAN svpoint1을 통해 그 앞의 쿼리 INSERT는 철회된다. ROLLBACK TRAN 이후의 INSERT는 수행된다.

[SQL 활용] 07. 데이터 삽입과 변경

07. 데이터 삽입과 변경 INSERT 절 INTO emptest 뒤에 속성을 명시해주지 않았으므로 emptest의 모든 속성을 쓴다고 뜻함. 대신, eno와 name을 제외한 모든 속성은 null. SELECT의 결과물을 새로운 테이블로 만든다. 하나의 명령문으로 여러개의 튜플 삽입 가능 UPDATE와 DELETE emptest에 dname이 없기때문에 department 테이블에서 dname이 accounting인 튜플의 dno가 emptest의 dno랑 같은 튜플을 삭제한다.

[SQL 활용] 06. 데이터 검색

06. 데이터 검색 간단한 데이터 검색 where절이 없으면 조건이 없다. chief가 여러번 나오게 됨. 복잡한 데이터 검색 null값인 튜플들이 결과로 나오는게 아니라 null이어도 거짓이니 전부 거짓이 된다. 즉, 결과가 나오지 않는 문제가 생기게 된다. 이럴경우 null값일경우 참이 되는 연산자가 필요했다. 이게 바로 Is null 연산자. null값에 대해 참을 반환한다. like 대신 DNAME = ‘H%n’를 쓰게되면 문자 자체가 H%n인것을 찾게됨. 타이브레이크 : 어떤 기준이 동등할경우 새로운 기준을 추가

[SQL 활용] 03. SQL의 개념과 T-SQL

03. SQL의 개념과 T-SQL SQL의 개념 나 : 학번이 100번인 학생 이름이 무엇인가요? (절차는 코딩할 필요가 없음) DBMS : 알아서 가장 효율적인 방식으로 처리해준다. 관계대수식은 폐쇄성이 있기떄문에 관계대수식의 결과물또한 중복을 허용하지 않는 튜플들의 집합이 나오게 되었다. 근데 이런 중복 튜플이 존재하는지 안하는지, 존재한다면 어디에 존재하는지 알아내는것은 튜플을 정렬하는것과 같다. 그래서 관계대수식을 활용할경우 결과생성시 시간이 너무 오래걸리게 된다. 하지만 SQL문의 결과는 튜플의 백이다. 백에서는 튜플간 순서는 없으나 중복은 허용한다. sql문 결과에 중복된 튜플의 여부는 체크하지 않고 보여주기 때문에 속도가 관계대수식보다 더 빠르다. T-SQL

[SQL 활용] 02. 관계형 데이터 모델

02. 관계형 데이터 모델 관계형 데이터 모델의 구조와 연산 속성들간의 순서는 상관 없다. 원자 : 더이상 쪼개지지 않는 물질의 최소 단위. 즉, 속성은 더이상 쪼개지지 않는다. 모든 연산자가 폐쇄성질을 가지고있진 않지만 관계대수의 연산자들은 릴레이션에 대해 폐쇄성질을 가지고 있다. 즉, 어떤 릴레이션에 관계대수 연산자를 접목하면 결과 또한 릴레이션이다. 프로젝트 연산자가 폐쇄성질이 있다는건 어떤 릴레이션에 프로젝트 연산자를 대입하면 그 결과는 중복된 튜플이 없는 릴레이션이 반환된다는 것이다. 수평적인 셀렉트와 수직적인 프로젝트를 활용하게되면 내가 어떤 조건을 만족하는 튜플의 원하는 속성값을 찾을 수 있게됨. 예제 : 학번이 300인 학생의 (셀렉트) 이름과 성적 속성을 보여라. (프로젝트) 앞의 셀렉트..

반응형