전체 글 160

[Oracle] PK, FK

*** PK와 FK의 관계를 가진 테이블을 생성하기 1) 생성은 부모테이블 → 자식테이블 2) 삭제와 수정은 자식테이블 → 부모테이블 ** 부모테이블 생성하기 drop table members; create table members ( seqno number constraints member_seq_pk primary key, user_id varchar2(10) constraints member_id_uq unique, user_name varchar2(20) constraints member_name_nn not null, birthday date constraints member_birthday_nn not null, gender char(1) constraints member_gender_ck c..

Oracle 2024.02.13

[Oracle] 시퀀스

*** 시퀀스 (Sequence) - 자동 일련번호 생성기 - 시퀀스를 사용하게 되면 다음의 번호를 요청해서 값을 받을 수 있다. - 기본값은 1부터 시작 1씩 증가 - 시퀀스의 컬럼 참조 변수 1) 시퀀스명.nextval : 다음 번호 생성 2) 시퀀스명.currval : 마지막으로 생성한 값이 얼마인지 확인 -- 증가 create sequence product_seq increment by 5 start with 5 maxvalue 1000; -- 감소 create sequence product_seq increment by -5 start with 1000 minvalue 100; drop sequence product_seq; create sequence product_seq; select pro..

Oracle 2024.02.13

[Oracle] DDL

*** DDL - 관계형 데이터베이스의 객체를 조작하는 명령문 - 테이블, 시퀀스, 뷰, 시노님, 인덱스 등이 있다. - create, alter, drop - 테이블에는 5개의 제약조건이 있다 (PK, FK, NN, UQ, CK) - default : 기본값으로 저장되도록 함 create table 테이블명 ( 컬럼명 데이터타입 제약조건 ... ); -- 테이블 생성하기 create table fitness ( userid varchar2(50) constraints members_id_PK primary key, username varchar2(50) constraints members_name_NN not null, gender char(1) constraints members_gender_CK c..

Oracle 2024.02.13

[Oracle] Join

-- 2024년 2월 2일(금) *** 조인(Join) - 둘 이상의 테이블들을 결합하여 데이터를 조인하는 것 - 일반적으로 PK와 FK의 관계를 갖고 있는 테이블을 통해 검색을 한다. - 관계형 데이터베이스의 가장 큰 장점이면서 가장 중요한 핵심 기능이다. - 조인을 하는 이유는 데이터의 무결성을 유지하기 위하여 테이블을 정규화하는 작업으로 인해 둘 이상으로 나뉘어진 정보를 조회하기 위한 목적을 가지고 있다. ** Cross Join(=카르테시안 조인) : A x B -- 직원이름, 월급, 부서명 select e.first_name, e.salary, d.department_name from departments d, employees e; ** EQUI Join : PK와 FK가같아야 조인 처리된다 ..

Oracle 2024.02.13

[Oracle] 서브쿼리

*** 서브쿼리 (Sub Query) - 쿼리 문장 안에 다른 쿼리가 포함된 것 - 서브쿼리, 메인쿼리 1) 메인쿼리 - 실행의 결과가 조회되는 쿼리 - 서브쿼리에 의해 실행된 쿼리문의 결과에 의해 ㅔ인쿼리가 실행된다 2) 서브쿼리 - 메인쿼리의 안쪽에 위치한 쿼리 - 서브쿼리의 실행 결과가 메인쿼리의 조건이나 결과로 사용된다 - 서브쿼리에서는 ORDER BY절 사용 불가 - 서브쿼리의 사용 위치 * WHERE절 : 값의 결과가 1개로 나오는 결과일 경우 (여러개도 가능) * HAVING절 : 메인쿼리에서 그룹행 함수를 사용하고 그룹에 대한 조건을 서브쿼리로 사용가능 * FROM절 * SELECT절 * INSERT 명령의 INTO절 * UPDATE 명령의 SET절 - 서브쿼리의 종류 단일행 서브쿼리 : ..

Oracle 2024.02.13

[Oracle] 오라클 함수

*** 함수(function) - 질의문과 함께 사용하여 강력하게 처리할 수 있는 기능 - 함수의 종류 1) 단일행 함수 : 각각의 레코드에 기능을 적용시키는 함수 2) 그룹행 함수 : 특정 조건에 맞게 레코드를 묶어서 기능을 적용시키는 함수 *** 단일행 함수 1) 문자열을 처리하는 함수 - lower(문자열) : 영문자를 소문자로 변경 - upeer(문자열) : 영문자를 대문자로 변경 - initcap(문자열) : 영문자를 첫글자만 대문자, 나머지 소문자로 변경 - concat(문자열1, 문자열2) : 문자열 결합 - substr(문자열, 위치) : 문자열에서 지정된 위치 위의 모든 문자열을 반환 - substr(문자열, 위치1, 개수) : 문자열에서 지정된 위치1 ~ 개수 사이의 문자열을 반환 (인..

Oracle 2024.02.13

[Oracle] 오라클 집합

-- 2024년 2월 1일(목) -- SELECT로 질의된 결과를 하나의 집합으로 인식해서 집합연산을 하는 것 -- 합집합(UNION), 교집합(INTERSECT), 차집합(MINUS) *** 교집합(Intersect) select employee_id, first_name from employees where employee_id in (145, 147, 158) intersect select employee_id, first_name from employees where first_name like 'A%'; *** 차집합(Minus) select employee_id, first_name from employees where employee_id in (145, 147, 158) minus sele..

Oracle 2024.02.13

[Oracle] 오라클 연산자

*** SQL 연산자와 LIKE 연산자 -- 급여가 5000 이상 10000 이하인 직원의 사원번호, 이름, 급여, 직급을 조회하시오. select employee_id, first_name, salary, job_id from employees where salary between 5000 and 10000; -- 부서번호가 10이거나 50인 부서에 속한 직원들의 이름과 부서번호를 조회 select first_name, department_id from employees where department_id in (10, 50); -- 부서번호가 10이거나 50인 부서가 아닌 직원들의 이름과 부서번호를 조회 select first_name, department_id from employees where ..

Oracle 2024.02.13

[Oracle] 오라클 기초

*** SQL(Structed Query Language) - DB에 접근해서 처리하는 명령어들 - 국제 표준 - 명령어의 종류 1) DLL : 객체를 다루는 명령 Create(생성), Alter(변경), Drop(삭제) 2) DML : 테이블의 레코드를 다루는 명령 Insert(변경), Update, Delete, Select 테이블, 유저, 시노님, 인덱스,,, 3) TCL : Transaction 처리해주는 명령 Commit(저장), Rollback(취소), Savepoint 4) DCL : Grant(권한부여), Revoke(권한회수) SQL 명령 ==> ; 으로 끝나야 함 *** 제약조건(Constraint) 1) Primary key(주키) : 테이블 내의 각 레코드를 구별하기 위한 유일한 값..

Oracle 2024.02.13