목록DB, SQL (22)
Coding Planet
SQL의 연산자는 특정한 우선순위를 가지고 있다. 이 우선순위는 대부분의 RDBMS에서 일관되게 적용되나, 특정 RDBMS에 따라 약간의 차이가 있으므로 항상 해당 RDBMS의 공식 문서나 메뉴얼을 참고하는 것이 좋다.일반적인 SQL연산자의 우선순위는 다음과 같다. 1. 괄호- 가장 높은 우선순위이다. 괄호 안의 연산이 가장 먼저 수행된다. 2. 부정연산자(NOT) 3. 산술 연산자 - 곱하기, 나누기, 계수, 더하기, 빼기 4. 문자열 연결 연산자- ORACLE의 "||" , SQL Server에서 "+" 5. 비교 연산자와 SQL 비교 연산자- 비교 연산자 : =, >, =, , !=, ...- SQL 비교 연산자 : BETWEEN A AND B, IN, LIKE, IS NULL 6. 논리 연산자 ..
데이터베이스에서 트랜잭션의 격리성(Isolation)이 낮은 경우, 여러 트랜잭션들이 동시에 실행될 때 서로 간섭할 수 있다. 이로 인해 발생할 수 있는 문제점들은 다음과 같다. ** 격리성(고립성, Isolation) : 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들면 안된다는 트랜잭션의 원칙 | Dirty Read (더티 리드) 한 트랜잭션에서 아직 커밋되지 않은 변경을 다른 트랜잭션이 읽을 수 있다. 이로 인해 잘못된 데이터나 일관성이 없는 데이터를 읽게 될 수 있다. | Non-repeatable Read (비반복 읽기) 한 트랜잭션 내에서 같은 쿼리를 두 번 수행했는데, 그 사이에 다른 트랜잭션이 값을 수정 또는 삭제하는 바람에 두 쿼리 결과가 다르게 나타나는 현상을..
DELETE TRUNCATE DROP 테이블 데이터 삭제 O O O 테이블 스키마 삭제 O X O 디스크 용량 초기화 X O X 테이블이 사용했던 Storage를 즉시 Release 로그 남기기 O X X 종류 DML DDL DDL ROLLBACK 가능여부 Commit 이전에는 가능 불가능 불가능 Commit Auto Commit Auto Commit 사용자 Commit * 디스크 용량 초기화 : 저장 공간을 재사용 가능하도록 해제한다. ** 로그남기기 : 삭제에 대한 로그를 남기는 것. DELETE는 삭제 로그가 남는다. DELETE를 사용할 경우 데이터를 삭제하더라도 실제로 디스크에서 사용하는 공간이 즉시 해제되는 것은 아니다. 데이터베이스가 재사용 수 있도록 디스크 공간을 남길수 있다. 특히 DEL..
데이터베이스는 데이터의 무결성과 일관성을 유지하기 위해 다양한 제약 조건을 사용한다. 자주 쓰이고 SQLD에도 기출인 CASCADE, RESTRICT, AUTOMATIC, DEPENDENT에 대해 알아보자 | CASCADE: CASCADE 옵션은 주로 외래 키 제약과 함께 사용된다. 사전적 의미는 '폭포처럼 흐르다'이다. 즉 부모 테이블의 변동이 자식테이블에게 까지 영향을 미친다는 의미이다. 부모 테이블의 레코드가 삭제되거나 수정될 때, CASCADE 옵션을 설정한 자식 테이블의 관련 레코드도 자동으로 삭제 또는 수정된다. 예: 고객 테이블에서 고객 정보를 삭제할 때 해당 고객과 관련된 주문테이블의 주문 내역도 함께 삭제되는 경우. | RESTRICT: RESTRICT 옵션은 부모 테이블의 레코드에 대한..
`ALTER TABLE 테이블명 DROP COLUMN 컬럼명;` 명령어를 사용하면 해당 컬럼 자체가 테이블에서 사라진다. 따라서 해당 컬럼과 그 컬럼에 저장된 모든 데이터가 삭제된다. ALTER TABLE EMP DROP COLUMN COMM;
1. Oracle -- 자료형 바꾸기 ALTER TABLE table_name MODIFY column_name DATE; --컬럼명 바꾸기 ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name; 2. SQLServer SQL Server에서는 직접적으로 칼럼 이름을 변경하는 SQL 명령어가 없다. 대신 sp_rename이라는 저장 프로시저를 사용할 수 있다. -- 자료형 바꾸기 ALTER TABLE table_name ALTER COLUMN column_name DATE; --컬럼명 바꾸기 EXEC sp_rename 'table_name.old_column_name', 'new_column_name', 'COLUMN';
employees 테이블을 생성할 때 주키를 설정할 때는 'CONSTRAINT'절을 쓴다. 'CONSTRAINT' + '제약조건이름' + PRIMARY KEY ('기본키로 지정할 컬럼이름') CREATE TABLE employees ( employee_id NUMBER(10) NOT NULL, first_name VARCHAR2(50), last_name VARCHAR2(50), email VARCHAR2(100), hire_date DATE, CONSTRAINT emp_pk PRIMARY KEY (employee_id) );
FOREIGN KEY 1. 외래키(FK)에 대한 이해 두 테이블의 데이터 간 연결을 설정하고 강제 적용하여 외래 키 테이블에 저장될 수 있는 데이터를 제어하는데 사용되는 열이다. 외래 키 참조에서는 한 테이블의 기본키 값을 가지고 있는 열을 다른 테이블의 열이 참조할 때 두 테이블 간 연결이 생성된다. 자식테이블:emp_tbl. 부모테이블:dept_tbl() 부모테이블인 dept_tbl의 deptno를 받아 사용하는 자식테이블 emp_tbl. -> 부서번호가 emp_tbl의 외래키 2. 형식 CONSTRAINT [제약조건명] FOREIGN KEY([컬럼이름]) REFERENCES[참조할 테이블 이름]([참조할 컬럼 이름]) [ON DELETE CASCADE | ON DELETE SET NULL]; 3. ..
1. 유스케이이스 다이어그램(Usecase Diagram)이란? Actor와 시스템이 수행하는 활동간의 관계를 표시하며, 시스템의 기능적인 요구사항을 설명하기 위한 도구이다. 유스케이스를 통해 개발자 뿐만 아니라 최종사용자도 사용자와 시스템간의 관계를 쉽게 파악할 수 있다. 유스케이스는 요구사항 정의서를 바탕으로 세부기능을 분석하고 개발 범위를 정할 때 사용한다. 2. 유스케이스의 구성요소 시스템(System): 만들고자 하는 프로그램을 의미한다. 유스케이스들을 둘러산 사각형의 틀로 표현하며 시스템 명칭을 안쪽 상단에 작성한다. 액터(Actor): 시스템의 외부에 존재하면서 시스템과 상호작용을 하는 사람, 또 다른 시스템을 의미한다. 유스케이스(Usecase): 시스템이 액터에게 제공하는 기능으로 시스템..
1. 논리적 데이터 모델 개념적 데이터 모델은 DBMS가 직접 이해할 수 없기 때문에 컴퓨터가 이해할 수 있도록 논리적 데이터 모델로 변환해야 하는데 이를 논리적 데이터 모델이라고 한다. 개념적 설계에서 추출된 실체와 속성들의 관계를 관계형 데이터베이스 이론에 맞게 구조적으로 설계하는 단계인데, 이를 스키마의 설계라고 한다. 정확한 업부 분석을 통한 자료의 흐름을 분석하여 실체와 속성들의 관계를 구조적으로 설계하여야 한다. 논리적 데이터 모델은 데이터 모델링이라고도 함 관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델 등이 있음 계층 데이터 모델 -데이터를 저장하는 단위인 엔티티의 구조가 상하 종속적인 관계로 구성 -ex)교수 - 학생- 수강과목 네트워크 데이터 모델 - CODASYL이 제안(..