[Database] 스키마(Schema)
2021. 8. 17. 12:21

● 스키마

- 데이터베이스 내에 있는 모든 개체(테이블, 뷰, 인덱스, 트리거, 프로시저 등)의 정식 명칭을 살펴보면 다음과 같은 형식을 갖는다.

데이터베이스_이름.스키마_이름.개체_이름
ex) CREATE TABLE [서버이름다를경우 서버 이름].tableDB.dbo.myTbl (id int);

- 여기서 스키마는 데이터베이스 내에 있는 개체들을 관리하는 묶음이라고 생각하면 된다

-- 테이블이 서로 다른 스키마에 생성

-- 실습용 데이터베이스 생성
USE tempdb;
CREATE DATABASE schemaDB;

-- 스키마를 2개 만든다
USE schemaDB;
GO
CREATE SCHEMA userSchema;
GO
CREATE SCHEMA buySchema;

-- 테이블을 생성하는데 스키마를 지정해서 생성한다.
CREATE TABLE userSchema.userTBL (id int);
CREATE TABLE buySchema.buyTBL (id int);
CREATE TABLE buySchema.prodTBL (id int);

-- 위와 같이 테이블을 생성했다면 테이블에 접근할 때 
-- 그냥 테이블 이름만으로는 접근할 수 없으며 반드시 '스키마.테이블'을 사용해야한다.
SELECT * FROM userTBL; -- (X)
SELECT * FROM userSchema.userTBL; -- (O)
--------------------------------------------
메시지 208, 수준 16, 상태 1, 줄 108
개체 이름 'userTBL'이(가) 유효하지 않습니다.

완료 시간: 2021-08-17T12:18:55.6942695+09:00
--------------------------------------------

 

'프로그래밍 > Database' 카테고리의 다른 글

[Database] 저장 프로시저 예시  (0) 2021.08.17
[Database] 트랜잭션의 예시  (0) 2021.08.17
[Database] 임시 테이블  (0) 2021.08.17
[Database] 스파스 열  (0) 2021.08.17
[Database] 조인(JOIN)  (0) 2021.08.11