전체 글 102

[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/실습] 테이블 조인 - 연습문제 풀어보기 (문제)

* 첨부파일에 있는 데이터로 테이블로 만든 후 아래 문제를 푸세요 * 단 각 테이블의 컬럼의 데이터 유형은 데이터를 참조해서 설정하시오. 연습문제 -- employee와 department 테이블을 조인하여 부서번호, 부서명, 이름, 급여를 급여가 높은 순으로 출력하라 -- 이름이 e15인 사원의 사원번호, 급여 , 부서명을 급여가 낮은 순으로 출력하라 -- 사원번호가 107인 사원의 사원명, 매니저, 부서명, 지역을 출력하라 -- A회사가 이번에 새로운 부서에 직원을 채용한다. 이때 새로운 부서의 부서명, 지역을 출력하되 사원번호를 몇번으로 할 것인지에 대해서도 조사하라 답안 : reeme.tistory.com/43

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

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

* 첨부파일에 있는 데이터로 테이블로 만든 후 아래 문제를 푸세요 * 단 각 테이블의 컬럼의 데이터 유형은 데이터를 참조해서 설정하시오. 연습문제 1. 부서번호가 10번인 부서의 사람 중 사원번호, 이름, 월급을 출력하세요 2. 사원번호가 7369인 사람 중 이름, 입사일, 부서번호를 출력하세요. 3. 이름이 ALLEN인 사람의 모든 정보를 출력하세요. 4. 입사일이 83/01/12인 사람의 이름, 부서번호,월급을 출력하세요. 5. 직업이 MANAGER가 아닌 사람의 모든 정보를 출력하세요. 6. 이름이 K로 시작하는 사람보다 높은 이름을 가진 사람의 모든 정보를 출력하세요. 7. 입사일이 81/04/02 보다 늦고 82/12/09 보다 빠른 사원의 이름, 월급, 부서번호를 출력하세요. 8. 이름 중 S..

Programming/SQL 2020.12.16

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

테이블 만들고 튜플 삽입하기 use example; 부서(department) 테이블 create table department ( dno varchar(2) primary key, dname varchar(15), loc varchar(10) ); 부서(department) 테이블에 튜플 삽입 -- 단축키 사용 (ctrl + shift + enter) insert into department values('10','Accounting','Seoul'); insert into department values('20','Human','Incheon'); insert into department values('30','Sales','Yungin'); insert into department values('4..

Programming/SQL 2020.12.16