「Transact-SQL 基本」の版間の差分
ナビゲーションに移動
検索に移動
(同じ利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
− | ==Transact-SQL 基本== | + | ==[[Transact-SQL 基本]]== |
− | *http://msdn.microsoft.com/ja-jp/library/ms365303(v=SQL.90).aspx | + | *http://msdn.microsoft.com/ja-jp/library/ms365303(v=[[SQL]].90).aspx |
− | [[SQL Server][Transact-SQL]] | + | [[SQL Server]] | [[Transact-SQL]] | |
===ステートメントをデータベース エンジンに送信する=== | ===ステートメントをデータベース エンジンに送信する=== | ||
− | =====Transact-SQL ステートメントは次の方法で作成してデータベース エンジンに送信できる。===== | + | =====[[Transact-SQL]] ステートメントは次の方法で作成してデータベース エンジンに送信できる。===== |
*SQL Server Management Studio または、[http://go.microsoft.com/fwlink/?LinkID=37075&clcid=0x409 Management Studio Express(無料)] を使用 | *SQL Server Management Studio または、[http://go.microsoft.com/fwlink/?LinkID=37075&clcid=0x409 Management Studio Express(無料)] を使用 | ||
*[http://msdn.microsoft.com/ja-jp/library/ms162773(v=SQL.90).aspx sqlcmd ユーティリティ]を使用 | *[http://msdn.microsoft.com/ja-jp/library/ms162773(v=SQL.90).aspx sqlcmd ユーティリティ]を使用 | ||
52行目: | 52行目: | ||
*データベース エンジンにアクセスするには、ユーザーのログインが必要 | *データベース エンジンにアクセスするには、ユーザーのログインが必要 | ||
====ログイン==== | ====ログイン==== | ||
− | #ユーザーの ID を Windows のアカウントまたは Windows グループのメンバとして表す | + | #ユーザーの ID を [[Windows]] のアカウントまたは [[Windows]] グループのメンバとして表す |
− | #SQL Server のみに存在する SQL Server ログインを使用 | + | #[[SQL Server]] のみに存在する [[SQL Server]] ログインを使用 |
− | <blockquote>既定では、コンピュータの管理者には SQL Server へのフル アクセス権が与えられる</blockquote> | + | <blockquote>既定では、コンピュータの管理者には [[SQL Server]] へのフル アクセス権が与えられる</blockquote> |
− | ====新しい Windows アカウントを作成==== | + | ====新しい [[Windows]] アカウントを作成==== |
=====ユーザー Yagi を作成===== | =====ユーザー Yagi を作成===== | ||
[[File:1210_sqlsvr_sample05.jpg]] | [[File:1210_sqlsvr_sample05.jpg]] | ||
=====これだけではログインできない===== | =====これだけではログインできない===== | ||
− | *ログインできませんでした(Microsoft SQL | + | *ログインできませんでした(Microsoft [[SQL Server]]、エラー:18456) |
[[File:1211_sqlsvr_sample06.jpg]] | [[File:1211_sqlsvr_sample06.jpg]] | ||
71行目: | 71行目: | ||
=====エラーメッセージが変わった===== | =====エラーメッセージが変わった===== | ||
− | *規定のデータベースを開けません(Microsoft SQL | + | *規定のデータベースを開けません(Microsoft [[SQL Server]]、エラー:4064) |
[[File:1212_sqlsvr_sample07.jpg]] | [[File:1212_sqlsvr_sample07.jpg]] | ||
====データベースへのアクセス権の付与==== | ====データベースへのアクセス権の付与==== | ||
− | *TestData データベースに切り替えてから | + | *TestData データベースに切り替えてから C[[R]]EATE USE[[R]] ステートメントを使用して、ユーザーにそのログインをマップする。 |
=====[http://msdn.microsoft.com/ja-jp/library/ms188366(v=SQL.90).aspx USE]===== | =====[http://msdn.microsoft.com/ja-jp/library/ms188366(v=SQL.90).aspx USE]===== | ||
use [TestData]; | use [TestData]; | ||
84行目: | 84行目: | ||
− | <blockquote> | + | <blockquote>これで、[[SQL Server]] のインスタンスと、データベースにアクセスできるようになる</blockquote> |
==ビューとストアド プロシージャ== | ==ビューとストアド プロシージャ== | ||
− | [[SQL Server ストアド プロシージャ]] | + | [[SQL Server ストアド プロシージャ]] | |
*ビューは、格納された SELECT ステートメント | *ビューは、格納された SELECT ステートメント | ||
− | *ストアド プロシージャは、バッチとして実行される 1 つ以上の Transact-SQL ステートメント | + | *ストアド プロシージャは、バッチとして実行される 1 つ以上の [[Transact-SQL]] ステートメント |
===ビューを作成=== | ===ビューを作成=== | ||
=====[http://msdn.microsoft.com/ja-jp/library/ms187956(v=SQL.90).aspx CREATE VIEW]===== | =====[http://msdn.microsoft.com/ja-jp/library/ms187956(v=SQL.90).aspx CREATE VIEW]===== | ||
− | create | + | create [[vi]]ew vw_Names |
as | as | ||
select ProductName, Price from Products; | select ProductName, Price from Products; |
2020年2月16日 (日) 04:33時点における最新版
目次
Transact-SQL 基本
ステートメントをデータベース エンジンに送信する
Transact-SQL ステートメントは次の方法で作成してデータベース エンジンに送信できる。
- SQL Server Management Studio または、Management Studio Express(無料) を使用
- sqlcmd ユーティリティを使用
- 作成したアプリケーションから接続
デーベースオブジェクトの作成
データベースを作成
CREATE DATABASE
create database TestData go
<blockquote>GO キーワードは、複数のステートメントを単一のバッチで送信した場合に、ステートメントを区切る。</blockquote>
テーブルの作成
USE コマンドを実行して、データベースのコンテキストを TestData データベースに変更する
use TestData go
テーブルの作成
CREATE TABLE
- Products という名前のテーブルを作成
create table dbo.Products ( ProductID int primary key not null, ProductName varchar(25) not null, Price money null, ProductDescription text null ) go
データの挿入と更新
挿入
INSERT
insert dbo.Products (ProductID, ProductName, Price, ProductDescription) values(1, 'Clamp', 12.48, 'Workbentch clamp') go
更新
UPDATE
update dbo.Products set ProductName = 'Flat Head Screwdriver' where ProductID = 1 go
データの読み取り
SELECT
select * from dbo.Products go
データベース オブジェクトに対する権限の構成
ログインの作成
- データベース エンジンにアクセスするには、ユーザーのログインが必要
ログイン
- ユーザーの ID を Windows のアカウントまたは Windows グループのメンバとして表す
- SQL Server のみに存在する SQL Server ログインを使用
<blockquote>既定では、コンピュータの管理者には SQL Server へのフル アクセス権が与えられる</blockquote>
新しい Windows アカウントを作成
ユーザー Yagi を作成
これだけではログインできない
- ログインできませんでした(Microsoft SQL Server、エラー:18456)
ログインを作成
CREATE LOGIN
create login [ComputerName\Yagi] from windows with default_database = [TestData]; go
エラーメッセージが変わった
- 規定のデータベースを開けません(Microsoft SQL Server、エラー:4064)
データベースへのアクセス権の付与
USE
use [TestData]; go
CREATE USER
create user [Yagi] for login [ComputerName\Yagi]; go
<blockquote>これで、SQL Server のインスタンスと、データベースにアクセスできるようになる</blockquote>
ビューとストアド プロシージャ
- ビューは、格納された SELECT ステートメント
- ストアド プロシージャは、バッチとして実行される 1 つ以上の Transact-SQL ステートメント
ビューを作成
CREATE VIEW
create view vw_Names as select ProductName, Price from Products; go
ストアド プロシージャ
作成
CREATE PROCEDURE
[1] PRINT]
create procedure pr_Names @VarPrice money as begin -- ユーザー定義メッセージをクライアントに返す print 'Product less than ' + cast(@VarPrice as varchar(10)); -- 実際に行いたい処理 select ProductName, Price from vw_Names where Price < @varPrice; end go
テスト
EXECUTE
execute pr_Names 100.00; go
結果
- print ステートメントの内容が出力される
データベース オブジェクトへのアクセス権の付与
- 管理者は、上記で作成したビューとストアドプロシージャにアクセスできるが、追加したユーザーはアクセスできない
- 必要な権限を付与するには、GRANT ステートメントを使用
ストアドプロシージャへのアクセス権を付与
GRANT
grant execute on pr_Names to Yagi; go
テーブルへのSELECT権限を付与
GRANT
grant select on dbo.Products to Yagi; go
データベース オブジェクトの削除
ストアド プロシージャに対する実行権限を削除
REVOKE
revoke execute on pr_Names from Yagi; go
テーブルのSELECT権限を削除
REVOKE
revoke select on dbo.Products from Yagi; go
データベースに対するアクセス権を削除
DROP USER
drop user Yagi; go
インスタンスに対するアクセス権を削除
DROP LOGIN
drop login [ComputerName\Yagi]; go
© 2006 矢木浩人