MS SQL 使ったものmemo

USE [DB名]
GO

ALTER TABLE [dbo].[テーブル名] ALTER COLUMN [列名] [型] ;

GO


decimal(有効桁数[ ,小数点有効桁数])
numeric(有効桁数[ ,小数点有効桁数])

  • decimalとnumericは同じ機能
  • 有効桁数>=小数点桁数>=0
  • decimal(3,2)だと -9.99〜9.99なのかな?
  • 有効桁数の範囲は、1〜38

bigint

  • マイナスがある。
  • 8バイトの数値なので範囲は よくわからない桁数までいってるぐらい

-2^63 (-9,223,372,036,854,775,808) 〜 2^63-1 (9,223,372,036,854,775,807)

int

  • マイナスがある。
  • 4 バイトの数値なので範囲は 必要十分

-2^31 (-2,147,483,648) 〜 2^31-1 (2,147,483,647)

smallint

  • マイナスがある。
  • 2 バイトの数値なので範囲は マイナスのせいで65535が入らないぐらい。なんかこう嫌な感じ。

-2^15 (-32,768) 〜 2^15-1 (32,767)

tinyint

0 〜 255

USE [doubutu_db]
GO
ALTER TABLE [dbo].[neko] ALTER COLUMN [suiminzikan] [decimal](4,2) ;
ALTER TABLE [dbo].[neko] ALTER COLUMN [kotaisuu] [bigint] ;
ALTER TABLE [dbo].[neko] ALTER COLUMN [nedan] [int] ;
ALTER TABLE [dbo].[neko] ALTER COLUMN [esa_cost] [smallint] ;
ALTER TABLE [dbo].[neko] ALTER COLUMN [neko_code] [tinyint] ;
GO

参考
データ型 (Transact-SQL)
http://msdn.microsoft.com/ja-jp/library/ms187752.aspx


group by

USE [doubutu_db]
GO

SELECT [neko_code]
,sum([kotaisuu]) as sum0
,sum([esa_cost]) as sum1
FROM [dbo].[neko]
where [nedan] >= 0 and [nedan] <= 10000
group by [neko_code]

GO