일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- c++
- 데이터베이스
- 프로그래밍
- db
- 예외던지기
- unity
- Exception
- Interface
- cocos2d
- interface상속
- 상수변수
- java
- c++게임엔진
- 동기화블럭
- cocos2d-x
- oracle
- 스레드
- cocos2dx
- singleton
- 게임엔진
- 문자열
- Thread
- C/C++
- Class함수
- 반복문
- Stack
- 데이터타입
- c#
- 입출력
- 예외처리
- Today
- Total
목록교육 일지/Database (21)
초보 프로그램 개발자
TRIGGER CREATE TABLE TEST1 (NUM VARCHAR2(10), NAME VARCHAR2(10)); CREATE TABLE TEST2 (NO NUMBER, BIGO VARCHAR2(40)); -- 테스트를 위해 테이블 2개 생성 CREATE SEQUENCE SE1 -- 시퀀스 생성 START WITH 1 INCREMENT BY 1 MAXVALUE 100 NOCYCLE NOCACHE; CREATE OR REPLACE TRIGGER TRI_TESET_IN AFTER INSERT ON SCOTT.TEST1 FOR EACH ROW -- 데이터 처리시 건건이 모두 트리거가 실행되게 한다. BEGIN INSERT INTO TEST2 VALUES(SCOTT.SE1.NEXTVAL,:NEW.NAME||..
CURSOR SELECT를 통해 나온 결과들이 메모리에 저장되는 장소 CURSOR를 사용하기위해 OPEN > FETCH > CLOSE 순으로 사용 CREATE OR REPLACE PROCEDURE CURSOR_TEST (A_EMPNO EMP.EMPNO%TYPE) IS CURSOR CURSOR_DATA -- CURSOR 선언 IS SELECT ENAME,JOB,SAL FROM EMP WHERE EMPNO = A_EMPNO; B_ENAME EMP.ENAME%TYPE; B_JOB EMP.JOB%TYPE; B_SAL EMP.SAL%TYPE; BEGIN OPEN CURSOR_DATA; -- CURSOR를 사용하기 위해 오픈 DBMS_OUTPUT.PUT_LINE('이름 일 급여'); DBMS_OUTPUT.PUT_L..
PLSQL SQL을 확장한 절차적 언어 PLSQL을 사용하기 위해서는 쿼리창이 아닌 PL/SQL편집창을 실행해야 한다. 쿼리박스 기준 도구->PL/SQL편집기 CMD로 실행시 SET SERVEROUTPUT ON; 을 해줘야 보인다 (CMD 실행시 최초 1회) SCOTT 계정으로 만든 예시들 DECLARE -- DECLARE : 선언시작 부분 TYPE ONE IS RECORD (A EMP.ENAME%TYPE, B EMP.JOB%TYPE, C EMP.SAL%TYPE); -- A라는 변수를 만들고 변수의 DATA_TYPE을 EMP.ENAME의 타입으로 만들겠다. CUS ONE; -- CUS라는 변수를 만들고 CUS안에 ONE의 데이터타입을 넣어주겠다. BEGIN -- 실행문 SELECT ENAME,JOB,SA..
SEQUENCE SEQUENCE 는 일련번호 부여로 ROWNUM이랑 비슷하지만 절대 중복되지 않는 고유번호를 가지고 있다. CREATE SEQUENCE 시퀀스명 START WITH 1 -- 시작값 INCREMENT BY 1 -- 증가값 MAXVALUE 100 -- 최대증가값 NOCYCLE -- 최대값까지 사용했다면 1로 돌아가서 다시 사용 할껀가? NOCACHE; -- 메모리상에 넣어두고 꺼내올껀가? ----------------------------------------------------------------- CREATE SEQUENCE 시퀀스명 START WITH 1 -- 시작값 INCREMENT BY 1 -- 증가값 MAXVALUE 100 -- 최대증가값 CYCLE -- 최대값까지 사용했다면 ..
INDEX 검색시간을 줄이기 위한 데이터 구조 이다. 단점으로 별도의 저장공간 (데이터와는 별도의 장소에 저장, 데이터 저장 크기의 5~20%) 관리자의 수고 (인덱스 재설정, 단편화) SELECT ROWID,ENAME FROM EMP; --ROWID 위의 테이블에서 ROWID 데이터명을 보면 마지막 3문자는 AAA, AAB,AAC... 으로 끝나게 된다. AAA, AAB가 의미하는것이 데이터의 위치이다. 예를들어 AAB 는 1번 파일의 1번 블럭의 2번째 행 이라는 소리이다. CLUSTERED INDEX / NON CLUSTERED INDEX MS-SQL은 데이터가 추가될 때 정렬되어 들어가게 된다. (CLUSTERED INDEX) 장점 : 데이터를 찾는 속도가 빠르다 단점 : 입력 속도가 느리다. 예..
VIEW 보안을 위하여 만들어짐 데이터를 모두 봐도 상관없다고 해도 연관안된 데이터는 볼 필요가 없기 때문에 연관된 데이터만 보여주기 위함 VIEW 생성 CREATE VIEW 뷰명 AS SELECT * FROM 테이블명 WHERE 조건; -- GROUP BY CREATE VIEW 뷰명 AS SELECT DNO,AVG(PAY) 평균, SUM(PAY) 합계 FROM 테이블 GROUP BY DNO; VIEW를 생성하게 되면 실제로 TABLE이 만들어진 것이 아니고 존재하지 않는 가상의 테이블이다. 이 쿼리가 실행될 때 마다 SELECT * FROM 테이블 WHERE 조건; 쿼리가 실행된다. * 대신 지정해준 컬럼만 보여줄 수 있다. INSERT, UPDATE,DELETE 모두 가능 하지만 GROUP BY 로 ..
DCL (DATA CONTROL LANGUAGE) GRAND : USER 또는 OBJECT에 권한을 부여할 때 사용 REVOKE : USER 또는 OBJECT에 권한을 회수할 때 사용 권한의 종류 SYSTEM 권한 : DATABASE OBJECT를 생성,수정,삭제(CREATE,ALTER,DROP) 할 수 있는 권한 DBA권한을 가진 사용자가 -> USERS들에게 OBJECT 권한 : OBJECT 내용을 조작(INSERT,UPDATE,DELETE) 할 수 있는 권한 SYSTEM권한을 받은 USERS 중에 한명이 -> USERS 들에게 OBJECT : TABLE,ROLE,SEQUENCE,SYNONYM,INDEX.. GRAND 권한을 줄때는 관리자모드에서 부여할 수 있다. 관리자에게 받은 유저는 다른 유저에게..
제약조건 제약 조건은 데이터베이스에서 데이터의 무결성을 유지하기 위해 설정하는 규칙으로 테이블에 적용되는 제약조건은 다음과 같다. PRIMARY KEY 기본 키 제약 조건 중복값 , NULL값 금지 테이블당 1개만 생성 가능 FOREIGN KEY 외래 키 제약 조건 상속과 비슷한 느낌 상호간의 같은 데이터가 있어야 가능 UNIQUE 고유 제약 조건 테이블당 249개 까지 허용 MS-SQL은 1개 허용 NULL 허용 CHECK 검사 제약 조건 IF문 처럼 조건 걸어서 사용 NOT NULL KEY 공백 금지 (NULL값) -- 현재 제약조건들 검색 SELECT * FROM USER_CONSTRAINTS; 제약조건 사용 방법 -- PRIMARY KEY CREATE TABLE TEST (NO NUMBER(100..
DDL ( DATA DIFINITION LANGUAGE ) CREATE : 생성 DROP : 삭제 RENAME : 이름변경 ALTER : 컬럼추가 DDL 문법을 들어가기전 DATA TYPE먼저 알아보면 DATA TYPE CHAR 문자 ( 고정길이 ) VARCHAR 문자 ( 가변길이 ) NUMBER 숫자 ( 가변길이 ) DATE 날짜 (고정) 7BYTE LONG 문자 (가변길이) 2GB CHAR와 VARCHAR의 차이점 CHAR와 VARCHAR2 의 차이점 CHAR(5) : ex) aA3!_ (_는 공백) 4자리만 입력해도 5칸을 가지고 있음 CHAR는 데이터길이가 일정하고 검색속도가 빠르지만 저장공간 낭비할 수도 있음 VARCHAR(5) : ex) aA3! 4자리를 입력하면 4칸을 가지고 있음 VARCH..
TRANSACTION 하나의 작업을 하기 위해 그 안에서 이루어지는 여러개의 작업들 하나라도 실행이 안되면 작업이 이루어지지 않는다. TRANSACTION - LOCK CMD창을 2개 켜두고 같은 계정으로 접속했을 경우 (1번,2번) 1번에서 INSERT를 하는 순간 TRANSACTION이 실행된다. 이때 2번에서 데이터 조회시 1번에서 INSERT한 데이터가 나오지 않는다. 그래서 2번에서 1번과 동일한 데이터를 INSERT 하게되면 실행이 안되고 멈춰버린다. 이때 1번에서 COMMIT을 하면 2번이 실행되며 이미 존재하는 데이터라는 오류가 뜨고 1번에서 ROLLBACK을 한다면 2번이 실행되며 INSERT 될것이고, 위와 똑같이 2번에서 COMMIT하기전에 1번에서는 보이지 않는다.