SQL 문 안에서 -컬럼 이름에도 alias를 붙일 수 있고, -테이블 이름에도 alias를 붙일 수 있다. 그리고 둘다 원래 이름 뒤에 AS를 쓰거나, 스페이스 하나를 띄우고 그 뒤에 alias를 쓰면 된다. 하지만 컬럼에 alias를 붙이느냐 텡이블에 alias를 붙이느냐는 용도의 차이가 있다. 컬럼의 alias는 각 컬럼 이름이 실제로 우리에게 그 alias로 변환되어서 보여지게 하기 위한 용도로 쓰인다.ㅇ 이와 달리 테이블의 alias는 조회 결과에서 보기 위한 게 아니라 SQL 문의 전체 길이를 줄여서 가독성을 높이기 위해 사용된다. 그리고 특히 조인(join)을 할 때, 만약 서로 다른 테이블에 같은 이름의 컬럼이 존재한다면, SQL 문 안에서 그 컬럼을 가리킬 때 무슨 테이블의 컬럼인지를 더..
1. LENGTH() 함수 LENGTH() 함수는 문자열의 길이가 몇 글자 인지 보여준다. 2. UPPER(), LOWER() 함수 UPPER()는 문자열을 모두 대문자로 LOWER()는 문자열을 모두 소문자로 3. LPAD(), RPAD() 함수 이 두 함수는 문자열의 왼쪽, 오른쪽을 채워서 n 자리로 만들어 준다. LPAD는 LEFT(왼쪽) + PADDING(채우기)의 줄임말, RPAD는 RIGHT(오른쪽) + PADDING(채우기)의 줄임말 예를 들어 LPAD(age, 10, ’0’)는 age 컬럼의 값을, 왼쪽에 문자 0을 붙여서 총 10자리로 만드는 함수. 보통 어떤 숫자의 자릿수를 맞출 때 자주 사용하는 함수이다. RPAD() 함수는 아래 그림처럼 LPAD() 함수와 반대로 문자열의 오른쪽을 ..
1. 정규화 - 정규화는 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며, 데이터를 분해하는 과정 - 데이터 중복을 제거하고 데이터 모델의 독립성을 확보하기 위한 방법 - 테이블을 분해해서 데이터 중복을 제거하기 때문에 데이터 모델의 유연성을 높인다. - 정규화를 수행하면 비즈니스에 변화가 발생하여도 데이터 모델의 변경을 최소화 할 수 있다. - 정규화는 제 1정규화 부터 제 5정규화 까지 있지만 실질적으로는 제 3 정규화까지만 수행한다. - 테이블을 분해하기 때문에 join을 수행하여 하나의 합집합으로 만들 수 있다. - 불필요한 데이터를 입력하지 않아도 되기 때문에 중복 데이터가 제거된다. - *이상현상이 발생하는 문제를 해결할 수 있다. * 이상현상(Anoomaly)..
대소문자 구분 문제 예를들어 소문자 g가 포함된 값들을 찾는다고 할 때, 조건식에 소문자 g를 썼는데 대문자 G가 포함되어 있는 row도 함께 조회가 되어버린다. 이것은 mySQL의 기본 설정 때문이다. 테이블에 적용된 기본 설정을 보는 방법은. 위 그림의 i 표시를 클릭하면된다. 여러 항목들 중에서 Table collation 항목을 보면된다. 이 항목은 문자열이 서로 동일한지를 비교할 때 적용되는 설정이다. 그 뒤에 utf8mb4_0900_ai_ci 라는 값이 써있습니다. 여기서 ci는 case-insensitive의 약자로 문자열이 동일한지 확인할 때, 대소문자를 구별하지 않겠다는 뜻이다. 바로 이 설정 때문에 아까 대소문자가 달라도 알파벳만 같으면 같다고 판단하는 것이다. 만약 이 설정을 다른 걸..
Primary Key (기본키) 테이블에서 특정 row 하나를 식별하는 컬럼 pk를 지정하면 pk에 같은 값이 있는 열에 추가되는 것을 막아주기 때문에 중복 데이터가 생길 위험이 사라진다. pk는 고유값으로나타낼 수 있는 컬럼으로 설정해야한다. 이런 기본키에도 종류가 있다. 1. Natural Key 원래 가지고 있던 속성을 나타내는 컬럼이 pk가 되었을 때 Natural Key라고 한다. 예를들어 주민등록번호로 시민들을 식별 할 수 있다. 도서관의 책들은 청구번호로 식별할 수 있다. 이런 속성을 나타내는 컬럼이 pk가 되었을 때 Natural Key 라고 한다. 2. Surrogate Key 보통 맨 앞에 붙여주는 id값이라는 컬럼이 pk가 되는 경우 Surrogate key라고 한다. 구분값을 임의로..
java.io.IOException: could not find resource jdbc.properties ⇒ Configuartion의 resource를 확인! java.lang.ClassNotFoundException : cannot find class: com.dto.D ⇒ Configuaration의 Alias의 이름 등 잘 연결 되었는지 확인! java.sql.SQLException: No suitable driver found for $~ ⇒ Configuaration의 property연결 확인 oracle.net.ns.NesException: Lisener refuse the connection with the following error: listener does not currently..