본문 바로가기

Programming/Database

(13)
최적화된 테이블 설계를 위한 15가지 팁 1. 적절한 데이터 타입을 선택하라. 2. 데이터 정규화 데이터 중복성을 줄이고 무결성을 확보하라. 3. null 값들은 피하라. 'NOT NULL'을 사용할 것. 4. 데이터를 인덱싱하라. 자주 검색되는 컬럼에 인덱스를 만들어 쿼리 성능을 향상할 것. 5. 제약 조건을 걸어라. 'UNIQUE'와 'FOREIGN KEY'와 같은 제약 조건을 걸 것. 6. 예약어를 사용하지 마라. 'SELECT'와 'FROM'같은 키워드를 컬럼 명으로 사용하지 말 것. 7. 좋은 이름을 지어라. 테이블, 컬럼, 인덱스에 의미 있는 이름을 지을 것. 8. 적절한 기본 키를 사용하라. 9. 보안을 생각하라. 10. 설계를 테스트하라. 11. 성능을 최적화하라. 12. 표준 형식으로 날짜 및 시간을 저장하라. 13. 적절한 테..
postgresql, django 데이터베이스 연동
자동 COMMIT조건 자동 COMMIT : DDL(Create, Alter, Drop), DCL(Grant, Revoke) 자동 ROLLBACK : 비정상적인 종료, system failure
사용자 생성 테이블 삭제 내가 만든 테이블 삭제 SELECT 'DROP TABLE ' || object_name || ' CASCADE CONSTRAINTS;' FROM user_objects WHERE object_type = 'TABLE'; 실행하고 복사해서 삭제 수행하기. View도 같은 방법으로 수행하기 SELECT 'DROP VIEW ' || object_name ||';' FROM user_objects WHERE object_type = 'VIEW';
데이터베이스 9강 # user 생성관리 1.create user 2. 권한 or Role부여(1. create role 2. role(권한부여) 3. role user.role부여) 3. alter user(패스워드, 계정 풀거나 잠금) # 조건부여 alter table add constraint # not null추가 alter table dept modify a constraint dept_a_nn not null; # table 생성 1. table 구조 만들기(컬럼 결정) 2. 무결성 보존(제약조건 부여) insert into table() values (); 1. insert 명시된 column 수 = values 수 2. insert 문장 1개가 1row 3. 문자, 날짜 값 insert 시 ' ' 4. 무결성..
데이터베이스 8강 # 뷰를 사용하는 것이 일반 테이블을 생성하는 것보다 효율이 좋음 # 파싱 : 검증, 실행계획, 실행 효율적인 경로탐색 table full stack(데이터를 모두 부름)하고 순차 검색이 default. 파싱한 결과는 데이터 딕셔너리로 저장 shared pool을 먼저 탐색하고 재사용 및 없으면 데이터딕셔너리를 탐색하여 파싱 data buffer cache redo log buffer 2권 35페이지 # 인라인 뷰 SELECT a.last_name, a.salary, a.department_id, b.maxsal FROM employees a, (SELECT department_id, max(salary) maxsal FROM employees GROUP BY department_id) b WHERE a..
데이터베이스 7강 # 서브쿼리를 활용하여 employees값 가져오는 테이블 생성 CREATE table empsal80 AS SELECT last_name, salary FROM employees WHERE department_id = 80; # 테이블 설정확인 DESC empsal80; # 테이블 모든 값 확인 SELECT * FROM empsal80; #테이블 삭제 DROP TABLE empsal80; # 사원의 이름과 연봉을 저장하는 ANNSAL 테이블을 생성하시오. NAME과 ANNSAL로 지정하시오. # 컬럼의 타입 설정 CREATE TABLE test5 ( a number(5), b char(3)); # 데이터 작업 승인 COMMIT; # 확인 SELECT * FROM test5; # 승인된 테이블 값을 변경..
데이터베이스 6강 # 이름 Davies인 사람보다 후에 고용된 사원들의 이름 및 고용일자를 출력하시오. 고용일자를 역순으로 출력 SELECT last_name, hire_date FROM employees WHERE hire_date > (SELECT hire_date FROM employees WHERE last_name = 'Davies') ORDER BY hire_date DESC # King을 매니저로 두고 있는 모든 사원들의 이름 및 급여를 출력하시오. SELECT last_name FROM employees WHERE last_name = 'King' # 회사 전체 평균급여보다 더 많이 받는 사원들 중 이름이 u가 있는 사원들이 근무하는 부서에 근무하는 사원들의 사번, 이름 및 급여를 출력하시오. SELECT ..