본문 바로가기

공부기록용

[ SQLD ] Function 240817 함수의 유형- SQL에서 함수란 특정한 기능을 수행하기 위한 일련의 연산들의 집합 또는 특정한 기능을 수행하는 단위다.- 함수를 누가 만드냐에 따라 ( 생성 주체 ) 사용자 정의 함수와 내장 함수로 나뉘어진다→ 함수를 정의한다는 것은 함수의 기능을 정의한다는것이다.1) 사용자 정의 함수 ( User Definition Function ) 는 사용자가 정의하고 ( 우리가 직접 정의 ),2) 내장 함수 ( Built-in Function ) 는 오라클 등의 벤더가 정의한다 → 미리 정의되어서 시스템에서 제공하는 함수 함수는 하나의 행 ( 하나의 인스턴스 ) 에 대해서 적용되는 경우가 많고,적용 범위에 따라 단일 행 함수 ( Single-Row Function ) 와 다중 행 함수 ( Multi-Row Fun.. 더보기
[ SQLD ] DDL 240816 테이블을 변경하는 DDL테이블 생성후 테이블 ( 의 스키마 구조 ) 을 변경하는 것은 잘 일어나지 않지만테이블을 변경하게 된다면 ALTER 라는 명령어를 사용한다.ALTER라는 명령어로 테이블을 변경하는 종류로는 칼럼의 추가 / 삭제 / 수정, 제약 조건의 추가 / 삭제 가 있고,칼럼의 추가시 ALTER 라는 명령어는 ADD 와 함께 작성된다 → 1) 칼럼의 추가 ( ADD )새로 추가한 컬럼은 테이블의 맨 마지막에 추가된다.ALTER TABLE PLAYER_TEMP ADD ( ADDRESS VARCHAR2 ( 80 ) ); 2) 칼럼의 삭제 ( DROP COLUMN )- 삭제 후 최소 하나 이상의 칼럼이 테이블에 존재해야 한다.ALTER TABLE PLAYER_TEMP DROP COLUMN ADDRES.. 더보기
[ SQLD ] SQL - DDL 240815 - 테이블의 인스턴스를 변형하는 DML ( 데이터 조작어 )- 테이블의 스키마를 변형하는 DDL ( 데이터 정의어 ) 테이블 생성- 테이블명 ( 테이블 이름 ) 작성 규칙1) 객체를 의미할 수 있는 이름으로 단수형을 권고하며 ( 권장사항 ),2) 다른 테이블의 이름과 중복되지 않아야 한다 ( 필수사항 ).예를 들어 여러 학생의 정보를 담을 테이블을 생성할 경우 테이블 이름을 Student 라고 작성할 수 있다. - 칼럼명 ( 칼럼 이름 ) 작성 규칙1) 하나의 테이블 안에서 칼럼명은 중복되지 않아야 한다.→ 예를 들어 A테이블 내에 ID 라는 컬럼이 2개 존재할 수 없다.그러나 A테이블이 아닌 다른테이블에 ID라는 컬럼이 존재할 수 있다.하지만 여러 테이블을 통틀어 동일한 컬럼이 존재하는 것은 권장사항이.. 더보기
[ SQLD ] SQL_Basic DML 240814 LIKE 연산자 ( 복습 )일부 단어만 작성한 후 검색할 때 해당 단어가 포함된모든 결과를 반환하기 위해 사용되는 LIKE 연산자LIKE 연산자만 사용한다면 작성한 단어가 완벽하게 일치하는 결과만을 반환하지만 ( = )와일드카드( %, _ ) 를 사용한다면 작성한 단어가 포함된 모든 결과를 출력할 수 있다.%는 임의의 문자 N개를 즉, 어떠한 문자든지, 문자 개수는 몇 개든 몇 백개든 상관없다._는 임의의 문자 1개를 의미한다. ROWNUM 컬럼을 사용하면 WHERE절에 출력개수를 지정할 조건을 작성하기 쉽다.- ROWNUM은 사용자가 아닌 시스템이 관리하는 Pseudo Column이다.번호를 획득할 때 ( 채번 ), 출력 개수를 지정할 때 활용이 가능하다. 테이블을 생성할 때 명시적으로 컬럼을 작성하지.. 더보기
[ SQLD ] SQL_Basic DML 240810 SQL ( Structured Query Language, SEQUEL )SQL은 관계형 데이터베이스에서 데이터 정의, 조작, 제어를 위해 정의하는 언어고,데이터를 정의하는 DDL, 데이터를 조작하는 DML, 데이터를 제어하는 DCL, 트랜잭션을 제어하는 TCL 로 구성되어 있다. SQL 기본 작성 규칙- 문장 마지막은 세미콜론(;) 으로 끝남 → 세미콜론 단위로 한 문장이 끝남- 명령어, 객체명, 변수명은 대/소문자 구분이 없지만 데이터 값은 대/소문자를 구분한다.- 날짜와 문자열에는 작은 따옴표(')를 사용한다. ( ex. name = 'KIM' )- 단어와 단어 사이에는 공백 또는 줄바꿈으로 구분한다.- 주석문은 -- 또는 /**/ 사용하여 작성한다.한 줄, 두 줄인 경우 -(대시) 두 개를 연이어.. 더보기
[ SQLD ] 데이터 모델과 성능 240806 ( 테이블을 분할하는 반정규화 ) 테이블 분할 절차 ( 순서 )- 데이터 모델링 수행: 데이터 객체, 속성 그리고 관계를 다이어그램으로 ( ERD )→ ERD를 기반으로 테이블 ( 릴레이션 ) 을 설계- 데이터베이스 용량 산정:  액세스 ( 접근 ) 하는 횟수가 적은 테이블은 분할을 고민할 필요가 없다.해당 테이블이 미치는 성능이 미미하기 때문이다.대량의 데이터가 처리되는 테이블이 있다면 → 성능 개선할 여지가 있는지 확인무엇을 확인하냐면 ↓ - 대량 데이터가 처리되는 테이블에 대해 트랜잭션 처리 패턴 분석: 주로 어떤 작업 ( 조회, 삽입, 수정, 삭제 등 ) 이 발생하는지 분석한다.작업 패턴이 중구난방이라면 반정규화할 작업이 없다. 일정 패턴이 있는 경우↓  - 트랜잭션이 칼럼 단위로 집중되는 경우 .. 더보기
[ Spring Boot ] 스프링 JPA JPA ( Java Persistenc API ) 는 ORM ( Object Relational Mapping ) 표준 기술이다.객체 ( Object ) 관계형 ( Relational ) 매핑하는데 도움을 주는 기술이다.객체는 자바기반 스프링 ( 도구 ) 에서 클래스로부터 생성된 인스턴스를 의미하고,RDBMS ( 관계형 데이터베이스 관리 시스템 ) 에 객체를 기반으로 테이블 ( Relational ) 만들어지고,자바 클래스와 데이터베이스 테이블 간의 매핑 정보를 사용하여 SQL Query 없이 데이터를 조작할 수 있도록하는 기술이 JPA라는 것, JPA는 API중 하나이자 ORM에 해당한다.MyBatis도 ORM 이지만 JPA는 MyBatis 보다 더 객체지향적이다. JPA와 스프링 JPA는 다르다.스프.. 더보기
[ SQLD ] 실습 240802 SELECT * FROM dual;  dual 이라는 테이블은 sys 가 소유하는 오라클의 표준 테이블로써오직 한 행에 한 컬럼만 담고 있는 dummy 테이블 ( 임시 테이블 ) 이다. 일시적인 산술 연산이나 날짜 연산 등에 주로 사용하며모든 사용자가 접근할 수 있다 ( 사용할 수 있다 ) 문자열 단순 조회 lower() 함수는 ()괄호 안의 문자열을 모두 소문자로 바꾸어 출력하고,initcap() 함수는 ()괄호 안의 문자열중 앞 글자만 대문자로 바꾸어 출력하고,upper() 함수는 ()괄호 안의 문자열을 모두 대문자로 바꾸어 출력한다. 원본 last_name을 기준으로 소문자, 앞 글자만 대문자, 대문자 로 바꾼 것을 출력한다.  길이를 반환하는 length, 문자를 찾는 instr ( 찾는 문자가 .. 더보기