【SQLServer】基本文法まとめ

コメントアウト

SQL
--コメントアウト
SQL

変数宣言

SQL
--文字列
DECLARE @変数名 NVARCHAR(max)
--整数
DECLARE @変数名 int
--日付
DECLARE @変数名 date
SQL

変数代入

SQL
--値を代入
SET @変数名 = '値'

--セレクト結果を代入
SET @変数名 = (Select~)

--ケース結果を代入
SET @変数名 = CASE

--宣言と代入を一文にまとめることも可能
DECLARE @変数名 NVARCHAR(max) = '文字列'
DECLARE @変数名 int = 1
SQL

SELECT

SQL
SELECT[列] From [表] where 検索条件 order by [列] 

--表結合
SELECT [列] From [表1] join [表2] ON [表1].[列]=[表2].[列] 
SQL

UPDATE

SQL
UPDATE [表] SET [列] = 値 where 検索条件

--表1の値を表2の値で更新
UPDATE [表1] SET [表1].[列] = [表2].[列] From [表2] where [表1].[列] = [表2].[列]
SQL

INSERT

SQL
INSERT INTO [表]([列],[列]) Values(値,値)

--表1に表2の値を挿入を挿入
INSERT INTO [表1] ([列],[列],[列]) SELECT [列],[列],[列] FROM [表2] WHERE 検索条件

--表1に表2の行を挿入(表1,表2の構造が同じ場合)
INSERT INTO [表1] SELECT *  FROM [表2]
SQL

省略した列はデフォルト値が設定される。

DELETE

SQL
DELETE [表] where 検索条件
SQL

WHILE

SQL
WHILE @変数 < 10 
BEGIN
	処理
	SET @変数 = @変数 + 1
End
SQL

IF

SQL
IF 条件
  BEGIN
  	TRUEの場合処理
  END
ELSE
  BEGIN
  	FALSEの場合処理
  END
SQL

CASE(条件分岐)

SQL
--項目固定
CASE [gender]
    WHEN '男' THEN 1
    WHEN '女' THEN 2
    ELSE 99
END

--項目変動
CASE
    WHEN [gender] = '男' THEN 1
    WHEN [gender] = '女' THEN 2
    ELSE 99
END

--変数定義・代入
DECLARE @test varchar(1000) = CASE [gender]
WHEN '男' THEN 1
WHEN '女' THEN 2
end
SQL

表を仮表に複製

SQL
SELECT * INTO [#仮表名称] FROM [表]
SQL

動的SQL

SQL
--動的SQL実行(@sqlのクエリを実行)
DECLARE @sql NVARCHAR(max)
set @sql = 'select * from [test]'
EXECUTE sp_executesql @sql

--動的SQL変数代入(@sqlのクエリ結果を@maxに代入)
DECLARE @sql NVARCHAR(max)
DECLARE @para NVARCHAR(max)
DECLARE @max int
SET @sql ='Select @Max=Count(*) from [test]'
SET @para ='@max int OUTPUT';
EXECUTE sp_executesql @sql, @para, @max OUTPUT
SQL

カーソル(1行ずつ処理)

SQL
--変数定義
DECLARE @cur CURSOR
DECLARE @number1 int
DECLARE @number2 int
--カーソルオープン
SET @cur = CURSOR FOR SELECT [number1],[number2] from #test
OPEN @cur
--1レコード目セット
FETCH NEXT FROM @cur INTO @number1,@number2
--ループ開始
WHILE( @@FETCH_STATUS = 0 )
BEGIN
	--処理
	print @number1 * @number2
	
	--次レコード
	FETCH NEXT FROM @cur INTO @number1,@number2
END
  
  --カーソルクローズ
CLOSE @cur 
DEALLOCATE @cur
SQL

ショートカットキー

SQL
--F5 (実行)
--Ctrl + K → Ctrl + C  (コメントアウト)
--Ctrl + K → Ctrl + U  (アンコメント)
SQL