SQL Tips
オートナンバー型のメンバーを持つテーブルを作成する
- Jet(MS Access)の場合,AUTOINCREMENTまたは,COUNTER (1,1)を指定する
- MS SQL Serverの場合は, smallint AUTO_INCREMENTもしくは, smallint IDENTITY (1, 1)のように指定する(#(1, 1)は,(初期値,増加数))
CREATE TABLE ほげ (ID AUTOINCREMENT PRIMARY KEY,
NAME VARCHAR(50))
レコードの中から,最大値を得る
Select MAX(ID) From tablenameちなみに,最近では,トップ10を取得することもできるようです.
Microsoft SQL Serverでコンソールから直接SQLを入力する
フリーで入れることの入れるMSDE(Microsoft Desktop Engine)では,付属の管理ツールがついていません.Visual Studio上から,サーバーエクスプローラを使って,データベースを操作することはできるのですが,項目が多い場合などGUIで対話的に入力していくのは不便です.
そのため,SQLで一括データ操作をしたいところですが,
「osql.exe」もしくは「sqlcmd.exe」というツールを使えばSQLを入力することができます.
コマンドプロンプトから,以下のように実行します.
osql -E ←-Eは,統合Windows認証を使うという意味 1> use test ←DBの指定 2> select * from Books ←テーブルの中身の表示 3> go ←入力した命令を実行SQL Server 2005 Expressでは,次のようにしないとエラーになります.
osql -S マシン名\SQLEXPRESS -Esqlcmdの場合は以下のようにします
sqlcmd -S .\SQLExpress 1> use test ←DBの指定 2> select * from Books ←テーブルの中身の表示 3> go ←入力した命令を実行
参考
http://www.uchukamen.com/Programming3/SetupMSDE/index.htm
sqlcmd(SQL Server)の使い方
データベースの一覧表示
> select name from sys.databases > go
使用しているデータベースの切り替え
> use データベース名 > go
現在のデータベースのテーブルの一覧表示
> select name from sys.tables > go
ADO.NET で SQL Server に接続する
ADO.NET で SQL Server に接続するには,System.Data.SqlClient.SqlConnection クラスの Open メソッドを使用します
// 接続文字列を生成する
string stConnectionString = "Data Source = ServerName;"
+ "Initial Catalog = DB名;"
+ "Integrated Security = True;";
// SqlConnection の新しいインスタンスを生成する (接続文字列を指定)
System.Data.SqlClient.SqlConnection hConnection =
new System.Data.SqlClient.SqlConnection(stConnectionString);
// データベース接続を開く
hConnection.Open();
try {
// 挿入,削除,更新処理
}
// データベース接続を閉じる (正しくは オブジェクトの破棄を保証する を参照)
hConnection.Close();
hConnection.Dispose();
参考: http://jeanne.wankuma.com/tips/sqlserver/open.html
SQL Serverのデータ型
参照: http://www.uchukamen.com/SQL2000/DataType.htm
Oracleでコンソールから直接SQLを入力する
Oracleには,sql*plusというツールがあるので,これを利用します.コマンドプロンプトから,以下のように実行します.
(プログラムのメニューから実行することもできますが,コマンドプロンプトから呼び出したほうが使いやすいです)
sqlplus
ユーザ名とパスワードを指定して実行する場合はこのようにします.
sqlplus scott/tiger
SQL文を別ファイルに作っておいて,実行することもできます.
sqlplus @showTable.sqlログインしてからも別ファイルを実行できます.
sqlplus SQL> @showTable.sql; SQL> @c:\home\sql\showTable.sql; ←フルパスで指定する場合
sqlplusのコマンドは,以下のサイト参照
http://www.ne.jp/asahi/hishidama/home/tech/oracle/sqlplus.html#exp
OracleからCSV出力
set linesize 10000 set pagesize 0 set heading off set feedback off set trimspool on set termout off set colsep ',' spool OUT.csv select * from tbTable1; spool off quit
操作関連(MS SQL Server)
テーブル作成
create table tbBook ( id INT NOT NULL, name NVARCHAR(20) );参考: http://www.atmarkit.co.jp/fnetwork/rensai/sql10/sql1.html http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_k01.htm
テーブルの構成を一部変更する
項目を追加するalter table tbTable1 add( 新項目1 NVARCHAR(40) );項目長を変更する
alter table tbTable1 modify ( name NVARCHAR(60) );
テーブルを削除する
drop table tbTable1;
操作関連(Oracle)
スキーマテーブル一覧表示
tabというテーブルは特殊な意味を持ちます.select * from tab;
テーブルレイアウトを表示する
SQL> desc テーブル名;
ファイル出力
spool ファイル名; ... ... spool off;
データの挿入
要素名を指定していれる場合
insert into table1 (
ID,
名前,
更新日付,
更新時間
) values (
'a001',
'hoge',
'19990401',
'111200'
);
要素名を省略する場合は,すべての値を入れる
insert into table1 values (
'a001',
'hoge',
'19990401',
'111200'
35,
40,
45,
);
データの更新
update table1 set
更新日付 = '19990403',
更新時間 = '111600'
where ID = 'a001'
一部項目のみの更新も可能
データの削除
delete from table1
where ID = 'a001'
参考: http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_k10.htm
作成日: 2006年03月30日21時31日21秒
![[トップページ]](../lib/img//top.gif)
![[一覧]](../lib/img//list.gif)
![[検索]](../lib/img//search.gif)
![[ヘルプ]](../lib/img//help.gif)
![[ログイン]](../lib/img//login.gif)