데이터베이스 21

[Oracle] 오라클 Date 타입 조회

프로젝트를 진행하는중 날짜가 저장된 컬럼에서 현재 시간을 조회해서 오늘 날짜의 데이터만 뽑아오는걸 하는도중 알게된점. 오라클에서 date 타입의 데이터를 where 절에서 비교할때, select * from table where = '21/03/03' 이런식으로 비교하면 뽑혀올줄알았는데 안되더라.. SELECT SYSDATE FROM DUAL; 그래서 위와 같이 선언하면 임시 테이블 DUAL로 현재 시간이 조회가 된다. (근데 여기선 Date 타입으로 뽑혀 오기떄문에.) 오라클에서(중첩쿼리를 사용해서)where 절에서 현재 날짜를 비교하려면 date형타입을 string으로 변환해야한다. 나같은경우는 아래와 같이 처리했다. Date형 타입의 데이터를 String 식으로 변환해서 조건문에서 사용했다 sele..

[Oracle] 서브쿼리 종류

서브쿼리는 메인쿼리 안에 있는 또 다른 SELECT문장을 말한다 서브쿼리는 SELECT 절에 사용되어 특정 값을 반환 할수도 있고, FROM절에 사용되어 마치 테이블 처럼 사용 할수 있다. 또한, WHERE 절에서 조건값을 비교하는데 사용됨 1) SELECT 절에 사용되는 서브 쿼리는 스칼라 서브쿼리 이다 (SELECT 절에서 마치 컬럼이나 표현식처럼 사용된다.) - 단 하나의 컬럼이나 표현식만 사용가능, 반환되는 로우수도 반드시 1개만 2)메인커리의 FROM 절에서 사용하는 쿼리는 인라인 뷰 이다(보통 나같은경우 페이징처리에서 사용했다) - FROM 절에서 인라인 뷰 자체가 하나의 테이블 처럼 사용되는것이다. ( 여러개의 컬럼이나 표현식 여러개 반환가능) 3)마지막 서브쿼리는 중첩 서브쿼리로 WHERE..

데이터베이스 2021.02.25

[Oracle] PK와 FK의 제약조건

테이블 생성시, 제약조건을 걸어 줄수 있는데, 난 게시판을 만들던도중, 댓글 기능을 구현했는데, 게시글이 삭제되도, 댓글이 DB에 남아있는 현상이 있어 FK 제약조건걸어줄때 ON DELETE CASCADE를 걸어서 ,게시글이 삭제될때 댓글이 삭제되게 해줌 12ALTER TABLE tbl_reply ADD CONSTRAINTS fk_reply foreign KEY (bno) REFERENCES tbl_board(bno) ON DELETE CASCADE; --게시물 삭제시 , 댓글같이삭제 Colored by Color Scriptercs

[Oracle] 테이블간 관계 맺기 - 조인

조인이란? - 테이블 간 관계를 맺는것 (선행조건이 필요하다. 두테이블간의 관계를 맺는데 사용할 컬럼, 즉 두 테이블간 연결고리 역할을 할 컬럼이 있어야함) 내부 조인 WHERE 절에서 동등연산자(=)를 사용해 연결고리 컬럼, 즉 조인 컬럼을 비교하는 조인이다. (아래와 같은 테이블이 정의 되어 있다는 가정) 1 2 3 4 5 SELECT a.emp_id, a.emp_name, a.gender, a.age, a.dept_id, b.dept_id, b.dept_name, b.use_yn FROM emp_master a, dept_master b WHERE a.dept_id = b.dept_id ORDER BY a.emp_id; Colored by Color Scripter cs 사원정보 테이블은 a, 부서..

데이터베이스 2021.02.13

[Oracle] 집합쿼리 ( UNION ALL, UNION, INTERSECT, MINUS)

UNION ALL - SQL에서 두개의 SELECT 문장을 UNION ALL로 연결하면 각문장이 반환하는 결과가 모두 조회된다. -두 SELECT절에서 사용하는 컬럼의 데이터형과 수는 일치해야한다. -SELECT 문이 2개여도 첫번째 SELECT 문에서 사용된 컬럼명으로 조회된다. 1 2 3 4 5 SELECT emp_id, emp_name, gender, age From emp03 UNION ALL SELECT emp_id2, emp_name, gender, age FROM emp08 cs SELECT 문장이 두개지만 집합연산자로 인해 하나의 문장으로 결과값이 연결되어 나온다 UNION - UNION ALL과 동일하나 한가지가 다름( 중복된 데이터가 존재할경우 그 데이터 1건만 조회된다) - 만약 아래..

데이터베이스 2021.02.11

[Oracle] 데이터 집계( GROUP BY절, HAVING절, 집계함수)

데이터 분석의 가장 기본적인 단계는 테이블에 있는 데이터를 특정 컬럼 기준으로 집계 하는것이다. * 데이터 집계를 하려면 GROUP BY 절과 집계 함수를 동시에 사용해야한다 GROUP BY절은 아래와 같이 WHERE 절과 ORDER BY 절사이 위치해 집계할 대상 컬럼이나 표현식을 명시하면 된다. ( GROUP BY절에 명시한 컬럼이나 표현식은 SELECT절에도 명시해야됨!) 1 2 3 4 5 SELECT station_name FROM subway_statistics WHERE gubun = '승차' GROUP BY station_name ORDER BY station_name cs 주요 집계함수 (집계 함수는 SELECT 절에서만 사용할수 있다.) COUNT (expr) expr의 전체 개수를 반환..

데이터베이스 2021.02.11

[Oracle] SQL 연산자와 주요 SQL함수

SQL 연산자란 피연산자를 대상으로 특정 연산을 수행후 결화를 반호나하는 역할을 한다. SQL에서 피연산자는 개별 데이터나 데이터로 이루어진 표현식이다. 연산자 설명 + 두 수나 두 날짜를 더함 - 두 수나 두 날짜를 뺌 * 두 수를 곱함 / 왼쪽 수를 오른쪽 수로 나눔 || 두 문자를 결합함 아래와 같이 || 연산자 같은경우 , dual테이블 (오라클에서 제공하는 임시테이블)로 문자열을 결합해 반환할수 있다 1 2 select 'a' || 'b' from dual; cs SQL 함수는 크게 숫자형, 문자형, 날짜형, 형변환 함수가 주요 함수들만 테이블로 정의를 해보겠다 *숫자형 함수 함수명 기능 사용 예 ABS(n) n의 절대값을 반환 SELECT ABS( -1) FROM DUAL; -> 1 CEIL(..

데이터베이스 2021.02.10

[Oracle] 데이터 조회, SELECT 문

SELECT 문의 기본구문은 아래와 같다. 1 2 3 4 SELECT column1, column2 FROM 테이블명 WHERE 조건 ORDER BY 정렬순서; cs 구문 순서는 1. 테이블에 있는 데이터를 조회하기 위해선 먼저 데이터를 가져올 테이블이 필요 - FROM 2. 그 테이블의 어떤 컬럼을 가져올것인지? - WHERE 3. 모든 데이터를 가져올것인지? 아니면 어떤 조건에만 맞는 데이터만 가져올것인지? - SELECT 4. 마지막으로 가져온 데이터를 정렬 하는 순서 - ORDER BY * 조건에 맞는 데이터 조회하기 WHERE 절의 조건식에는, 조건연산자를 사용할수 있다. 기본 코딩 연산자랑 크게 다른게없다, 여러 개의 조건을 동시에 사용할수도 있다. 2개의 조건이 필요하고 모두 만족 해야 할때..

데이터베이스 2021.02.09

[Oracle] 데이터 입력과 삭제

DML 문장중 데이터 입력 기능을 하는것은 INSERT 문 뿐이다. 가장 기본적인 형태의 INSERT 구문은 아래와 같다 1 2 3 4 INSERT 구문1 INSERT INTO 테이블명 ( column1, column2, column3) VALUES (값1, 값2); insert into emp03(emp_id,emp_name, gender, age,hire_date) values (4,'신사임당','여성',45,'2018-01-01'); cs 주의 할점은, 컬럼을 명시한 순서와 값의 순서가 같아야함!(또한 데이터형도 서로맞아야함.) 날자 같은경우에는 문자처럼 넣었지만 오라클이 우리 대신 날짜로 변환해서 넣어준다. 오라클이 체크하는 규칙은 크게 두가지가 있는데, 1. NOT NULL 컬럼에 데이터를 넣지..

데이터베이스 2021.02.09

[Oracle] SQL 입문

SQL의 종류는 크게 4가지로 나뉜다. DDL(데이터 정의)- 테이블, 뷰, 인덱스, 시퀀스 등 여러 DB에 객체들을 생성하고 삭제하고 수정하는데 사용되는 SQL - CREATE : 객체 생성 - DROP : 객체 삭제(제거) - ALTER : 객체 변경 - TRUNCATE TABLE : 테이블에 있는 모든 데이터 삭제 (실수로 삭제하면 롤백이 안된다) - RENAME : 객체 이름 변경 DML(데이터 조작) - 데이터를 조작하는언어 ( 개발자들이 많이 사용하는 SQL문이다) - SELECT : 테이블이나 뷰에서 데이터 조회 - INSERT : 데이터 입력 - UPDATE : 기존에 저장되있는 데이터 수정 - DELETE : 테이블에 있는 데이터 삭제 - MERGE :조건에 따라 INSERT와 UPDAT..

데이터베이스 2021.02.08