database
-
[SQLite] 기본키 (Primary Key)Software/SQLite 2017. 9. 16. 16:49
Table 내 동일 한 레코드가 입력되는 경우 이를 구분해 줄 수 있는 식별자를 만들어 사용하는 데 이 식별자를 기본키 (Primary key) 라고 한다. 이 기본키는 각 테이블마다 단 하나씩만 설정할 수 있다. 그리고 아래와 같은 조건들을 만족해야 한다. 기본키(Primary key)의 조건 유일성 (Uniqueness) 기본키를 구성하는 컬럼은 테이블에서 레코드를 식별할 수 있도록 유일해야 함 최소성 (Minimality) 유일성을 만족하는 한도 내에서 최소한의 컬럼(하나 이상)으로 구성되어야 함 개체 무결성(Entity integrity) 기본키가 가지고 있는 값의 유일성이 보장받아야 함. (컬럼 값이 NULL인 경우는 값이 지정된 것이 아니기 때문에 기본키로 사용 불가) 기본키(Primary k..
-
[SQLite] 관계형 데이터베이스Software/SQLite 2017. 9. 2. 17:35
관계형 데이터베이스의 장점 데이터의 중복성과 종속성을 최소화 여러 테이블에 데이터를 나누어 저장 테이블 간의 관계를 통해 원하는 정보를 조회 관계형 데이터베이스의 설계 원칙 중복을 최소화 : 데이터 중복성(redundancy)과 일관되지 않는 데이터 종속성(dependency) 제거 규칙에 따라 테이블 설계 테이블 간 관계는 공통된 값을 통해 서로 연결 - 기본키(Primary Key) 관계형 데이터베이스 실제 예시 현재 'cars' table에는 자동차 이름과 가격, 그리고 해당 자동차의 브랜드 이름이 각각의 Column으로서 존재하고 있다. 문제는 자동차 브랜드의 이름이 바뀌거나 기업 합병등을 통해 해당 자동차의 브랜드가 바껴 버리는 경우 자동차의 이름과 가격은 그대로지만 브랜드를 바꾸기 위해 해당 ..
-
[SQLite] 그룹화Software/SQLite 2017. 8. 21. 01:56
데이터 그룹화 만약 현재 등록된 차량들의 수를 각 브랜드 별로 나타낸다고 했을 때 WHERE절을 이용하여 결과값을 도출하고자 한다면 브랜드의 수만큼 질의를 만들어야 할 수밖에 없다. 예) SELECT count(*) FROM cars WHERE brand = 'BMW'; 그러나 GROUP BY를 사용하면 이런 문제를 매우 간단하게 해결 가능하다. GROUP BY 뒤에 그룹화 시킬 column 명을 적어 주면 해당 column별로 그룹화를 시킨 결과값을 반환한다. 아래의 그 예를 보면 더욱 더 쉽게 이해가 가능하다. sqlite> SELECT brand, count(*) FROM cars GROUP BY brand; brand count(*) ---------- ---------- Audi 1 BMW 2 ..
-
[SQLite] 내장함수 - 2Software/SQLite 2017. 8. 20. 02:33
SQLite3의 경우 기본 자료형인 문자열(Text), 정수(Integer) 나 실수(Real) 형태로 날짜/시간 값을 저장한다. 함수 내용 data(시간표현, 옵션, ...) "YYYY-MM-DD" 형식 (Y: 년, M: 월, D: 일) 반환 time(시간표현, 옵션, ...) "HH:MM:SS" 형식 (H: 시, M: 분, S: 초) 반환 datetime(시간표현, 옵션, ...) "YYYY-MM-DD HH:MM:SS" 형식 (년, 월, 일, 시, 분, 초) 반환 julianday(시간표현, 옵션, ...) 율리우스력의 기원전 4713년 1월 1일 월요일 정오를 기점으로 계산한 날짜 수 반환 strftime('포맷', 시간표현, 옵션) 시간 표현을 지정한 포맷으로 설정한 값을 반환 시간표현 YYYY-..
-
[SQLite] 내장 함수 - 1Software/SQLite 2017. 8. 14. 00:48
SQLite3는 기본적으로 문자열 조작, 수치 계산, 집계, 날짜/시간 계산, 시스템 함수 등 다양한 내장 함수를 제공한다. 함수 내용 lower(x) 문자열 x를 소문자로 변경 upper(x) 문자열 x를 대문자로 변경 length(x) 문자열 x의 길이를 반환 trim(x, y) 문자열 x의 양 끝에서 y를 제거한 결과를 반환 ltrim(x, y) 문자열 x의 왼쪽 끝에서 y를 제거한 결과를 반환 rtrim(x, y) 문자열 x의 오른쪽 끝에서 y를 제거한 결과를 반환 substr(x, y, z) 문자열 x의 y번째 위치로 부터 z개 만큼의 부분 문자열을 반환 replace(x, y, z) 문자열 x 중에서 y와 일치하는 문자열을 z로 교체 - lower, upper 함수의 경우 아스키(ASCII) ..
-
[SQLite] Record 조회Software/SQLite 2017. 7. 31. 01:56
이 번에는 Table에 입력되어 있는 Record 값들을 조회하기 위한 다양한 구문들에 대해서 알아보도록 하겠다. 먼저 내가 조회하고자 하는 Column들을 선택할 수 있는데 이를 그렇게 하기 위해서 'SELECT'를 사용한다. 기본적으로 SELECT 뒤에 내가 조회하고자 하는 Column들을 나열한다.. 2개 이상의 Column을 조회하기 위해서는 한 Column 뒤에 ','로 구분지어 사용하면 된다. 그 이후에 FROM을 사용하여 어떤 테이블(Table)에서 해당 값들을 조회할 것인 지 명시해 주고 WHERE절을 통해 Record 조회를 위한 조건식을 추가해 주면 된다. 요약하면 아래와 같다고 할 수 있을 것이다. SELECT: 조회 Columns FROM: 조회 Table WHERE: 조회 조건식 ..