728x90
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를 설치한다.
서버 연결 정보 가져오기
- 데이터베이스에 연결하는데 필요한 연결 정보를 가져온다.
- 애저 포털에 로그인한 후, 쿼리하려는 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';
결과 보기
- 이전 쿼리의 실행 결과를 다음 쿼리로 확인한다.
SELECT * FROM [SalesLT].[Product]
WHERE Name='myNewProduct0'
④ 데이터 삭제하기
- DELETE Transact-SQL 문을 실행하여 새 제품을 제거한다.
- 새로운 쿼리를 생성한 후, 쿼리 창에서 다음 쿼리문을 작성하고 실행한다.
DELETE FROM [SalesLT].[Product]
WHERE Name = 'myNewProduct0';
결과 보기
- 이전 쿼리의 실행 결과를 다음 쿼리로 확인한다.
SELECT * FROM [SalesLT].[Product]
WHERE Name='myNewProduct0'
VS Code에서 실습해보기
VS Code에서 mssql 확장 설치하기
- VS Code에서 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를 사용한다.
데이터베이스 연결
계속하기 전에 서버 및 로그인 정보를 준비했는지 확인한다.
연결 프로필 정보를 입력하기 시작하면 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@ 테이블에서 지정된 행을 삭제한다.
참고 사이트
728x90
728x90
'DevOps > Azure' 카테고리의 다른 글
[Azure] 도커(Docker) 실습하기 : 간단한 실습 해보기 (0) | 2023.05.27 |
---|---|
[Azure] 도커(Docker) 실습하기 : 도커 설치하기 (0) | 2023.05.27 |
[Azure] 파이썬(Python)을 사용하여 데이터베이스 쿼리 실습하기 (0) | 2023.05.24 |
[Azure] SQL Server 실습하기 (0) | 2023.05.24 |
[Azure] 단일 데이터베이스 만들기 (0) | 2023.05.23 |
[Azure] WebApp 생성 및 Flask 배포하기 (0) | 2023.05.23 |
[Azure] 워드프레스(WordPress) 사이트 만들기 (7) | 2023.05.21 |
[Azure] 가상 네트워크(Virtual Network) 생성 후, 네트워크 보안 그룹(NSG)을 통한 네트워크 트래픽 필터링 (NIC 연결) (1) | 2023.05.19 |