공부/데이터베이스 24

[데이터베이스] 제약조건

제약조건 (도메인 -> 엔티티 -> 릴레이션) 도메인 제약조건 : 속성에 도메인이 아닌 값이 올 수 없도록 하는 제약조건 NOT NULL --생성 CREATE TABLE TEST ( ID VARCHAR2(50) NOT NULL, EMAIL VARCHAR2(200) NULL, PHONE CHAR(13) NOT NULL ) --수정 ALTER TABLE TEST MODIFY EMAIL VARCHAR2(200) NOT NULL; DEFAULT --생성 CREATE TABLE TEST ( ID VARCHAR2(50) NOT NULL, EMAIL VARCHAR2(200) NULL, PHONE CHAR(13) NOT NULL, PWD VARCHAR2(200) DEFAULT ‘111 -- 등록일(SYSTIMESTAM..

[데이터베이스] 뷰(VIEW), 데이터 딕셔너리

뷰 : 여러 테이블을 합쳐서 뷰를 만들어놓고 사용한다, 원하는 정보만 보여준다(보안). CREATE VIEW NOTICEVIEW AS SELECT N.ID , N.TITLE , N.WRITER_ID , M.NAME WRITER_NAME , COUNT(C.ID) COMMENT_CNT FROM MEMBER M RIGHT JOIN NOTICE N ON M.ID = N.WRITER_ID LEFT JOIN “COMMENT” C ON N.ID = C.NOTICE_ID GROUP BY N.ID, N.TITLE, N.WRITER_ID , M.NAME; --3개의 테이블 조인하여 뷰를 생성하여 사용한다. -> SELECT * FROM NOTICE_VIEW; 데이터 딕셔너리 DBMS에 사용자정보, 권한, 테이블, 뷰, 제..

[데이터베이스] UNION, UNION ALL, MINUS, INTERSECT

UNION : 관련이 없어도 컬럼의 개수와 자료형을 같게하면 위아래로 합친다. SELECT ID, NAME FROM MEMBER UNION SELECT WRITER_ID, TITLE FROM NOTICE; --같은 레코드가 있을때는 중복을 제거하고 합친다.(중복허용하려면 UNION ALL) MINUS : 같은 레코드가 있을 때 뺀다. SELECT ID, NAME FROM MEMBER MINUS SELECT WRITER_ID, TITLE FROM NOTICE; INTERSECT : 공통된 것만 남긴다. SELECT ID, NAME FROM MEMBER INTERSECT SELECT WRITER_ID, TITLE FROM NOTICE;

[데이터베이스] SELECT

SELECT, FROM, WHERE, (GROUP BY, HAVING), ORDER BY 순서가 중요--------------------------------------------> ORDER BY ~ ASC(DEFAULT), DESC SELECT * FROM MEMBER ORDER BY NAME DESC; SELECT * FROM MEMBER WHERE NAME LIKE ‘박%’ ORDER BY NAME DESC, HIT DESC; 집계함수 SUM, MIN, MAX, COUNT, AVG SELECT WRITER_ID, COUNT(ID) COUNT FROM NOTICE --WHERE GROUP BY WRITER_ID ORDER BY COUNT DESC; --작성자별 게시 수 많은 순으로 게시 수 내림차순..

[데이터베이스] 오라클 내장함수 - 숫자함수, 날짜함수, 변환함수, NULL관련 함수

숫자함수 절대값 SELECT ABS(-35) FROM DUAL; 음수/양수인지 알려주는 함수 SELECT SIGN(35), SIGN(-35), SIGN(0) FROM DUAL; -- 양수 : 1 음수 : -1 0 : 0 반올림 SELECT ROUND(34.456789), ROUND(34.56789) FROM DUAL; --34 , 35 SELECT ROUND(12.3456, 2) ROUND(12.3456, 3) FROM DUAL; -- 12.35, 12.346 나머지 반환 SELECT TRUNC(17/5) 몫, MOD(17,5) 나머지 FROM DUAL; -- 3, 2 제곱근 SELECT POWER(5,2) , SQRT(25) FROM DUAL; --25, 5 날짜함수 현재시간 SELECT SYSDATE..

[데이터베이스] 오라클 내장함수 - 문자열함수

문자열함수 - SUBSTR SELECT SUBSTR(‘HELLO’, 1, 3) FROM DUAL; -- HEL 시작위치, 개수 SELECT SUBSTR(‘HELLO’, 3) FROM DUAL; -- LLO 시작위치 SELECT SUBSTRB(‘HELLO’, 1, 3) FROM DUAL; --3번째 바이트부터 자른다. SELECT NAME, SUBSTR(BIRTHDAY, 6, 2) AS MONTH FROM MEMBER; --이름, 태어난 달 SELECT * FROM MEMBER WHERE SUBSTR(PHONE, 1, 3) = ‘011’; -- 번호가 011로 시작 ð 함수호출이 WHERE절에 들어가면 오래걸림 ð SELECT * FROM MEMBER WHERE PHONE LIKE ‘011%’; SELEC..

[데이터베이스] 오라클 정규식을 이용한 패턴 연산

ㅇ 정규식을 이용한 패턴 연산(https://regexlib.com/CheatSheet.aspx) SELECT * FROM NOTICE WHERE TITLE LIKE '%-%-%'; --전화번호 찾기. 숫자 외에도 찾아짐. SELECT * FROM NOTICE WHERE REGEXP_LIKE(TITLE , ’01[016-9]-\d{3,4}-\d{4}’); 시작과 끝이 맞는 패턴 검색은 앞에 ^ 뒤에 $를 넣어준다.'^01[016-9]-\d{3,4}-\d{4}$' 이메일형식: \D\w+@\D\w+.(org|net|com) \D\w+ : 숫자 아닌 문자 하나 이상 (org|net|com) : 셋 중 하나 ㅇ ROWNUM, 행 제한하기 ROWNUM : 오라클에서 결과집합을 만들 때 ROWNUM이라는 컬럼이 추..

[데이터베이스] 오라클 기본(자료형, DDL, DML, 연산자)

ㅇ DB : 중복제거, 무결성을 위함 ㅇ DDL : create, alter, drop ㅇ DML : select, insert, update, delete ㅇ DCL : grant, revoke ㅇ 테이블 스페이스 : 물리적 파일들에 논리적인 테이블들이 저장된다. ㅇ 주석처리 : -- ㅇ 데이터 타입 : ㄱ. CHARACTER : ‘HELLO’ CHAR(바이트수) : 고정길이(길이가 같아서 검색이 빠르다.) (CHAR(2 CHAR)로 사용하면 바이트 수에 상관 없이 2글자로 사용할 수 있지만 NCHAR를 사용함.) VARCHAR2(20) : 가변길이(구분자로 구분되어 어디있는지 찾는데 검색이 오래걸림) NCHAR(SIZE), NVARCHAR2(SIZE) : N->NAITONAL, 2바이트 3바이트로 U..

[데이터베이스] key

1. KEY 키는 db에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플과 구별할 수 있는 기준이 되는 속성이다. 1. 후보키 ㅇ 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별할 수 있는 속성들의 부분집합 ㅇ 모든 릴레이션을 반드시 하나 이상의 후보키를 가져야한다. ㅇ 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족해야한다. 2. 기본키 ㅇ 후보키 중에서 선택한 주키(primary key) ㅇ 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성 ㅇ null값을 가질 수 없다.( not null ) ㅇ 기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없다. ( 중복 x ) 3. 대체키 ㅇ 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키 ㅇ 후보키 – ..