일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- programmers
- html
- java
- 스프링 부트
- springSecurity
- 시큐리티로그인
- 시큐리티 로그인
- 목록
- security
- input태그
- 반복문
- StyleSheet
- JAVA11
- 코딩테스트
- springboot
- Linux
- 시큐리티 로그아웃
- 시큐리티
- 로그인
- Spring boot
- javascript
- sql
- gradle
- 싱글톤
- 소스트리
- codingtest
- 리눅스
- 2차원배열
- css
- 프로그래머스
- Today
- Total
목록lectureNote/SQL (8)
JAVAIARY

SQLPLUS를 이용해서 ORACLE 에 유저를 추가해 보도록 한다. 1. CMD창에서 SYS 계정으로 SQLPLUS에 접속한다. SQLPLUS SYS AS SYSDBA 2. 유저 생성 및 접속 CREATE USER SAMPLEUSER IDENTIFIED BY ORACLE CONN SAMPLEUSER/ORACLE 하지만 새로 생성된 신규 유저에 데이터베이스에 대한 접근 권한이 없기 때문에 접속할 수 없다. 3. 권한 부여 GRANT CREATE SESSION TO SAMPLEUSER; 데이터 베이스에 접근할 수 있는 권한을 부여했다. 하지만 해당 권한 만으로는 테이블 생성이나 삭제 등이 불가능하다. 그래서 Connect와 Resource 권한을 함께 주었다. 권한이 부여된 것을 확인할 수 있다. 4. 권..
1. 커서(Cursor) 1) 개념 쿼리문의 처리 결과가 저장되어 있는 메모리 공간을 가리키는 포인터(Pointer) ex) select * from 테이블 where 이름 = '나봉순' ID 이름 성별 나이 01 나봉순 여 25 ==> 쿼리문의 결과(특정 행들의 모음)를 저장하는 메모리공간을 가리킴 2) 종류 묵시적 커서 : 내부에서 자동으로 생성되어 사용 명시적 커서 : 사용자가 직접 정의해서 사용 3) 커서의 사용 3 단계로 진행 ( 열기-Open, 패치-Fetch, 닫기-Close) 묵시적 커서 각 단계가 자동으로 수행 수행된 쿼리문의 정상적인 수행 여부 확인을 위해 사용 명시적 커서 진행을 직접 구현해야 함 쿼리문의 결과를 저장하여 사용함으로써 동일한 쿼리가 반복 수행되어 데이터베이스 자원 낭비..
1. 사용자 정의 함수 프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리하며, 종료 시 처리 결과를 단일값으로 반환하는 절차형 SQL 데이터베이스에 저장되어 SELECT, INSERT, DELETE, UPDATE 등 DML문의 호출에 의해 실행됨 예약어 RETURN을 통해 값을 반환하기 때문에 출력 파라미터가 없음 INSERT, DELETE, UPDATE를 통한 테이블 조작은 불가하며 SELEC를 통한 조회만 가능 프로시저를 호출하여 사용할 수 없음 사용자 정의 함수는 SUM(), AVG()등의 내장 함수처럼 DML문에서 반환값을 활용하기 위한 용도로 사용됨 2. 사용자 정의 함수의 구성 프로시저와 유사함 *값은 필수 DECLARE* BEGIN* CONTROL SQL EXCEPTION ..
1. 트리거 DBMS시스템에서 INSERT, UPDATE, DELETE등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL 트리거는 데이터베이스에 저장되며, 데이터 변경 및 무결성 유지, 로그메시지 출력 등의 목적으로 사용 트리거의 구문에는 DCL(데이터 제어어)사용 불가 DCL이 포함된 프로시저나 함수를 호출하는 경우에도 오류 발생 트리거에 오류가 있는 경우 트리거가 처리하는 데이터에도 영향을 미치므로 트리거 생성 시 주의 필요 2. 트리거 구성 * 필수 DECLARE* EVENT* BEGIN* CONTROL SQL EXCEPTION END* DECLARE* : 트리거의 명칭, 변수 및 상수, 데이터 타입을 정의 EVENT* : 트리거가 실행되는 조건을 명시 BEGIN/END : 트..
프로시저 반복적인 작업을 프로시저로 설정해두면 프로시저만 호출해주면 됨 반복적인 쿼리문을 작성해 줄 필요가 줄어듬 1. 프로시저의 생성 CREATE(OR RELACE) PROCEDURE 프로시저명(파라미터) 지역변수 선언 BEGIN 프로시저 BODY; COMMIT; END; OR REPLACE: 선택옵션 . 동일 이름의 프로시저가 존재한다면 기존의 프로시저를 대체(덮어씌움) 프로시저명 : 생성할 프로시저의 이름 지정 프로시저 BODY: BEGIN~END로 끝나며 사이에 적어도 하나의 SQL문이 존재해야 함 파라미터 IN : 호출 프로그램이 프로시저에 값을 전달할 때 지정 OUT : 프로시저가 호출 프로그램에게 값을 반환할 때 지정 INOUT : 호출 프로그램이 프로시저에게 값을 전달하고, 프로시저 실행 ..

1. NVL/NVL2 1) NVL (컬럼명, NULL일 때 값) 해당 칼럼의 값이 NULL인 경우 특정값으로 출력할 수 있음 2) NVL2 (컬럼명, NULL일 때 값, NULL이 아닐 때 값) 해당 칼럼의 값이 NULL이 아닌 경우에 특정값으로 출력할 수 있음. SELECT NVL(LUNCHMENU, '점심메뉴미정') AS LUNCH_MENU, NVL2(LUNCHMENU, '점심메뉴미정', '점심메뉴확정') AS LUNCH_MENU2 FROM MEAL LUNCH_MENU LUNCH_MENU2 IS NULL 점심메뉴미정 점심메뉴미정 IS NOT NULL 짜장면 점심메뉴확정 🟡 NVL을 사용할 때는 Alias를 꼭 지정해주어야 한다. NVL은 값만 정해줄 뿐 컬럼명을 지정해주는 것은 아니기 때문. 이거 몰..
property 속성과 함께 쓰이며, property에 지정된 값이 비어있지 않을 때 실행됨 동적 쿼리 다른 CRUD태그 (select, insert ...) 내부에 함께 사용하여 값이 null이 아닐 때 추가 쿼리 실행을 도와줌 예제 SELECT * FROM TB_EMPLOYEE WHERE EMP_ID = #EMP_ID# AND (STATEMENT = #STATEMENT#) ORDER BY SORT_ORDER TB_EMPLOYEE 테이블에서 EMP_ID(사원번호) 만으로도 조회할 수 있지만 라디오 버튼, 체크박스 등으로 재직상태 등의 옵션이 있을 경우, 옵션이 존재할 때만 And 등으로 조건을 추가해 줄 수 있음.