SQL Server / 스키마 / 만들기, 조회하기, 수정하기, 삭제하기

스키마(Schema)를 이용하여 테이블을 분류하고 권한 관리를 할 수 있다.

스키마 만들기

  • a라는 이름의 스키마를 만든다.
create schema a;

스키마 조회하기

  • 스키마 정보를 출력한다.
select * from sys.schemas;

테이블 만들기

  • 스키마 지정 없이 테이블을 만들면 dbo 스키마가 붙는다.
create table client ( id int );
  • 스키마를 지정하고 만들면, 그 스키마에 테이블이 만들어진다.
create table a.client ( id int );
  • dbo.client와 a.client는 테이블 이름은 같지만 다른 테이블로 처리된다.

테이블의 스키마 변경하기

  • a.client의 스키마를 b로 변경한다. 즉, b.client로 만든다.
alter schema b transfer a.client;

스키마 삭제하기

  • a 스키마를 삭제한다. 만약 a에 속한 테이블이 있으면 삭제되지 않는다.
drop schema a;

Related Posts

SQL Server / SSMS / 탭 설정하는 방법

SQL Server / SSMS / 탭 설정하는 방법

SSMS의 텍스트 에디터의 기본 탭 크기는 4이다. 만약 탭 크기를 변경하고 싶다면 을 열고, 텍스트 편집기 > 모든 언어 > 탭 으로 이동하여, 탭 크기의 수를 조정한다. 그리고 이에 맞게 들여쓰기도 같이 조정한다. 개인적으로 선호하는 설정은 탭 크기 2에 공백 삽입.

SQL Server / Query / SELECT / 데이터 조회

SQL Server / Query / SELECT / 데이터 조회

예제로 사용한 데이터베이스는 AdventureWorks이다. SELECT로 원하는 데이터를 조회한다. SELECT FROM 기본 SELECT 뒤에는 조회할 열 이름을, FROM 뒤에는 조회할 테이블 이름을 입력한다. 모든 열을 조회한다면 *를 사용한다. HumanResources.Employee 테이블의 모든 열을 조회한다. select * from HumanResources.Employee ; HumanResources.Employee 테이블에서 BusinessEntityID, JobTitle, BirthDate, HireDate를 조회한다. select BusinessEntityID, JobTitle, BirthDate, HireDate from HumanResources.Employee ; TOP TOP으로 조회 개수를 정한다. 상위 10개를 ...

SQL Server / Query / 메모

최근 날짜 가져오기 Name으로 그룹화한 후 최근 날짜를 가져온다. SELECT Name, MAX( Date ) FROM Table1 GROUP BY Name 최근 날짜가 2020년인 것만 가져온다. SELECT Name, MAX( Date ) FROM Table1 GROUP BY Name HAVING MAX( Date ) BETWEEN '2020-01-01' AND '2020-12-31' 모든 데이터베이스 출력하기 EXECUTE sp_helpdb;

SQL Server / 보안 / 사용자 계정 만들고 권한 추가하는 방법

SQL Server / 보안 / 사용자 계정 만들고 권한 추가하는 방법

SQL Server의 사용자 계정은 Windows 인증을 이용한 사용자 계정, SQL Server 자체의 사용자 계정이 있습니다. 그 중 SQL Server 자체의 사용자 계정을 만들고, 권한을 부여하는 방법을 알아보겠습니다. SSMS로 SQL Server에 접속합니다. 을 선택합니다.(확장하면 전체 사용자 목록을 볼 수 있습니다.) 마우스 우클릭하고 을 클릭합니다. 사용자를 추가하는 창이 뜹니다. 을 선택하고... 로그인 ...

SQL Server / 관리 / 스케줄에 따라 자동 백업하는 방법

SQL Server / 관리 / 스케줄에 따라 자동 백업하는 방법

데이터베이스는 주기적으로 백업을 해야 합니다. SQL Server의 유지 관리 계획을 이용하면, 백업 되풀이 작업을 만들어 일정 주기마다 자동으로 백업하게 할 수 있습니다. SSMS로 자동 백업을 만드는 방법을 알아보겠습니다. 을 선택합니다. 마우스 우클릭하고 를 클릭합니다. 을 클릭합니다. 이름을 적절히 정하고 을 클릭합니다. 를 선택하고 ...

SQL Server / SSMS / IntelliSense / 자동 완성 기능 사용하는 방법, 설정하는 방법

SQL Server / SSMS / IntelliSense / 자동 완성 기능 사용하는 방법, 설정하는 방법

텍스트 에디터의 경우 코드의 일부분을 입력했을 때 그 문자열을 포함한 코드 리스트를 보여주는 기능이 있다. 이러한 자동 완성 기능을 SSMS에서도 제공하고 있고, IntelliSense라고 한다. 원하는 것을 쉽게 찾고, 오타를 줄일 수 있는 유용한 기능이다. 예를 들어 from 뒤에 문자열을 입력하면 그와 관련된 것이 나오고, 상하 화살표를 이용해 선택한다. 선택한 것을 사용할 ...

SQL Server / SSMS / 글꼴 변경하는 방법

SQL Server / SSMS / 글꼴 변경하는 방법

SQL Server 관리는 보통 SSMS(SQL Server Management Studio)로 한다. 다른 툴도 많이 있지만, 전용 도구가 갖는 장점이 많이 있기 때문이다. 보통 한글 버전을 설치하게 되는데, 쿼리 창 기본 글꼴이 돋움체이다. 만약 이 글꼴이 마음에 들지 않는다면 옵션에서 변경할 수 있다. 변경은 에서 한다. 에서 글꼴을 설정해주면 끝. 개인적으로 ...

SQL Server / 오류 22022 / SQLServerAgent가 현재 실행되고 있지 않으므로 이 동작을 알릴 수 없습니다.

SQL Server / 오류 22022 / SQLServerAgent가 현재 실행되고 있지 않으므로 이 동작을 알릴 수 없습니다.

SQL Server에 스케줄에 따라 자동 백업하는 작업을 추가할 때 다음과 같은 메시지가 나왔습니다. SQL Server Agent가 실행되고 있지 않아 작업을 추가할 수 없는 것입니다. SQL Server Agent가 실행 중이 아니어서 발생한 문제이므로, 실행시키면 해결되겠죠? SQL Server가 설치된 컴퓨터의 서비스를 엽니다. Windows Server라면 서버 관리자에서 를 클릭하면 됩니다. 아니면, 실행 창을 ...

SQL Server / 열 / 만들기, 삭제하기, 수정하기, 조회하기

열 정보 조회하기 방법 1 client 테이블의 열의 모든 정보를 조회한다. select * from information_schema.columns where table_name = 'client'; client 테이블의 열의 특정 정보만 조회한다. select column_name, ordinal_position, data_type from information_schema.columns where table_name = 'client'; 방법 2 execute sp_columns @table_name = 'city'; 열 추가하기 client 테이블에 client_name 열을 추가한다. 테이터 형식은 varchar, 최대 길이는 50이다. alter table client add ...

SQL Server / 논리 연산자 / IN, NOT IN

SQL Server / 논리 연산자 / IN, NOT IN

예제로 사용한 데이터베이스는 AdventureWorks이다. IN 다음은 Person.Person 테이블에서 FirstName, MiddleName, LastName을 10개 추출하는 쿼리이다. SELECT TOP(10) FirstName, MiddleName, LastName FROM Person.Person 만약 FirstName이 Syed 또는 Sam 또는 John인 사람을 추출하고 싶다면 아래처럼 쿼리한다. SELECT TOP(10) FirstName, MiddleName, LastName FROM Person.Person WHERE FirstName IN ( 'Syed', 'Sam', 'John' ) 물론 아래와 같이 해도 된다. SELECT TOP(10) FirstName, MiddleName, LastName FROM Person.Person WHERE FirstName ...