본문 바로가기

공부/SQL

(9)
[SQL]관계형 데이터베이스 테이블 구조
[SQL/오라클]NVL, NULLIF, COALESCE NULL 관련 단일행 함수 함수 설명 NVL(표현식1, 표현식2) 표현식1의 결과 값이 NULL이면 표현식2의 값을 출력한다. 단, 표현식1과 표현식2의 결과 데이터 타입이 같아야한다. NULLIF(표현식1, 표현식2) 표현식1이 표현식2와 같으면 NULL, 같지 않으면 표현식1 리턴 COALESCE(표현식1, 표현식2, ...) 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다. 모든 표현식이 NULL이라면 NULL을 리턴 COALESCE 예제 TAB1 C1 C2 C3 1 2 3 2 3 3 SELECT SUM(COALESCE(C1, C2, C3)) FROM TAB1; 출력 값: 6 이유: NULL이 아닌 최초의 표현식인 1+2+3의 결과
[SQL/오라클]UPPER, LOWER, INITCAP select UPPER(id) from lowerupper; /*전체 대문자*/ select LOWER(id) from lowerupper; /* 전체 소문자 */ select INITCAP(id) from lowerupper; /* 첫번째 글자 대문자 */
[SQL/오라클] ROLLUP, CUBE, GROUPING SETS 데이터를 ROLLUP, CUBE, GROUPING SET으로 출력 ROLLUP select id, dept_nm, sum(salary) from sqld_34_20 group by rollup(id, dept_nm); CUBE select id, dept_nm, sum(salary) from sqld_34_20 group by cube(id, dept_nm); GROUPING SETS select id, dept_nm, sum(salary) from sqld_34_20 group by grouping sets(id, dept_nm); select id, dept_nm, sum(salary) from sqld_34_20 group by grouping sets((id, dept_nm)); select id..
[SQL/오라클] DROP vs DELETE vs TRUNCATE 차이 DROP vs DELETE vs TRUNCATE 차이점 DROP 테이블 전체, 공간, 객체를 삭제. 삭제 후 복구 불가 DELETE 데이터는 지워지지만 테이블 용량은 줄어 들지 않는다. 원하는 데이터만 지울 수 있다. 삭제 후 복구 가능 TRUNCATE 데이터는 삭제되고 테이블은 유지된다. 용량은 줄어 들고, 인덱스 등도 모두 삭제. 한번에 삭제해야 한다. 삭제 후 복구 불가 여담... SQLD에서 3개의 명령어의 개념을 묻는 문제가 나옴 TOPCIT에서 DELETE와 TRUNCATE의 차이를 묻는가 나옴
[SQL/오라클] NULL 개념 NULL 의미 - 아직 정의되지 않은 값 - 0 또는 공백과는 다르다. 0은 숫자, 공백은 문자 - NULL은 값이 아니라서 '', '!=','='가 아닌 IS NULL, IS NOT NULL로 표현해야 한다. - NULL 값을 포함하는 연산의 경우 결과 값도 NULL NULL + 2, 2 + NULL = NULL NULL - 2, 2 - NULL = NULL NULL * 2, 2 * NULL = NULL NULL / 2, 2 / NULL = NULL
SQL Injection(삽입) 공격 SQL Injection 공격 SQL Injection 공격이란? 웹 애플리케이션에서 입력데이터에 대한 유효성 검증을 하지 않을 경우, 공격자가 입력 창 및 URL에 SQL 문을 삽입하여 DB로 부터 정보를 열람, 조작할 수 있는 취약점 공격기법 SQL 삽입 공격 시큐어 코딩 조치 안전하지 않은 코드의 예로 외부로부터 입력받은 카테고리의 값을 아무런 검증과정을 거치지 않고 SQL 쿼리를 생성하는데 사용하고 있다. 매개변수를 받는 PreparedStatement 객체를 상수 문자열로 생성하고 파라미터 부분을 setString 등의 메서드로 설정하여 외부의 입력이 쿼리문의 구조를 바꾸는 것을 정의한다. 구분 코드 및 설명 조치 전 String category = request.getParameter("cat..
[SQLD] 모델링의 이해(2) 엔티티 엔티티 - 명사: 업무상 관리 필요한 관심사, 저장이 되기 위한 어떤 것 엔티티의 특징 - 반드시 해당 업무에서 꼭 필요한 정보 - 유일한 식별자로 식별이 가능해야 한다. - 인스턴스 2개 이상의 집함이어야 한다. - 반드시 속성이 있어야 한다. - 다른 엔티티와의 관계가 최소 한 개 이상의 관계가 있어야 한다. 발생 시점에 따른 엔티티 분류 기본엔티티 - 업무에 원래 존재하는 정보이다. - 다른 엔티티와의 관계에 의해 생성되지 않고 독립적으로 생성 가능하다. - 타 엔티티의 부모역할을 한다. - 사원, 부서, 고객, 상품 등 중심 엔티티 - 기본 엔티티로부터 발생하며, 업무에 있어서 중요 역할을 한다. - 다른 엔티티와의 관계를 통해 행위 엔티티를 생성한다. - 계약, 청구, 주문, 매출 등 행..