sql기초 22

[SQL] 집합연산자 - union / intersect / except / union all

집합연산자 : 테이블을 구성하는 튜플 집합에 대한 테이블의 부분 집합을 결과로 반환하는 연산자 UNION 합집합 INTERSECT 교집합 EXCEPT 차집합(Oracle 에선 MINUS 로 사용 ) UNION 예) 부서 번호 10 인 사원들과 직급이 staff 인 사원들 검색 (select * from employee where dno=10) union(select * from employee where job='staff'); -- 결과정렬을 하고싶다면 쿼리끝에 해주면 됨. (select * from employee where dno=10) union(select * from employee where job='staff') order by salary; 예) null값을 넣을때 select eno, ..

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] 조인 질의문 - 간단한 조인, 다양한 조인 ( 카티션프로덕트 / 동등조인 / 자연조인 / 쎄타조인 / 셀프조인 / 외부조인 )

조인 하나의 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/실습] 데이터 검색 - 연습문제 풀어보기 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

[SQL] 복잡한 데이터 검색 - ORDER BY 절

ORDER BY ORDER BY column_name ASC/DESC ASC : 오름차순으로 , 기본값 ( 생략가능 ) DESC : 내림차순 , 생략불가능 예)봉급 (Salary) 기준 내림차순으로 사원들의 이름 , 봉급 , 부서 번호 출력 select ename, salary, dno from employee order by salary desc; 다중 속성 정렬 예) 봉급(SALARY) 기준 내림차순으로 사원들의 이름, 봉급, 부서번호 출력 만약, 봉급이 같은 경우에는 부서번호가 낮은 순으로 (오름차순) 정렬 select ename, salary, dno from employee order by salary desc, dno asc;

Programming/SQL 2020.12.16

[SQL] 복잡한 데이터 검색 ( between / in / is null )

BETWEEN a AND b : 검색 조건의 상한과 하한을 지정함 예) 속성 X 가 10 보다 크거나 같고 50 보다 작거나 같음 X>=10 AND X COMMISSION항목의 값이 null값이어도 결과를 도출해내지 못함 이럴경우 is null을 이용한다 select * from employee where commission is null; null값이 아닌 튜플들을 찾는 방법 is not null을 사용함 예) commission의 값이 null이 아닌 튜플을 찾아라 select * from employee where commission is not null;

Programming/SQL 2020.12.16