본문 바로가기

전체 글

[ 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 ( 찾는 문자가 .. 더보기
[ MYSQL ] SELECT절과 WHERE절 실습 SELECT [ 조회하고자 하는 컬럼명 또는 전체 컬럼 조회시 * 입력 ] FROM [ 조회하고자 하는 테이블명 ];  ex. SELECT * FROM employees; → employees 테이블에 있는 전체 컬럼 조회하기 SELECT salary FROM employees; → employees 테이블에 있는 salary 컬럼 조회하기   컬럼을 조회하는 위치에서 * / + - 연산이 가능하다.  NULL 은 값이 없다는 것을 의미한다. NULL 은 * ( 곱하기 ) 연산이 안되며 숫자 0 이나 공백과는 다르다.  만약 NULL 이 0 이라면 곱하기 연산시 결과가 0 이 나와야 하는데 0 이 아닌 NULL 산출된다. 조회결과의 컬럼이름은 별칭을 붙여 바꾸어줄 수 있다.AS 라는 키워드를 통해 조회.. 더보기
[ SQLD ] 데이터 모델과 성능 240801 성능 데이터 모델링 개요데이터 모델링을 할 때 데이터베이스 성능을 고려하여 수행하는 것성능 데이터 모델링을 수행하는 시점은 빠를수록 좋다.분석 / 설계 단계에서 성능 모델링을 수행해야 재업무 비용이 최소화된다.일반적인 경우는 대략적인 설계 → 성능 저하 → 해당 부분만 SQL을 튜닝한다. 성능 데이터 모델링 진행 순서- 정규화를 정확하게 수행한다 → 주요 관심사별로 테이블을 분산시킴- 데이터베이스 용량산정 수행 → 각 엔터티에 어느 정도의 트랜잭션이 들어오는지 파악→ 데이터를 조회하고, 삽입하고, 변경하고, 삭제하는 등 SQL문을 통해 가장 작업이 빈번하게 발생하는엔터티를 파악한다.- 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다→ C ( Create, 삽입하기 ) R ( Read, 조회하기 ) U .. 더보기