ギャバンITサービス
お菓子の家が作れるシステムエンジニアです

windows2025でsqlserver2022稼働

windows2025を動かす練習してるときに、sqlserver2022入れて動かすとこまでやってみた。 インストーラがインターネット使おうとするから、management studioはインストーラ用意してみた。 windows2025動かしてみる クラウド使ったらインストールとかいらん。 ホイホイ起動できる。 日本語化してタイムゾーン設定して、毎月のwindows updateでOS再起動いらんのかなって期待したら、それはそうやなかった。 使える状態にすると、ディスクは30GBぐらいは食う。 windows2022とは大きく変わらんかなって思った。 win11とUIが似てるから、同じ方法で見た目変えてく。 まずはスタートボタンの位置は左寄せ。 あと「その他のオプション」って選ばな出てこんメニューを、 win11のときと同じ方法でレジストリいじって 右クリックしたときのメニュー表示変えた。 OS再起動したら反映されたし、administratorのUIには影響せんかった。 linuxホストでsmb共有してるフォルダをnet useでマウントして、普段使ってるフォルダ使えるようにした。 .exeファイルを置いといてインストールなしで動かせるのも同じ。 省くけど、画像にあるa5sqlとかvscode(プラグインは手で入れ直したけど)とか一発で動いた。 winshotは古いプログラムやけど、windows2025でもハードコピー取って保存したりクリップボードにも残せた。 スタートボタンを右クリックして「ファイルを指定して実行」ってとこにshell:sendtoって入れたらエクスプローラが開く。 ここにさっきnet useでつないだフォルダにある.exeファイルのショートカットを置いとく。 こうしとくと、普通のファイルとかフォルダを右クリックしたときに「送る」からそのアプリで開ける。 2つのフォルダ選んで右クリックして「送る」からwinmerge選んだら、フォルダ差分比較とかやってくれるで。 sqlserver2022のインストール DBMS入れるとこだけやってみましょ。 DBMSが消費するサイズ expressエディションにしても2GBぐらいは使う。フルインストールしたら11GBぐらいは容量いるで。 ISOの準備 クラウドの中やと、windowsサーバに最初からsqlserverが入った状態で動かしてくれるってこともできる。 手動インストールで使うことあるから、今回は普段使ってるPCでインストーラからisoイメージをダウンロードし、サーバに置いて使ってみる。 インストール前の確認 ダウンロードしたisoファイルをwindows2025に持って行って開くと、セットアップの材料入っとる。 readmeとか読んだほうがええんやろけど、すっ飛ばしたから構成チェックしとこか。 チェック動かして、失敗と警告がゼロになってるなことを確認。 詳細レポート見て結果が全部「合格」やったらそれでええ。 インストールで気づいたところ こっから入れる。 ライセンスないからexpress版入れる。このへんまで今までとあんまり変わらん。 インターネット使えんようにしてる環境のときは、更新版モジュール取り込まんようにしとく。 なんや、azureで使う時やったら拡張機能入れてくれるんや。google cloudやawsよりも性能出たらええな。 40GBしかディスク用意せんかったし、DBMSとしてすぐに使うわけやないから、フルインストールはせずに小さく入れとく。ライセンスある時は全部入れたらええ。 うまいこと入るとこんな感じ。 スタートメニューの中からも見えとるな。 やらんけど、「SQL server 2022構成マネージャー」使ったらDBMSとして使えるようになるはず。 ...

 ⭐️

sqlplusとかoracleで使うsqlとか

スプール 1 2 3 sqlplus /nolog spool hoge.txt spool off テーブル削除 1 2 drop table GVIS_EMP drop table GVIS_EMPLOY テーブル作成 1 2 3 4 5 6 7 8 9 CREATE TABLE GVIS_EMP ( no VARCHAR2(6) NOT NULL, name VARCHAR2(60) , age NUMBER(3,0), created DATE DEFAULT SYSDATE, modified DATE, CONSTRAINT pk1 PRIMARY KEY(no) ) ; テーブル一覧 1 select table_name from user_tables order by 1; テスト用項目挿入 1 2 3 4 5 insert into GVIS_EMP (no,name,age) values ('0001','dummy1',31) ; insert into GVIS_EMP (no,name,age) values ('0002','dummy2',32) ; insert into GVIS_EMP (no,name,age) values ('0003','dummy3',33) ; insert into GVIS_EMP (no,name,age) values ('0004','dummy4',34) ; insert into GVIS_EMP (no,name,age) values ('0005','dummy5',35) ; テーブル内容表示 1 select * from GVIS_EMP ; テーブル定義参照 1 2 3 4 SELECT DBMS_METADATA.GET_DDL('TABLE', USER_TABLES.TABLE_NAME ), DBMS_METADATA.GET_DEPENDENT_DDL('INDEX', USER_TABLES.TABLE_NAME ) FROM USER_TABLES ; プライマリキー削除 1 ALTER TABLE GVIS_EMP DROP CONSTRAINT pk1 ; プライマリキー追加 1 ALTER TABLE GVIS_EMP ADD CONSTRAINT pk1 PRIMARY KEY (no,name) ; カラム追加と全レコードへ初期値設定 1 2 ALTER TABLE GVIS_EMP ADD (ITEM_FOO char(6)) ; UPDATE GVIS_EMP SET ITEM_FOO = 'FOOFOO' ; カラム名変更 1 ALTER TABLE GVIS_EMP RENAME column ITEM_FOO to ITEM_BOO ; カラム属性変更 1 ALTER TABLE GVIS_EMP MODIFY ITEM_BOO char(10) ; テーブルのコピー 1 CREATE TABLE GVIS_EMPLOY as select * from GVIS_EMP ; テーブルの内容比較 差異があると違いのある箇所がselect結果に出力される。 ...

SQL - insert

通常insert 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 $StrSQL = "insert into GVIS_log " . " ( logPeriod," . " logShubetsu, " . " clientIP, " . " userID, " . " Sousa, " . " Message, " . " browser, " . " ins_date, " . " ins_user " . " ) " . " values ( '" . $gv_ymd . " " . $gv_hhmmss ."' " . " , 'info' " . " , '" . $gv_IP ."' " . " , '" . $gv_User ."' " . " , '" . $arg1 ."' " . " , '" . $arg2 ."' " . " , '" . $gv_browser ."' " . " , '" . $gv_ymd . " " . $gv_hhmmss ."' " . " , '" . $gv_User . "' " . " ) " 抽出内容をinsert 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $StrSQL2 = " insert into GVIS_keihi". " \n" . " select ". " \n" . " '" .$InputParm2_yyyy. "-" . $InputParm2_mm . "-01' as workPeriod,". " \n" . " workShubetsu,". " \n" . " workPriority,". " \n" . " '" .$InputParm2_yyyy. "-" . $InputParm2_mm . "-01' as workPeriod,". " \n" . " Kamoku,". " \n" . " Tehai,". " \n" . " Kng,". " \n" . " Biko,". " \n" . " '" . $gv_DATE . "' as ins_date,". " \n" . " '" . $gv_user . "' as ins_user,". " \n" . " '" . $gv_DATE . "' as upd_date,". " \n" . " '" . $gv_user . "' as upd_user". " \n" . " from GVIS_keihi as t1". " \n" . " where year(workPeriod) = " . $InputParm1_yyyy. " \n" . " and month(workPeriod) = " . $InputParm1_mm. " \n" . " and workPriority < 2001 \n" . " ; ". " \n"

SQL - select

データ取り出し例 1 select * from table ; 重複なしのデータ取り出し例 1 SELECT distinct Sousa FROM GVIS_log order by Sousa ; 内部結合 内部結合(INNER JOIN)とは、結合する両方のテーブルどちらにも同じキーが存在するレコードのみ残し、それ以外は切り捨てる 外部結合 2つのテーブルを結合するのは内部結合と同じだが、どちらか片方のテーブルにデータがあればレコードが取得 左外部結合 LEFT OUTER JOIN(左外部結合)とは、FROM句に結合するテーブルを書く時、左側に書いた方をメインテーブルにする外部結合。 その結果、左側のメインテーブルに存在するレコードは、仮に右側のテーブルに同じキーのレコードが無くても全て取得されるが、反対に右側のテーブルだけにしか存在しないレコードは取得されない。 例)顧客マスタから顧客番号で顧客社名と担当者名を得る。 1 2 3 4 5 6 7 8 9 select GVIS_mst_customer.CompanyName1, GVIS_mst_customer.CompanyPersonName1, GVIS_transaction.* from GVIS_transaction LEFT OUTER JOIN GVIS_mst_customer ON GVIS_mst_customer.GVIS_CustNo = GVIS_transaction.OrderCustNo order by OrderNo desc ; ...

SQL - stored procedure

通常-oracle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 SQL> create or replace procedure sample_proc(v_id in char,v_name out varchar2) as 2 begin 3 dbms_output.put_line('v_id:' || v_id); 4 v_name := 'なまえ'; 5 end sample_proc; 6 / プロシージャが作成されました。 SQL> variable v_name varchar2(10) SQL> execute sample_proc('ID01',:v_name) v_id:ID01 PL/SQLプロシージャが正常に完了しました。 SQL> print v_name V_NAME -------------------------------- なまえ SQL> どこかで見つけたサンプル 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 CREATE OR REPLACE PROCEDURE RIVUS.STEP01_SELECT3(P_DATA_1 IN VARCHAR2) IS CURSOR cDual(P_DATA_2 VARCHAR2 := 'CURSOR param') IS SELECT P_DATA_1 COLNAME_1 FROM DUAL UNION ALL SELECT P_DATA_2 COLNAME_1 FROM DUAL ; vRec cDual%ROWTYPE; BEGIN OPEN cDual('yyy') ; -- 引数付きのカーソルをオープン LOOP FETCH cDual INTO vRec; -- カーソルの内容をフェッチする EXIT WHEN cDual%NOTFOUND; DBMS_OUTPUT.PUT(cDual%ROWCOUNT || ':'); DBMS_OUTPUT.PUT_LINE(vRec.COLNAME_1); END LOOP; CLOSE cDual; -- 使用済のカーソルは必ずクローズすること END; / -- -- 実行結果 SQL> call step01_select3('SELECT3'); 1:SELECT3 2:yyy コールが完了しました。