| データベースオブジェクト | ||
|---|---|---|
| オブジェクト | 列情報の有無 | |
| テーブル | TABLE | あり |
| インデックス | INDEX | なし |
| ビュー | VIEW | あり |
| プロシージャ | PROCDURE | なし |
| ファンクション | FUNCTION | なし |
| トリガー | TRIGGER | なし |
| シーケンス | SEQUENCE | 類似列を持つ |
| シノニム | SYNONYM | 参照先 |
DDL(Data Definition Language)データ定義言語
DML(Data Manipulation Language)データ操作言語
| クエリ | 説明 | 補足 |
|---|---|---|
| select name from sys.databases | データベース一覧を表示 | |
| select name from sys.tables | テーブルの一覧を表示 | |
| CREATE DATABASE データベース名 | データベースの作成 | |
| USE データベース名 | データベースの選択 | |
| DROP DATABASE データベース名 | データベースの削除 | |
| CREATE TABLE テーブル名(列名1 型名1 制約名...,列名2 型名2,列名3 型名3,…) 又は CREATE TABLE テーブル名 VALUES(列名1 型名1,列名2 型名2,列名3 型名3,…) | テーブルを作成する | |
| DROP TABLE テーブル名 | テーブルを削除する | |
| CREATE VIEW ビュー名 [(列名1,列名2,…)] AS SELECT文 | ビューを作成する | |
| DROP VIEW ビュー名 | ビューを削除する | |
| SELECT [ALL | DISTINCT|TOP n] 選択リストFROM 表リスト[WHERE 抽出条件または結合条件][GROUP BY 列名リスト][HAVING グループ抽出条件][ORDER BY 列名[ASC | DESC],・・・] | テーブルを表示する | |
| INSERT INTO テーブル名 VALUES(値1,値2,値3,…) | レコードを挿入する | |
| INSERT INTO テーブル名(列名1,列名2,…) VALUES(値1,値2,…) | レコードを挿入する | |
| UPDATE テーブル名 SET 列名 = 値 WHERE句 | テーブルデータを更新 | |
| DELETE FROM テーブル名 WHERE句 | テーブルを削除する | |
| ALTER TABLE テーブル名 ADD 列名 型名 | 列の追加 | |
| ALTER TABLE テーブル名 DROP COLUMN 列名 | 列の削除 | |
| ALTER TABLE テーブル名 ALTER COLUMN 列名 型名 | 列のデータ型変更 | |
| N'値' | 日本語を入力する | |
| BULK Insert テーブル名 FROM 'C:\ファイル名.csv' WITH ( FIRSTROW = 2, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', TABLOCK ) | CSVのインポート |
| 制約名 | 記述 | 説明 |
|---|---|---|
| NOT NULL制約 | 末尾に NOT NULLまたはNULL | NULLを許容または許容しない。 |
| CHECK制約 | 末尾にCHECK(条件式...) | 条件式が偽となる場合は値が入力されない |
| UNIQUE制約 | 末尾にUNIQUE | 列の値が重複できないようにする |
| PRIMARY KEY制約 | 末尾にNOT NULL PRIMARY KEY | ユニークである必要がある。テーブルに一つだけNULLを許容しない必要がある。主キーとして定義する |
| 外部参照整合制約 | レコードに末尾に REFERENCES テーブル名(カラム名) テーブル制約 FOREIGN KEY(カラム名) REFERENCES テーブル名(カラム名) | 外部参照によるリレーションシップのための参照を行うことを定義する。 |
DECLARE @変数名 変数型, @変数名2 変数型,...
SELECT @変数名 = 値
SET @変数名 = 値
カーソルはSelectでテーブルを呼び出し、それを定義しておくことができる。FETCHによって一行ずつ操作ができる
・定義方法
DECLARE カーソル名 CURSOR FOR SELECT文
SqlServerConfigurationManagerを開き、左メニューの「SQL Serverのサービス」を開くと「SQL Server(MSSQLSERVER)」とある、これがインスタンスのサービスとなる。
※()内にはSQLのインスタンス名が表示されるため任意の名前のものを選択する。
SqlServerConfigurationManagerを開き、左メニューの「SQL Serverネットワークの構成」→「MSSQLSERVERのプロトコル」を選択する。
| 名称 | 説明 |
|---|---|
| 共有メモリ | ローカルのSQLインスタンスにのみ接続可能 |
| 名前付きパイプ | LAN用のプロトコル |
| TCP/IP | インターネットで広く使われている。ネットワークトラフィックのルーティング、高度なセキュリティ機能を利用できる |
| VIA | VIAをサポートするハードウェアで動作する |
記憶が定かではないため、これがSQLServerのものか不明
| 集合関数 | |||
|---|---|---|---|
| No. | 種類 | 関数名 | 説明 |
| 1 | 文字列 | RIGHT | ある文字列の右端から、指定した文字数分だけ取得する |
| 2 | LEFT | ある文字列の左端から、指定した文字数分だけ取得する | |
| 3 | RTRIM | ある文字列の右端から空白を取り除く | |
| 4 | LTRIM | ある文字列の左端から空白を取り除く | |
| 5 | REPLACE | ある文字列の中で、特定の文字列を別の文字列に置換する | |
| 6 | SUBSTRING | ある文字列の中で、特定の位置から指定した文字数分だけ取得する | |
| 7 | UPPER | ある文字列を大文字に変換する | |
| 8 | LOWER | ある文字列を小文字に変換する | |
| 9 | LEN | ある文字列の文字数を取得する | |
| 10 | 日付・時刻 | GETDATE | システム日付(SQL Serverがインストールされたマシンの日付)を取得する |
| SYSDATETIME | GETDATEはDATETIME型、SYSDATETIMEはDATETIME2型 | ||
| 11 | YEAR | ある日付の年の部分だけ取得する | |
| 12 | MONTH | ある日付の月の部分だけ取得する | |
| 13 | DAY | ある日付の日の部分だけ取得する | |
| 14 | DATEPART | ある日付の一部だけを取得する | |
| 15 | DATEADD | 日付を加算したり減算したりする | |
| 16 | DATEDIFF | 2つの日付の差を求める | |
| 17 | 変換 | CAST | データ型を変換する |
| 18 | CONVERT | データ型を変換する | |
| 19 | 数値 | ROUND | 四捨五入する |
| 20 | POWER | 階乗を求める | |
| 21 | RAND | 0から1までの範囲のランダムな数字を求める | |
| 22 | CEILING | 小数点以下を切り上げる | |
| 23 | FLOOR | 小数点以下を切り捨てる | |
| 24 | SQRT | 平方根を求める | |
| 種別 | データ型 | 説明 | サイズ(バイト) |
|---|---|---|---|
| 整数型 | tinyint | 0 ~ 255 の範囲の数値 | 1 |
| smallint | おおよそ -3万 ~ 3万の範囲の数値 | 2 | |
| int | おおよそ -20億 ~ 20億の範囲の数値 | 4 | |
| bigint | おおよそ -900京 ~ 900京の範囲の数値 | 8 | |
| 小数(真数型) | decimal(p, s) | p:全体桁数 s:小数点以下桁数 | 5 ~ 17 |
| numeric(p, s) | 固定長の有効桁数と小数点以下桁数を持つため誤差は発生しない(10進数) | ||
| 小数(概数型) | float(n) | n:仮数のビット数 浮動小数点数 | 4 ~ 8 |
| real | 浮動小数点数 | 4 | |
| 文字列 | char(n) | 固定長文字列(8000バイトまで) | n |
| varchar(n) | 可変長文字列(8000バイトまで) | 実際のバイト数 + 2 | |
| varchar(max) | 可変長文字列(2GBまで) | ||
| text | |||
| Unicode文字列 | nchar(n) | Unicode固定長文字列(8000バイトまで) | 2n |
| nvarchar(n) | Unicode可変長文字列(8000バイトまで) | (実際のバイト数) * 2 + 2 | |
| nvarchar(max) | Unicode可変長文字列(2GBまで) | ||
| ntext | |||
| 日付 | smalldatetime | 精度:1分 | 4 |
| datetime | 精度:3.33ミリ秒 | 8 | |
| date | 精度:1日 | 3 | |
| time | 1日の時刻のみを格納し、精度は100ナノ秒 | 3~ 5 | |
| datetime2 | 精度:100ナノ秒 | 6 ~8 | |
| datetimeoffset | 精度:100ナノ秒 タイムゾーン付き | 8 ~10 | |
| 金額・通貨 | smallmoney | 金額や通貨を表す(範囲狭) | 4 |
| money | 金額や通貨を表す(範囲広) | 8 | |
| バイナリ | binary(n) | 固定長バイナリデータ(8000バイトまで) | n |
| varbinary(n) | 可変長バイナリデータ(8000バイトまで) | 実際のバイト数 + 2 | |
| varvinary(max) | 可変長バイナリデータ(2GBまで) | ||
| image | |||
| その他 | bit | 1, 0, NULL のどれか | 1 |
| table | SELECT文実行結果のテーブルを格納可能 | 実際のデータ量 | |
| XML | XMLデータを格納可能 | ||
| uniqueidentifier | 16バイトのGUID(グローバルユニークID) | 16 | |
| timestamp | テーブルのデータが更新される度に加算されるカウンタ(行バージョンを格納) | 8 | |
| (rowversion) | |||
| sql_variant | 複数のデータ型を格納可能 | 実際のバイト数 |