SQL文:Microsoft SQL Server
Microsoft SQL Server の基本的な使い方
巨大な Books Online をダウンロード、インストし「オフラインのみで使用」に設定して有るにもかかわらず、オンラインでデータを引いてくるのは「なんでやっ!」って、おまけにデラ遅!
ちゅうことで、自分用の覚書きを作成。
index
Microsoft SQL Server の SQL文の最も簡単な文例の覚書
SQL Server 2005 Books Online より抜粋引用
実行環境は、SQL Server Management Studio から Transact-SQL ステートメントを実行。
SQL Server Management Studio は、Transact-SQL ステートメントを使用しなくとも SQL Server の各操作を容易にするローカルな SQL Server 管理ツール。
うざい広告に辟易し FireFox 使いたいのに最新にしたらなぜか両袖の白が出なく表示がおかしくなった。CSS 直さんといかんと思いつつ面倒なので見ないふり・・・> 直しました。
※追記
- ローカル環境 SQL Server 接続時のサーバー名 [ <conputer_name>\SQLEXPLESS ] は、代替として (1)[ .\SQLEXPLESS ] or (2)[ (local)\SQLEXPLESS ] or (3)[ 192.168.1.1\SQLEXPLESS ] or (4)[ localhost\SQLEXPLESS ] でも接続可能なようである。(3) を除いて動作確認済み。
- SQL 標準の文字列連結子 [ || ], [ concat() 関数 ] は、SQL Server では使えない。[ + ] を接続演算子として使用する。MSDN を見てると Transact-SQL の解説で concat() 関数があるが ・・・ 使い方が標準でないかも?
・・・っということで文字列連結については、SQL Server(だけ) は完全に標準外の独自仕様ということが判った。
[ 編集 ] ▲上へ
まとめと補足
案外情報が少ないのとセットアップが煩雑でうまく動かない場合など問題も覆いが、ここでは使い方のみ。
a-1) データベース作成のまとめ(一括操作)
TestData Object の削除方法までの一連の流れを理解し以下連続操作を実行する。
※削除が適切に行われていないとエラーが多発・・・発生・・・する。
/* 1) TestData データベース作成とテーブルの作成まで */ -- ***** TestData データベースの新規作成 CREATE DATABASE TestData GO -- ***** カレントデータベースの移動 USE TestData GO -- ***** テーブルの新規作成 CREATE TABLE dbo.Products ( ProductID int PRIMARY KEY NOT NULL, ProductName varchar(25) NOT NULL, Price money NULL, ProductDescription text NULL ) GO
1) のコードと連続実行したらなぜかエラー。->以下分割実行したところ問題なし。
/* 2) とデータの連続入力と更新処理 */ -- ***** 実データの追加 -- 例 (1) INSERT dbo.Products ( ProductID, ProductName, Price, ProductDescription ) VALUES ( 1, 'Clamp', 12.48, 'Workbench clamp' ) GO -- 例 (2) INSERT dbo.Products ( ProductName, ProductID, Price, ProductDescription ) VALUES ( 'Screwdriver', 50, 3.17, 'Flat head' ) GO -- 例 (3) INSERT dbo.Products VALUES ( 75, 'Tire Bar', NULL, 'Tool for changing tires.' ) GO -- 例 (4) INSERT Products ( ProductID, ProductName, Price ) VALUES ( 3000, '3mm Bracket', .52 ) GO -- ***** データの更新処理 UPDATE dbo.Products SET ProductName = 'Flat Head Screwdriver' WHERE ProductID = 50 GO
表示実行は、適当にコメント位置をずらしながらすると楽。
/* -- 1) Products テーブルのデータの読取表示 SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products GO -- 2) アスタリスク(全称記号?)を使用 SELECT * FROM Products GO */ -- 3) 表示列を指定・限定する(不要列の非表示) SELECT ProductName, Price FROM dbo.Products GO /* -- 4) レコードの絞込み( WHERE 句を使用して id 60 以下に限定 ) SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products WHERE ProductID < 60 GO -- 5) 演算と演算列の名称指定( ProductName と計算結果 CustomerPays を表示 ) SELECT ProductName, Price * 1.07 AS CustomerPays FROM dbo.Products GO */
[ 編集 ] ▲上へ
a-2) アクセス権のまとめ(一括操作)
- 1) Windows の新規アカウント作成(手動)
%SystemRoot%\system32\compmgmt.msc /s → Mary を作成。※W2K / XP Pro 以上・・・。念のため確認したら、やはり XP HE じゃ駄目みたい→コンパネから追加すれば同じと思う。
- 2) ログイン・アクセス権・ビュー・ストアド プロシージャ
***** computer_name を各自環境に必ず合わせる(2ヶ所) *****
/* TestData のログイン・アクセス権の作成 ※computer_name = 自PC名へ要置換 */ CREATE LOGIN [computer_name\Mary] FROM WINDOWS WITH DEFAULT_DATABASE = [TestData]; GO -- Mary へアクセス権付与 USE [TestData]; GO CREATE USER [Mary] FOR LOGIN [computer_name\Mary]; GO -- ビューの作成と動作確認 CREATE VIEW vw_Names AS SELECT ProductName, Price FROM Products; GO SELECT * FROM vw_Names; GO
/* プロシージャの作成 */ CREATE PROCEDURE pr_Names @VarPrice money AS BEGIN -- The print statement returns text to the user PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10)); -- A second statement starts here SELECT ProductName, Price FROM vw_Names WHERE Price < @varPrice; END GO /* 動作チェック */ EXECUTE pr_Names 10.00; GO
- 3) Mary へストアド・アクセス権付与
/* ストアド・アクセス権の付与 */ GRANT EXECUTE ON pr_Names TO Mary; GO
[ 編集 ] ▲上へ
a-3) 削除のまとめ(一括操作)
USE TestData; GO -- REVOKE ステートメント REVOKE EXECUTE ON pr_Names FROM Mary; GO -- DROP ステートメント DROP USER Mary; GO
***** computer_name の置き換え必須!(1ヶ所) *****
-- DROP ステートメント DROP LOGIN [computer_name\Mary]; GO -- DROP ステートメント DROP PROC pr_Names; GO -- DROP ステートメント DROP View vw_Names; GO -- DELETE ステートメント(実データ削除) DELETE FROM Products; GO -- DROP ステートメント(テーブル削除) DROP Table Products; GO -- TestData データベースの削除 USE MASTER; GO DROP DATABASE TestData; GO
[ 編集 ] ▲上へ
データベース・SQL文・SQLクエリー(query)関連リンク
参考になる書籍など
・SQL Server ・データベース・プログラミング ・ASP.NET ・SQL全般
- SQL Server 専門・学習・試験対策の良書
wiki内関連ページ
- SQL文:SQLステートメント
- SQLステートメント
- SQLクエリー
- SQL文:ユニオンクエリー
- SQL文:パススルークエリー?
- SQL文:データ定義クエリー
- SQL文:サブクエリー?
- VB2005リファレンス(覚え書き)
- Microsoft SQL Server 関連
[ 編集 ] ▲上へ
2009年08月21日(金) 19:27:56 Modified by sakura_momo2