728x90

SSMS/VS Code를 사용하여 애저(Azure) 데이터베이스 연결 및 쿼리 실습하기

들어가며

  • 애저(Azure)에서 SSMS(SQL Server Management Studio) 또는 VS Code를 사용하여 연결 및 쿼리 실습을 해보자.
  • 이번 실습은 이전의 글(https://dev-astra.tistory.com/385)에 이어서 진행한다.

 

실습하기

SSMS에서 실습해보기

SSMS(SQL Server Management Studio) 설치

  • 아래 링크에서 SSMS를 설치한다.
 

SSMS(SQL Server Management Studio) 다운로드 - SQL Server Management Studio (SSMS)

최신 버전의 SSMS(SQL Server Management Studio)를 다운로드합니다.

learn.microsoft.com

 

서버 연결 정보 가져오기

  • 데이터베이스에 연결하는데 필요한 연결 정보를 가져온다.
  • 애저 포털에 로그인한 후, 쿼리하려는 SQL Database 또는 SQL Managed Instance 페이지로 이동한다.
  • <개요> 페이지에서 SQL Database의 데이터베이스에 대한 서버 이름 옆에 도메인으로 구성된 주소를 복사한다.

 

데이터베이스 연결

서버는 포트 1433에서 수신 대기한다. 회사 방화벽 뒤에서 서버를 연결하려면 방화벽에서 이 포트가 열려 있어야 한다.
  • 설치한 SSMS(SQL Server Management Studio) 프로그램을 실행한다.
  • 서버에 연결 대화 상자가 표시된다. 다음 정보를 입력한다.
설정 제안 값 설명
서버 유형 데이터베이스 엔진 필수 값
서버 이름 정규화된 서버 이름 예: mysqlserver-rg111.database.windows.net
인증 SQL Server 인증 이번 실습에서는 SQL 인증을 사용한다.
로그인 서버 관리자 계정 사용자 ID 서버를 만드는데 사용되는 서버 관리자 계정의 사용자 ID
암호 서버 관리자 계정 암호 서버를 만드는데 사용되는 서버 관리자 계정의 암호

 

  • 서버에 연결(Connect to Server) 대화 상자에서 [옵션(Options)] 버튼을 클릭한 후, 드롭 다운 메뉴에서 @mySampleDatabase@를 선택(찾아보기) 한다.

<서버 찾아보기...>를 클릭한 후, 연결을 시도한다.

mySampleDatabase를 선택한다.

 
  • 필수 구성 요소 섹션에서 빠른 시작을 완료하면 @mySampleDatabase@라는 AdventureWorksLT 데이터베이스가 만들어진다. AdventureWorks 데이터베이스의 작업 복사본 이름이 @mySampleDatabase@와 다른 경우 이를 대신 선택한다.
  • [연결] 버튼을 클릭하면 개체 탐색기 창이 열린다.

 

접속이 안될 경우에는 서버 방화벽 설정을 선택하여(SQL Server 리소스의 [네트워킹] 메뉴에서 방화벽 규칙) 현재 작업하는 네트워크의 IP(클라이언트 IP)가 추가 되었는지 확인한다.

 

① 데이터 쿼리하기

  • SELECT Transact-SQL 문을 실행하여 범주별 상위 20개 제품을 쿼리한다.
  • 개체 탐색기에서 @mySampleDatabase@를 마우스 오른쪽 버튼으로 클릭한 후, @[새 쿼리]@를 선택한다. 데이터베이스에 연결된 새 쿼리 창이 열린다.
  • 쿼리 창에서 다음 SQL 쿼리문을 입력한다.
SELECT pc.Name as CategoryName, p.name as ProductName
FROM [SalesLT].[ProductCategory] pc
JOIN [SalesLT].[Product] p
ON pc.productcategoryid = p.productcategoryid;

 

  • 그리고 도구 모음에서 @[▶️ 실행]@ 버튼을 클릭하여 쿼리를 실행하고, @Product@ 및 @ProductCategory@ 테이블에서 데이터를 검색한다.

참고
  • 아래 쿼리로 @SalesLT.Product@, @SalesLT.ProductCategory@ 테이블을 쿼리로 각각 확인해본다.
SELECT * FROM SalesLT.ProductCategory
SELECT * FROM SalesLT.Product

 

② 데이터 삽입하기

  • INSERT Transact-SQL 문을 실행하여 @SalesLT.Product@ 테이블에서 새 제품을 만든다.
  • 새로운 쿼리를 생성한 후, 쿼리 창에서 다음 쿼리문을 작성하고 실행한다.
INSERT INTO [SalesLT].[Product] ( 
      [Name]
    , [ProductNumber]
    , [Color]
    , [ProductCategoryID]
    , [StandardCost]
    , [ListPrice]
    , [SellStartDate]
)
VALUES(
    'myNewProduct0'
    , 1234567890
    , 'NewColor'
    , 1
    , 100
    , 100
    , GETDATE() 
);

 

결과 보기
  • 이전 쿼리의 실행 결과를 다음 쿼리로 확인한다.
SELECT * FROM [SalesLT].[Product]
WHERE Name='myNewProduct0'

 

③ 데이터 업데이트 하기

  • UPDATE Transact-SQL 문을 실행하여 새 제품을 수정한다.
  • 새로운 쿼리를 생성한 후, 쿼리 창에서 다음 쿼리문을 작성하고 실행한다.
UPDATE [SalesLT].[Product]
SET [ListPrice] = 125
WHERE Name = 'myNewProduct0';

쿼리문을 실행하여 Product 테이블에서 지정된 행을 업데이트 한다.

 

결과 보기
  • 이전 쿼리의 실행 결과를 다음 쿼리로 확인한다.
SELECT * FROM [SalesLT].[Product]
WHERE Name='myNewProduct0'

 

④ 데이터 삭제하기

  • DELETE Transact-SQL 문을 실행하여 새 제품을 제거한다.
  • 새로운 쿼리를 생성한 후, 쿼리 창에서 다음 쿼리문을 작성하고 실행한다.
DELETE FROM [SalesLT].[Product]
WHERE Name = 'myNewProduct0';

쿼리문을 실행하여 Product 테이블에서 지정한 행을 삭제한다.

 

결과 보기
  • 이전 쿼리의 실행 결과를 다음 쿼리로 확인한다.
SELECT * FROM [SalesLT].[Product]
WHERE Name='myNewProduct0'

 

VS Code에서 실습해보기

VS Code에서 mssql 확장 설치하기

  • VS Code에서 mssql 확장을 설치한다.
 

SQL Server (mssql) - Visual Studio Marketplace

Extension for Visual Studio Code - Develop Microsoft SQL Server, Azure SQL Database and SQL Data Warehouse everywhere

marketplace.visualstudio.com

 

VS Code의 Extension Marketplace에서 'mssql'을 검색하여 확장을 설치한다.

 

brew 및 OpenSSL 설치하기 (MacOS의 경우)

  • MacOS의 경우, mssql 확장에서 사용하는 .NET Core의 필수 구성 요소인 OpenSSL을 설치해야 한다.
  • 터미널을 열고, 다음 명령을 입력하여 @brew@ 및 @OpenSSL@을 설치한다.
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew update
$ brew install openssl
$ mkdir -p /usr/local/lib
$ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
$ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/

 

서버 연결 정보 가져오기

  • 애저 포털에 로그인 한 후, SQL Database 또는 SQL Managed Instance 페이지로 이동한다.
  • <개요> 페이지에서 SQL Database의 데이터베이스에 대한 서버 이름 옆에 도메인으로 구성된 주소를 복사한다.

 

VS Code에서 언어 모드를 SQL로 설정하기

  • VS Code에서 언어 모드를 @SQL@로 설정하여 @mssql@ 명령 및 T-SQL IntelliSense를 사용한다.

[Ctrl] + [N] 버튼을 눌러 새로운 일반 텍스트 파일을 생성한 후, 언어 모드를 SQL(MSSQL)로 설정한다.

 

데이터베이스 연결

계속하기 전에 서버 및 로그인 정보를 준비했는지 확인한다.
연결 프로필 정보를 입력하기 시작하면 VS Code에서 포커스를 변경하는 경우 프로필 만들기를 다시 시작해야 한다.
  • VS Code에서 @[Ctrl]@ + @[Shift]@ + @[P]@ (또는 @[F1]@) 키를 눌러서 명령 팔레트를 연다.
  • @MS SQL: Connect@를 선택하고 @[Enter]@를 클릭한다.
  • @연결 프로필 만들기(Create Connection Profile)@를 선택한다.
  • 프롬프트에 따라 새 프로필의 연결 속성을 지정한다. 각 값을 지정한 후에 @[Enter]@를 클릭하여 계속 진행한다.
속성 제안 값 설명
서버 이름 정규화된 서버 이름 예 : mynewserver20170313.database.windows.net.
데이터베이스 이름 mySampleDatabase 연결할 데이터베이스
인증 SQL 로그인 이번 실습에서는 SQL 인증을 사용한다.
사용자 이름 사용자 이름 서버를 만드는데 사용되는 서버 관리자 계정의 사용자 이름
암호(SQL 로그인) 암호 서버를 만드는데 사용되는 서버 관리자 계정의 암호
암호를 저장하시겠습니까? Yes 또는 No 매번 암호를 입력하지 않으려면 '예(Yes)'를 선택한다.
이 프로필의 이름을 입력합니다. mySampleProfile과 같은 프로필 이름 프로필을 저장할 경우 후속 로그인의 연결 속도가 빨라진다.
  • 성공하면 프로필이 생성되고 연결되었다는 알림이 나타난다.

① 데이터 쿼리하기

  • 다음 SELECT Transact-SQL 문을 실행하여 범주별 상위 20개 제품을 쿼리한다.
  • 편집기 창에서 다음 SQL 쿼리를 입력한다.
SELECT pc.Name as CategoryName, p.name as ProductName
FROM [SalesLT].[ProductCategory] pc
JOIN [SalesLT].[Product] p
ON pc.productcategoryid = p.productcategoryid;

 

  • @[Ctrl]@ + @[Shift]@ + @[E]@를 눌러 쿼리를 실행하고, @Product@ 및 @ProductCategory@ 테이블의 결과를 표시한다.

 

② 데이터 삽입하기

  • 다음 INSERT Transact-SQL 문을 실행하여 @SalesLT.Product@ 테이블에 새 제품을 추가한다.
  • 새로운 파일 @example2.sql@을 생성한 후, 다음 쿼리를 작성한다.
INSERT INTO [SalesLT].[Product] ( 
      [Name]
    , [ProductNumber]
    , [Color]
    , [ProductCategoryID]
    , [StandardCost]
    , [ListPrice]
    , [SellStartDate]
)
VALUES(
    'myNewProduct'
    , 123456789
    , 'NewColor'
    , 1
    , 100
    , 100
    , GETDATE() 
);

 

  • @[Ctrl]@ + @[Shift]@ + @[E]@를 눌러 @Product@ 테이블에 새 행을 삽입한다.

 

③ 데이터 업데이트 하기

  • 다음 UPDATE Transact-SQL 문을 실행하여 추가된 제품을 업데이트한다.
  • 새로운 파일 @example3.sql@을 생성한 후, 다음 쿼리를 작성한다.
UPDATE [SalesLT].[Product]
SET [ListPrice] = 125
WHERE Name = 'myNewProduct';

 

  • @[Ctrl]@ + @[Shift]@ + @[E]@를 눌러 @Product@ 테이블에서 지정된 행을 업데이트 한다.

 

④ 데이터 삭제하기

  • 다음 DELETE Transact-SQL 문을 실행하여 새 제품을 제거한다。
  • 새로운 파일 @example4.sql@을 생성한 후, 다음 쿼리를 작성한다.
DELETE FROM [SalesLT].[Product]
WHERE Name = 'myNewProduct';

 

  • @[Ctrl]@ + @[Shift]@ + @[E]@를 눌러 @Product@ 테이블에서 지정된 행을 삭제한다.

 

참고 사이트

 

SSMS: 연결 및 데이터 쿼리 - Azure SQL Database & SQL Managed Instance

SQL Server Management Studio(SSMS)를 사용하여 Azure SQL Database 또는 SQL Managed Instance에 연결하는 방법을 알아봅니다. 그런 다음 Transact-SQL(T-SQL) 문을 실행하여 데이터를 쿼리하고 편집합니다.

learn.microsoft.com

 

Visual Studio Code를 사용하여 연결 및 쿼리를 참조하세요. - Azure SQL Database & SQL Managed Instance

Visual Studio Code를 사용하여 Azure에서 Azure SQL Database 또는 SQL Managed Instance에 연결하는 방법을 알아봅니다. 그런 다음 Transact-SQL(T-SQL) 문을 실행하여 데이터를 쿼리하고 편집합니다.

learn.microsoft.com

728x90