본문 바로가기

SQL

[SQL] 제약 추가와 삭제, DROP·ADD CONSTRAINT! · Structured Query Language - DROP·ADD CONSTRAINT - 제약 조건을 추가하고, 삭제하는 부분입니다. 테이블을 만들 때, 제약조건을 명시하지 않았거나, 또는, 기존에 존재하는 제약조건을 없애고자 할때 다음과 같은 명령어를 작성합니다. [추가] ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건 (컬럼명); [삭제] ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명; 추가 부분에서는 'CREATE TABLE' 에서 제약조건 추가하는 두가지 방법 중에 하나와 동일한 형태입니다. 이 글에서는 따로 예제를 만들지 않았습니다. 더보기
[SQL] 컬럼의 이름을 바꾸어 보자, RENAME COLUMN! Structured Query Language - RENAME COLUMN - 이번에는 컬럼명을 바꾸는 방법에 대해서 알아볼까 합니다. 다음과 같이 명령어를 작성합니다. ALTER TABLE 테이블명 RENAME COLUMN 변경할 컬럼명 TO 변경될 이름; 별다른 설명이 필요한 예제가 아니기 때문에, 예제를 통해 글을 마치도록 합니다. 1. 변경할 테이블 2. COL3의 이름 변경을 시도합니다. 바꿀 이름은 'modifiedCol3'입니다. 3. 변경된 이름을 확인합니다. 더보기
[SQL] 테이블의 컬럼을 재정의 해보자, MODIFY COLUMN! Structured Query Language - MODIFY COLUMN - 이번 글에서는 테이블에 정의된 컬럼에 대해서 데이터 타입과, 기본값(Default), NOT NULL 제약에 대해서 변경할 수 있는 명령어에 대해서 알아볼까 합니다. 역시, ALTER TABLE을 통해서 작업을 하구요. 일단 어떻게 명령어를 작성하는지 알아봐야겠죠? ALTER TABLE 테이블명 MODIFY ( 컬럼1 데이터 타입 기본값 NOT NULL, 컬럼2 데이터 타입 ... ) MODIFY 다음부터는 'CREATE TABLE' 명령어를 사용해서 각 컬럼을 정의할 때와 동일합니다. 하지만, 첫 컬럼부터 마지막 컬럼까지 다 적을 필요는 없구요, 변경할려는 테이블에 관해서만 적으면 되겠습니다. 1. 변경할 테이블 입니다. 2.. 더보기
[SQL] 기존의 테이블에 컬럼을 삭제해보자, DROP COLUMN! Structured Query Language - DROP COLUMN - 우선, 기존의 테이블에 컬럼을 추가하는 방법은 다음 글을 참고하시면 되겠습니다. 2012/11/28 - [데이터베이스/SQL & PL/SQL] - [SQL] 기존의 테이블에 컬럼을 추가해보자, ADD COLUMN DROP COLUMN 명령어는 다음과 같이 작성됩니다. ALTER TABLE 테이블명 DROP COLUMN 삭제할 컬럼명; 다음의 테이블에 작업을 할겁니다.(desc 조회) 지난 글에서 추가했던 'COL4'를 다시 삭제해 보겠습니다. 다음과 같이 명령어를 작성합니다. 그리고, 다시 desc 명령어를 통해, 컬럼이 제대로 삭제되었는지 확인합니다. 이상 글을 마치겠습니다. 더보기
[SQL] 기존의 테이블에 컬럼을 추가해보자, ADD COLUMN! ㅁ Structured Query Language - ADD COLUMN - "만들어 놓았던 기존의 테이블에 컬럼을 추가할려면!? 테이블을 지우고 다시 만들것인가?!" 이렇게 고민한 적이 많은데요, 정말 그렇게 할려면, 눈물이 쏙.. ㅠㅠ 빠집니다. ADD COLUMN은 이런 걱정을 해결해 줄 희망의 빛 한줄기 입니다. ADD COLUMN은 명령어 "ALTER TABLE"에 속한 명령어의 한 부분입니다. 우선 ADD COLUMN은 다음과 같이 작성합니다. ALTER TABLE 테이블명 ADD 추가할 컬럼명 데이터타입; 그렇다면, 예제를 통해서 보도록 할게요. 다음과 같은 테이블이 존재합니다. (desc 테이블 조회) TEST_TABLE 에는 세개의 컬럼이 존재합니다. 그렇다면 4번째 컬럼을 넣어보도록 하.. 더보기
[SQL] 테이블을 복제하자, AS SELECT!! Structured Query Language - AS SELECT를 활용한 테이블 복제 - 이번 글에서는 테이블을 만드는 또하나의 방법인 AS SELECT 를 활용한 방법입니다. 우선 테이블을 만드는 방법은 다음 글을 참고하시면 되겠습니다. 2011/07/24 - [데이터베이스/SQL & PL/SQL] - [SQL] 테이블을 만들어보자, CREATE!! AS SELECT를 이용해서 테이블을 만들게 되면 기존의 테이블의 가져와서 똑같이 복제합니다. 그렇기 때문에, 테이블 생성시에 기존의 데이터 유형을 일일이 다시 재정의 하지 않아도 됩니다. 하지만 여기서 주의해야할 점!! NOT NULL을 제외한 나머지 제약(Constraint)-기본키, 외부키, Unique, 등등-이 적용되지 않습니다. 이런 제약을 .. 더보기
[SQL] DISTINCT & ALL, 중복 제거! DISTINCT 우선, SELECT문을 다음과 같이 작성, 실행시켜 봅니다. SELECT emp.department_id, dep.department_name FROM hr.employees emp INNER JOIN hr.departments dep ON emp.department_id=dep.department_id; 제가 이 쿼리에서 알고 싶은것은 employees 테이블에서 사원들이 속해있는 모든 부서아이디와 부서명 입니다. [실행화면] -전체 결과의 일부입니다. 쿼리를 실행했더니 위와 같은걸 확인해 볼 수 있는데요, 문제는 중복된 데이터가 여러개 존재한다는 것입니다. 쉽게 얘기하면 사원들 각각의 데이터를 조회했다고 할 수 있겠네요. 우리는 그저 부서 아이디와 부서명을 알고 싶은데 말이죠. 그럼 .. 더보기
[SQL] 그룹 함수(Group Functions) 에 대해서 알아보자! Group Functions 개요 그룹 함수-집계 함수-는 무엇일까요? 간단히 정의 하자면, 여러 로우(ROW)들이 한데 모여있는 집합에 대해 하나의 결과를 가져다 주는 것이라 말할 수 있습니다. 이를 테면, 전체값의 평균이라던지, 전체값의 합이라던지, 전체의 수(갯수)라던지. 이런게 그룹 전체에 대해서 조회하는 것입니다. 그럼, 어떤 그룹 함수들이 있는지 살펴보도록 할까요? 다음과 같이 7개의 함수가 존재합니다. 1. AVG - 평균을 반환합니다. 2. COUNT - Row의 갯수를 반환합니다. 3. MAX l - 최상위 값을 반환합니다. 4. MIN l - 최하위 값을 반환합니다. 5. STDDEV - 표준편차를 반환합니다. 6. SUM - 총 합을 반환합니다. 7. VARIANCE - 분산을 반환합.. 더보기
[SQL] SELECT, 데이터를 조회하자! 데이터 베이스 안에 있는 데이터를 조회하기 위해서는 이번시간에 알아볼 SELECT문이 필수 입니다. 기본이기도 하구요. 사실 SELECT문만 잘 사용할 줄 안다면, 프로그래밍 할때도 많은 도움이 됩니다. 일단, 우선 SELECT문의 형식부터 알아보겠습니다. SELECT 컬럼명1, 컬럼명2, .... FROM 테이블명 WHERE 조건 ORDER BY 컬럼명; SELECT는 단독으로 쓰여질 수 없습니다. 필수로 따라가야 할 것이 FROM이구요. 그외 조건(WHERE)이나 기타 다른 키워드를 사용할 수 있습니다. SELECT에서는 우선 조회할려는 데이터가 담겨있는 컬럼을 조회합니다. 한 컬럼내에서는 동일한 타입과 성격의 데이터가 저장이 되는데요. 하나의 테이블이 하나 이상의 컬럼을 담고 있을때 SELECT 를.. 더보기
[SQL] DB안의 사전, 데이터 딕셔너리(Data Dictionary)! 제가 SQL을 처음 배우면서 desc라는 명령을 알게 되었는데요, 그때 선생님께 물었습니다. "테이블에 존재하는 컬럼들에 대해서는 이 명령어를 써서 알 수 있는데, 제가 만든 테이블들의 전체 정보를 알 수 없을까요? 무엇을 만들었는지, 알고 싶습니다." 그랬더니 11장 예습하라고 하시던 선생님 생각이 납니다. 당시는 1,2장 배우고 있었던 때였죠. 아마, 얘기를 하시려던 부분이 데이터 딕셔너리(Data Dictionary) 파트 였을 겁니다. 데이터 딕셔너리는 스키마 · 사용자 · 객체 · 권한 · 롤 · 데이터베이스의 정보 등등, 오라클 데이터베이스를 운영하는데 필요한 정보를 관리하는 별도의 객체들을 일컫습니다. 시스템 정보를 가지고 있기 때문에 (건드리면 위험) 보통, 뷰를 통해서 조회만 할 수 있습.. 더보기