0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【SQL Server】SQL Serverの導入_sqlcmdで遊ぶ(DB作成~INSERTまで)

Last updated at Posted at 2022-07-29

DBの勉強/検証がてらにSQL Serverの導入を行いました。なお、コマンドベースでの作業の為にSSMSは使用していません。
※個人的には、SSMSの方が操作しやすいです。

以下リンクから、「SQL2019-SSEI-Eval.exe」を取得し、インストールを行っています。
SQL Server のダウンロード

インストール後に、Powershellからsqlcmdコマンドを実施します。
-S でサーバ名を指定、-E で認証方式をWindows認証で接続出来るようです。
Windows認証/SQL Server認証 と二つの認証方法があるようで、Windows認証だとWindowsにログインした際の認証情報を使うようでID/PASSの入力は必要ない。
SQL Server認証では、SQL Server側で管理しているID/PASSでログインを行う必要があるようです。

今回は、インストール後にID/PASSなどの設定を行っていないので、、
とりえあず、Windows認証でログインする事にします。

コマンド実行後に、1>と返ってきました。

sqlcmd
PS C:\> sqlcmd -S localhost -E
1>

では、好きなアニメのキャラ情報などが入ったDBを作成したいと思います。
CREATE DATABASEで作成出来ます。ちなみに、GO打たないと実行されません。
当方はこの仕様を知らずに、何か間違えたか?と5分位無駄にしました。

DB作成
1>CREATE DATABASE YUGIOH;
2>GO

作成したDBに移動します。
移動する前に現在地の確認を行い、移動します。
※DB_NAMEという関数を使用すれば、現在地が分かります。AS演算子で、列名をつけてます。
useを使って、master → YUGIOH にDBを切り替えます。

※下記URL参照
https://docs.microsoft.com/ja-jp/sql/t-sql/functions/db-name-transact-sql?view=sql-server-ver16

DB切り替え
>1SELECT DB_NAME() AS [Current Database];  
>2GO
Current Database
--------------------------------------------------------------------------------------------------------------------------------
master

1> use YUGIOH;
2> go
データベース コンテキストが 'YUGIOH' に変更されました。

1> SELECT DB_NAME() AS [Current Database];
2> go
Current Database
--------------------------------------------------------------------------------------------------------------------------------
YUGIOH

テーブルの作成を行います。CREATE TABLEで作成出来ます。
作成後に、テーブルが出来ているかSelectで探してみます。

テーブル作成
1>CREATE TABLE VANILLA(
2>code INT UNIQUE,
3>name VARCHAR(20),
4>attack INT,
5>defense INT);
6>GO

1> select * from VANILLA;
2> go
code        name                 attack      defense
----------- -------------------- ----------- -----------

(0 行処理されました)

テーブル作成後に、INSERTOでデータ挿入を行います。
selectで反映されているかを確認します。

データ挿入
1> INSERT INTO VANILLA (code,name,attack,defense) values (1,'ブルーアイズホワイトドラゴン',3000,2500)
2> INSERT INTO VANILLA (code,name,attack,defense) values (2,'ブルーアイズホワイトドラゴン',3000,2500)
3> INSERT INTO VANILLA (code,name,attack,defense) values (3,'ブルーアイズホワイトドラゴン',3000,2500)
4> INSERT INTO VANILLA (code,name,attack,defense) values (4,'ブラックマジシャン',2500,2100)
5> INSERT INTO VANILLA (code,name,attack,defense) values (5,'エルフの剣士',1400,1200)
6> INSERT INTO VANILLA (code,name,attack,defense) values (6,'ワイト',300,200);
7> GO

(1 行処理されました)

(1 行処理されました)

(1 行処理されました)

(1 行処理されました)

(1 行処理されました)

(1 行処理されました)

1> SELECT * FROM VANILLA;
2> go
code        name                           attack      defense
----------- ------------------------------ ----------- -----------
          1 ブルーアイズホワイトドラゴン                        3000        2500
          2 ブルーアイズホワイトドラゴン                        3000        2500
          3 ブルーアイズホワイトドラゴン                        3000        2500
          4 ブラックマジシャン                             2500        2100
          5 エルフの剣士                                1400        1200
          6 ワイト                                    300         200

(6 行処理されました)

見慣れてる単語だと単調な作業でも楽しく感じます。インデントが気になりますが、今は無視します。
(sqlplusとかだと、formatすぐ弄りたくなるのですが、、)
簡単に、selectを叩いていこうと思います。ブルーアイズホワイトドラゴンの攻撃力と守備力を足して、totalカラムとして出力します。

遊び
1> select name,(attack + defense) as total from VANILLA where name = 'ブルーアイズホワイトドラゴン'
2> go
name                           total
------------------------------ -----------
ブルーアイズホワイトドラゴン                        5500
ブルーアイズホワイトドラゴン                        5500
ブルーアイズホワイトドラゴン                        5500

地味に楽しいな、、土日にもう少し遊んでみようかなと思います。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?