이 빠른 시작에서는 sqlcmd의 단일 명령을 사용하여 새 컨테이너를 만들고 해당 컨테이너에 데이터베이스를 복원하여 개발 또는 테스트를 위해 데이터베이스의 새 로컬 복사본을 만듭니다.
패키지 관리자를 통해 sqlcmd(Go)를 설치하면 sqlcmd(ODBC)가 환경 경로의 sqlcmd(Go)로 바뀝니다. 이 변경 내용을 적용하려면 현재 명령줄 세션을 닫고 다시 열어야 합니다.
sqlcmd(ODBC)는 제거되지 않으며 실행 파일에 전체 경로를 지정하여 계속 사용할 수 있습니다.
PATH
변수를 업데이트하여 우선 순위를 지정하는 버전을 나타낼 수도 있습니다. Windows 11에서 이렇게 하려면 시스템 설정을 열고 정보 > 고급 시스템 설정으로 이동합니다.
시스템 속성이 열리면 [환경 변수] 버튼을 선택합니다. 아래쪽 절반의 시스템 변수에서 [경로]를 선택한 다음 [편집]을 선택합니다.
sqlcmd(Go)가 저장되는 위치(기본값은 C:\Program Files\sqlcmd
)가 C:\Program Files\Microsoft SQL Server\<version>\Tools\Binn
앞에 나열된 경우 sqlcmd(Go)가 사용됩니다.
sqlcmd(ODBC)를 다시 기본값으로 설정하도록 순서를 되돌릴 수 있습니다.
sqlcmd(Go)는 Microsoft Windows, macOS, Linux에서 플랫폼 간 설치가 가능합니다. 1.6보다 최신 버전은 일부 패키지 관리자에서 제공되지 않을 수 있습니다. 해당 가용성에 대한 예상 날짜는 아직 없습니다.
Winget(Windows 패키지 관리자 CLI)
아직 없는 경우 Windows 패키지 관리자 클라이언트를 설치합니다.
다음 명령을 실행하여 sqlcmd(Go)를 설치합니다.
winget install sqlcmd
아직 설치하지 않은 경우 Chocolatey를 설치합니다.
다음 명령을 실행하여 sqlcmd(Go)를 설치합니다.
choco install sqlcmd
GitHub 코드 리포지토리의 -windows-amd64.zip
(Go) -windows-arm.zip
릴리스에서 해당 또는 자산을 다운로드합니다.
다운로드한 zip 폴더에서 sqlcmd.exe
파일을 추출합니다.
필요한 경우 Homebrew를 설치합니다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrew를 사용하여 sqlcmd를 설치합니다.
brew install sqlcmd
GitHub 코드 리포지토리의 -darwin-amd64.zip
(Go) 최신 릴리스에서 자산을 다운로드합니다.
다운로드한 zip 폴더에서 sqlcmd
파일을 추출합니다.
공용 리포지토리 GPG 키를 가져옵니다.
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
ubuntu/20.04
세그먼트가 debian/11
, ubuntu/20.04
또는 ubuntu/22.04
일 수 있는 Microsoft 리포지토리를 추가합니다.
add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.list)"
apt로 sqlcmd(Go)를 설치합니다.
apt-get update
apt-get install sqlcmd
Microsoft 리포지토리 키를 가져옵니다.
rpm --import https://packages.microsoft.com/keys/microsoft.asc
저장소 구성 파일을 다운로드합니다. 여기서 fedora/32
세그먼트는 opensuse/42.3
, rhel/8
, 또는 sles/15
일 수 있습니다. OS 버전이 이러한 옵션 중 하나에 직접 해당하지 않는 경우 버전에서 리포지토리 구성 파일을 사용할 수 있습니다.
curl -o /etc/yum.repos.d/packages-microsoft-com-prod.repo https://packages.microsoft.com/config/fedora/40/prod.repo
yum으로 sqlcmd(Go)를 설치합니다.
yum install sqlcmd
GitHub 코드 리포지토리의 -linux-x64.tar.bz2
(Go) -linux-arm.tar.bz2
릴리스에서 해당 또는 자산을 다운로드합니다.
다운로드한 zip 폴더에서 sqlcmd
파일을 추출합니다.
이 빠른 시작에서는 데이터베이스의 로컬 복사본을 만든 다음 쿼리하여 고객의 지출을 분석하는 프로세스를 안내합니다.
최신 버전의 SQL Server를 사용하여 컨테이너에 새 SQL Server 인스턴스를 만듭니다. 또한 이 명령은 WideWorldImporters
데이터베이스를 복원합니다.
새 터미널 창을 열고 다음 명령을 실행합니다.
sqlcmd create mssql --name sql1 --accept-eula --using https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak
Azure Data Studio를 사용하여 데이터베이스 쿼리
Azure Data Studio를 열고 데이터를 확인합니다.
동일한 터미널 창에서 다음 명령을 실행합니다.
sqlcmd open ads
이제 데이터베이스의 로컬 복사본이 있으므로 쿼리를 실행할 수 있습니다. 다음은 고객의 지출 분석에 사용할 수 있는 쿼리입니다.
SELECT bg.BuyingGroupName AS CustomerName
,COUNT(DISTINCT i.InvoiceID) AS InvoiceCount
,COUNT(il.InvoiceLineID) AS InvoiceLineCount
,SUM(il.LineProfit) AS Profit
,SUM(il.ExtendedPrice) AS ExtendedPrice
FROM Sales.Invoices i
INNER JOIN Sales.Customers c
ON i.CustomerID = c.CustomerID
INNER JOIN Sales.InvoiceLines il
ON i.InvoiceID = il.InvoiceID
INNER JOIN Sales.BuyingGroups bg
ON c.BuyingGroupID = bg.BuyingGroupID
GROUP BY bg.BuyingGroupName
UNION
SELECT c.CustomerName
,COUNT(DISTINCT i.InvoiceID) AS InvoiceCount
,COUNT(il.InvoiceLineID) AS InvoiceLineCount
,SUM(il.LineProfit) AS Profit
,SUM(il.ExtendedPrice) AS ExtendedPrice
FROM Sales.Invoices i
INNER JOIN Sales.Customers c
ON i.CustomerID = c.CustomerID
INNER JOIN Sales.InvoiceLines il
ON i.InvoiceID = il.InvoiceID
LEFT JOIN Sales.BuyingGroups bg
ON c.BuyingGroupID = bg.BuyingGroupID
WHERE bg.BuyingGroupID IS NULL
GROUP BY c.CustomerName
ORDER BY Profit DESC
개발 및 테스트 목적으로 데이터베이스의 로컬 복사본을 빠르게 만들 수 있었습니다. 단일 명령을 사용하여 새 로컬 인스턴스를 만들고 최신 백업을 복원했습니다. 그런 다음 다른 명령을 실행하여 Azure Data Studio를 통해 연결했습니다. 그리고 Azure Data Studio를 사용하여 데이터베이스를 쿼리하고 고객의 지출을 분석했습니다.
데이터베이스를 사용해 보고 다음 명령을 사용하여 컨테이너를 삭제합니다.
sqlcmd delete --force
데모 환경이므로 편의를 위해 --force
플래그를 사용했습니다. 대부분의 경우 의도치 않은 데이터베이스를 실수로 삭제하지 않도록 --force
플래그를 해제하는 것이 좋습니다.