데이터베이스
-
[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. 8. 9. 02:00
Record 수정 수정할 테이블 이름을 UPDATE 뒤에 써 주고 수정할 컬럼을 SET 뒤에 써준다. 만약 수정해야 할 컬럼이 2개 이상이면 ','을 통해 컬럼을 구분한다. WHERE 뒤에는 변경할 레코드를 선택/한정하는 '조건식'을 입력. 만약 WHERE절을 생략한다면 테이블에 저장된 모든 레코드가 수정 됨 : UPDATE [테이블 이름] SET [컬럼 이름] = [수정할 값] WHERE [조건]; name price brand ---------- ---------- ---------- sonat 1000000 Hyundai K5 Kia 1000000 M3 BMW 320d 1500000 BMW 520d 1700000 BMW C220 1500000 Benz E330 1800000 Benz 현재 brand..
-
[SQLite] Record 입력하기 (INSERT)Software/SQLite 2017. 7. 26. 01:16
Table에 Record를 입력하는 것은 어렵지 않다.먼저 INSERT INTO 뒤 Record를 입력하고자 하는 Table의 이름 그 뒤에 내가 넣고자 하는 Column의 이름, 그리고 VALUES 뒤에 각 Column에 대한 값들을 넣어 주면 된다 INSERT INTO [Table Name] ([Column name], [Column name]…) VALUES ([Data], [Data], …); EX) INSERT INTO cars (name, brand, price) VALUES ('sonata', 'Hyundai', 10000000); sqlite> INSERT INTO cars (name, brand, price) VALUES ('sonat', 'Hyundai', 1000000); sqlite..