일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 테이블삭제
- constraint
- 보울룸
- Drop
- 회사생활
- where절
- 빅데이터
- 일기
- 환생
- 직장생활
- INSERT
- 30일글쓰기
- ROWNUM
- 넷플릭스
- data
- 홈트
- rename
- 30일챌린지
- 책리뷰
- null
- 직장인일기
- 도전
- SQL
- 인덱스
- SQLD
- 전생
- Update
- ERD
- 데이터모델링
- 회사싫어
- Today
- Total
목록SQL (65)
최보름달

트랜잭션 트랜잭션은 분리될 수 없는 한 개 이상의 테이터베이스 조작을 의미한다. 하나의 트랜잭션에는 하나 이상의 SQL문장이 포함된다. 트랜잭션은 분할할 수 없는 최소의 단위이다. 그렇기 때문에 전부 적용하거나 전부 취소한다. 트랜잭션은 "All or Notiong" 이다. 예를들어 은행 계좌이체 상황이라고 하자. STEP1. 1번 계좌의 잔액에서 1만원을 뺀다. STEP2. 2번 계좌의 잔액에 1만원을 더한다. 계좌이체라는 작업 단위는 이런 두 개의 업데이트가 모두 성공적으로 완료되었을 때 종료된다. 둘 중 하나라도 실패할 경우 계좌이체는 원래 금액을 유지해야 한다. 장애로 인해 어느 한쪽만 실행되면 금액이 증가하거나 사라질 수 있겠지? 이런 일이 있어서는 안되므로 두 작업을 하나의 트랜잭션으로 묶는 ..
DML(Date Manipulation Language) 테이블에 자료를 입력, 수정, 삭제, 조회하는 명령어들 INSERT 데이터를 입력하는 명령어 한 번에 한 건만 입력된다. -- 자료를 입력하는 두 가지 방법 -- 컬럼을 정의한느 방법. 컬럼의 순서는 테이블 컬럼 순서와 매치할 필요가 없다. -- 정의되지 않은 컬럼은 디폴트로 NULL이 입력된다. -- 단, PK나 Not NULL로 지정된 컬럼은 NULL이 허용되지 않는다. INSERT INTO 테이블명(COLUMN_LIST) VALUES (COLUMN_LIST에 넣을 VALUE_LIST) ; -- 모든 컬럼에 데이터를 입력하는 방법. -- 컬럼 순서대로 빠짐없이 데이터가 입력되어야 한다. INSERT INTO 테이블명 VALUES (전체 COLU..
TRUNCATE TABLE 은 DROP TABLE 과는 달리, 테이블 자체가 삭제되는 것이 아니라 테이블 구조를 유지한 채 내용(모든 행)을 삭제하는 것이다. 재사용이 가능한 형태로 내용물만 제거한다. TRUNCATE TABLE PLAYER ; DROP TABLE 은 테이블 자체가 삭제되기 때문에 테이블 구조를 확인할 수 없지만, TRUNCATE는 테이블은 있되 데이터만 삭제하는 기능이다. DML로 분류하기도 하지만, 처리방식이나 Auto commit 특성을 가져 DDL로 분류한다. TRUNCATE 는 부하가 적다. 하지만 Auto commit 되기 때문에 삭제 후 복구가 되지 않으므로 주의가 필요하다. * kdata 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다.
테이블을 삭제하는 명령 DROP TABLE 테이블명 [CASCADE CONSTRAINT] ; CASCADE CONSTRAINT 옵션은 해당 테이블과 관계가 있던 참조 제약조건에 대해서도 삭제한다는 것을 의미한다. SQL Server 에서 CASCADE 옵션은 존재하지 않으므로, 테이블 삭제 전에 FOREIGN KEY 제약조건 또는 참조하는 테이블을 먼저 삭제해야 한다. 예시 -- PLAYER 테이블 삭제하기 -- ORACLE DROP TABLE PLAYER; -- SQL SERVER DROP TABLE PLAYER; * kdata 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다.
테이블 이름을 변경하는 명령 -- ORACLE RENAME 변경전 테이블명 TO 변경후 테이블명 ; -- SQL SERVER sp_rename 변경전 테이블명, 변경후 테이블명 ; 예시 -- TEAM 테이블을 TEAM_BACKUP 으로 변경 -- ORACLE RENAME TEAM TO TEAM_BACKUP ; -- SQL SERVER sp_rename 'dbo.TEAM', 'TEAM_BACKUP' ; * kdata 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다.
ALTER TABLE 컬럼을 추가/삭제하거나 제약조건을 추가/삭제하는 경우 - ALTER TABLE ADD - ALTER TABLE DROP - ALTER TABLE MODIFY - ALTER TABLE RENAME TO - ALTER TABLE DROP CONSTRAINT - ALTER TABLE ADD CONSTRAINT ADD COLUMN 칼럼을 추가하는 명령 ALTER TABLE 테이블명 ADD 추가할 컬럼명 데이터유형 ; 새롭게 추가된 컬럼은 테이블의 마지막 컬럼이 된다. (컬럼 위치를 지정할 수 없다.) -- PLAYER 테이블에 ADDRESS 컬럼을 추가하는 예시 -- ORACLE ALTER TABLE PLAYER ADD (ADDRESS VARCHAR2(80)) ; --SQL SERVER A..
생성된 테이블 구조 확인 oracle - DESCRIBE 테이블명 ; - DESC 테이블명 ; sql server - sp_help 'dbo.테이블명' select 문으로 테이블 생성하기 DML 문장 중 select 문장을 이용해서 테이블을 생성할 수 있다. (CTAS: create table ~ as select ~) 그러나 CTAS 기법을 사용할 경우 제약조건 중 NOT NULL만 새로운 복제 테이블에 적용이 되고, 기본키, 고유키, 외래키, CHECK등 다른 제약조건은 없어지므로 ALTER TABLE과 같이 사용해야 한다. sql server 에서는 select ~ into ~ 를 활용할 수 있다. 예시 CREATE TABLE TEAM_TEMP AS SELECT * FROM TEAM ; * 한국데이..
제약조건 CONSTRAINT 제약조건이란, 사용자가 원하는 조건의 데이터만 유지하기 위한... 데이터 무결성을 유지하기 위한 보편적인 방법으로, 테이블의 특정 컬럼에 설정하는 제약이다. 테이블을 생성할 때 반드시 제약조건을 기술할 필요는 없지만, 나중에 ALTER TABLE 하려면 수고스러우니 처음부터 제약조건을 검토하는게 좋다. 제약조건의 종류 PRIMARY KEY (기본키) : 하나의 테이블에 하나만 정의할 수 있다. NULL을 허용하지 않는다. 기본키=고유키&NOT NULL UNIQUE KEY (고유키) : 데이터를 고유하게 식별하기 위한 키. NULL이 있어도 된다. NOT NULL : NULL 값의 입력을 금지한다. CHECK : 입력할 수 있는 값의 범위를 제한한다. TRUE, FALSE 로 ..
데이터 유형(타입) 테이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아들일 공간을 유형별로 나누는 기준. 자주 쓰이는 데이터 유형 데이터 유형 설명 CHARACTER - 고정 길이 문자열(CHAR) - 기본 길이 1바이트 - 고정된 길이를 갖고 있기 때문에, 할당된 변수 값의 길이가 작아도 공간은 채워진다 - 'AA' = 'AA ' VARCHAR - CHARACTER VARYUNG. - 최소 길이 1바이트 - 가변 길이로 조정이 되기 때문에 할당된 변수 값의 바이트만 적용된다 - 'AA' 'AA ' (같지 않다) - 공백도 하나의 문자로 취급된다 NUMERIC - 정수, 실수 등 숫자 정보 DATE - 날짜와 시각 정보 CREATE TABLE - 테이블을 생성하는 구문 CREATE TABLE..
관계형 데이터베이스 파일시스템의 경우, 하나의 파일을 많은 사용자가 동시에 검색할 수는 있지만 동시에 입력, 수정, 삭제할 수 없기 때문에 정보의 관리가 어렵다. 파일시스템은 분산된 데이터 간의 정합성을 유지하는데 과다한 노력이 필요하게 되고 데이터의 정합성을 보장하기 힘들다. 이러한 문제에 대해 관계형 데이터베이스는 정규화를 통한 합리적 테이블 모델링을 통해 이상 현상을 제거하고 데이터 중복을 피할 수 있으며, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있는 기능을 제공하고 있다. 관계형 데이터베이스는 메타 데이터를 총괄 관리할 수 있기 때문에 데이터의 성격, 속성 또는 표현방법 등을 체계화 할 수 있고, 데이터 표준화를 통한 데이터 품질을 확보할 수 있는 장점..