次のステートメントは Mssql ステートメントであるため、access では使用できません。
SQL 分類:
DDL - データ定義言語 (CREATE、ALTER、DROP、DECLARE)
DML - データ操作言語 (SELECT、DELETE、UPDATE、INSERT)
DCL - データ制御言語 (GRANT、REVOKE、COMMIT、ROLLBACK)
まず、基本的なステートメントについて簡単に説明します。
1. 手順: データベースを作成する
CREATE DATABASE データベース名
2. 説明: データベースを削除します。
データベースのデータベース名を削除します
3. 説明: SQL サーバーをバックアップします。
--- バックアップデータ用のデバイスの作成
使用マスター
EXEC sp_addumpdevice 'ディスク'、'testBack'、'c:mssql7backupMyNwind_1.dat'
--- バックアップの開始
データベース パブを testBack にバックアップします
4. 説明: 新しいテーブルを作成します。
create table tabname(col1 type1 [not null] [主キー],col2 type2 [not null],..)
既存のテーブルに基づいて新しいテーブルを作成します。
A: tab_old のようなテーブル tab_new を作成します (古いテーブルを使用して新しいテーブルを作成します)
B: tab_old定義のみからcol1,col2…を選択してテーブルtab_newを作成します
5. 説明:
新しいテーブルをドロップします: テーブルのタブ名をドロップします
6. 説明:
列を追加します: テーブルのタブ名を変更して列の列のタイプを追加します
注: 列を追加すると、削除することはできません。 DB2 では、列の追加後にデータ型を変更することはできません。変更できるのは、varchar 型の長さを増やすことだけです。
7. 説明:
主キーの追加: テーブルのタブ名を変更して主キー(col)を追加
例証します:
主キーの削除: テーブルのタブ名の変更、主キーの削除(col)
8. 説明:
インデックスを作成します: [一意の] インデックス idxname を tabname(col….) に作成します。
インデックスの削除: インデックス idxname を削除します
注: インデックスは変更できません。変更する場合は、インデックスを削除して再構築する必要があります。
9. 説明:
ビューを作成します: create view viewname as select ステートメント
ビューを削除します:drop view viewname
10. 説明: いくつかの単純な基本 SQL ステートメントの選択: select * from table1 where 範囲の挿入: table1(field1,field2) に挿入 value(value1,value2)
削除: delete from table1 where range update: update table1 set field1=value1 where range search: select * from table1 where field1 like '%value1%' ---like の構文は非常に洗練されているので、情報を確認してください。
並べ替え: select * from table1 order by field1,field2 [desc]
合計カウント: table1 の totalcount として count * を選択します
合計: table1 の合計値として sum(field1) を選択します
平均: table1 から avg(field1) を avgvalue として選択します
最大値: table1 の maxvalue として max(field1) を選択します
最小値: table1 の minvalue として min(field1) を選択します
11. 説明: いくつかの高度なクエリ演算子 A: UNION 演算子 UNION 演算子は、他の 2 つの結果テーブル (TABLE1 と TABLE2 など) を結合し、テーブル内の重複行を削除することによって結果テーブルを導出します。 ALL を UNION とともに使用する (つまり、UNION ALL) 場合、重複行は削除されません。どちらの場合も、派生テーブルのすべての行は TABLE1 または TABLE2 から取得されます。
B: EXCEPT 演算子 EXCEPT 演算子は、TABLE1 にはあるが TABLE2 には含まれていないすべての行を含め、すべての重複行を削除することによって結果テーブルを導出します。 ALL を EXCEPT (EXCEPT ALL) とともに使用すると、重複行は削除されません。
C: INTERSECT 演算子 INTERSECT 演算子は、TABLE1 と TABLE2 の両方にある行のみを組み込み、重複する行を削除することによって結果テーブルを導出します。 ALL を INTERSECT (INTERSECT ALL) とともに使用すると、重複行は削除されません。
注: 演算子を使用した複数のクエリ結果行は一貫している必要があります。
12. 説明: 外部結合 A、左外部結合を使用します。
左外部結合 (左結合): 結果セットには、結合されたテーブルの一致する行と、左結合されたテーブルのすべての行が含まれます。
SQL: aa、ab、ac、bc、bd、bf を a LEFT OUT JOIN b ON aa = bc から選択します。
B:右外部結合:
右外部結合 (右結合): 結果セットには、結合テーブルの一致する結合行と右結合テーブルのすべての行の両方が含まれます。
C: 完全外部結合:
完全外部結合: シンボリック接続テーブルの一致する行だけでなく、結合された 2 つのテーブル内のすべてのレコードも含まれます。
次に、優れた SQL ステートメントをいくつか見てみましょう。 1. 説明: テーブルをコピーします (構造のみをコピーします、ソース テーブル名: a、新しいテーブル名: b) (アクセス可能)
方法 1: select * into b from a (1<>1)
方法 2: a から b に上位 0 * を選択します
2. 説明:テーブルコピー(データコピー、ソーステーブル名:a、ターゲットテーブル名:b)(アクセス可)
b(a, b, c) に挿入 b から d,e,f を選択;
3. 説明: データベース間でテーブルをコピーします (特定のデータには絶対パスを使用します) (アクセス可能)
insert into b(a, b, c) select d,e,f from b in '特定のデータベース' ここで、条件の例: ..from b in '"&Server.MapPath(".")&"data.mdb" & "' どこ..
4. 説明:サブクエリ(テーブル名1:a テーブル名2:b)
select a,b,c from a where a IN (select d from b ) または: select a,b,c from a where a IN (1,2,3)
5. 説明: 記事、投稿者、最終返信時刻を表示します。
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6. 説明: 外部結合クエリ (テーブル名 1: a テーブル名 2: b)
aa、ab、ac、bc、bd、bf を a から選択 LEFT OUT JOIN b ON aa = bc
7. 説明: オンライン ビュー クエリ (テーブル名 1:a)
select * from (SELECT a,b,c FROM a) T ここで、ta > 1;
8. 説明: between の使用法は、クエリ データ範囲を制限し、境界値を含みます。not between には境界値が含まれません。
select * from table1 where time1 と time2 の間の時間
table1 から a、b、c を選択します。ここで、a は値 1 と値 2 の間にありません。
9. 説明: での使用方法
select * from table1 where a [not] in ('value1','value2','value4','value6')
10. 説明: 2 つの関連テーブル。セカンダリ テーブルにないメイン テーブルの情報を削除します。
存在しない table1 から削除 ( select * from table2 where table1.field1=table2.field1 )
11. 説明: 4 つのテーブルの結合クエリの問題:
select * from a 左内部結合 b (aa=bb) 右内部結合 c (aa=cc) 内部結合 d (aa=dd) ここで ....
12. 説明: 5 分前にリマインダーをスケジュールする
SQL: select * from スケジュール where datediff('分',f 開始時刻,getdate())>5
13. 説明: 1 つの SQL ステートメントでデータベースのページングが完了します
select top 10 b.* from (上位 20 の主キー フィールドを選択、フィールドの並べ替えによるテーブル名順序) a, テーブル名 b ここで、b. 主キー フィールドの並べ替えフィールド 14説明: 最初の 10 レコード
select top 10 * form table1 where range 15. 説明: 同じ b 値を持つデータの各グループで最大の a を持つレコードのすべての情報を選択します (同様の使用法は、月次フォーラム ランキング、月次売れ筋製品分析、科目成績によるランキングなど)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
16. 説明: TableA にはすべての行を含めますが、TableB と TableC には含めず、すべての重複行を削除して結果テーブルを導出します。
(テーブル A から a を選択) (テーブル B から a を選択) を除く (テーブル C から a を選択)
17. 内容:ランダムに10個のデータを取り出す
newid() によるテーブル名の順序からトップ 10 を選択 *
18. 説明: レコードをランダムに選択します
newid() を選択します
19. 説明: 重複レコードを削除します。
ID が含まれていないテーブル名から削除 (col1、col2、... によるテーブル名グループから max(id) を選択)
20. 説明: データベース内のすべてのテーブル名をリストします。
type='U' の sysobjects から名前を選択します
21. 説明: テーブル内のすべての項目をリストします。
id=object_id('TableName') の syscolumns から名前を選択します
22. 説明: type、vendor、および pcs フィールドをリストし、type フィールドによって配置すると、select の場合と同様に、複数の選択を簡単に実装できます。
select type,sum(case ベンダー when 'A' then pcs else 0 end),sum(case ベンダー when 'C' then pcs else 0 end),sum(case ベンダー when 'B' then pcs else 0 end) FROM tablename group種類別
表示結果:
タイプベンダーPC
コンピュータA1
コンピュータA1
ディスクB2
ディスクA2
携帯電話B3
モバイルC3
23. 説明: テーブル table1 を初期化します。
TRUNCATE TABLE テーブル1
24. 手順: 10 ~ 15 のレコードを選択します
select top 5 * from (select top 15 * from table order by id asc) table_alias order by id desc
データベース レコードをランダムに選択する方法 (SQL ステートメントによって実装される Randomize 関数を使用)
データベースに保存されたデータの場合、乱数機能は上記の効果をもたらす可能性がありますが、速度が遅すぎる可能性があります。 ASP に「乱数を見つけて」それを出力するように依頼することはできません。一般的な解決策は、実際には次のようなループを作成することです。
ランダム化
RNumber = Int(Rnd*499) +1
objRec.EOF ではない間
objRec("ID") = RNumber の場合 THEN
...実行スクリプトは次のとおりです...
終了する場合
objRec.MoveNext
ウェン
わかりやすいですね。まず、1 ~ 500 の範囲の乱数を取り出します (データベース内のレコードの総数が 500 であると仮定します)。次に、各レコードを繰り返し処理して ID の値をテストし、それが RNumber と一致するかどうかを確認します。条件が満たされると、THEN キーワードで始まるコード ブロックが実行されます。 RNumber が 495 の場合、データベースを循環するのに長い時間がかかります。 500 という数字は大きいように思えるかもしれませんが、単一のデータベース内に数千のレコードが含まれることが多い、より堅牢なエンタープライズ ソリューションと比較すると、それでも小さいデータベースです。彼はもう死んでいませんか?
SQL を使用すると、次のように正確なレコードをすばやく見つけて、そのレコードのみを含むレコードセットを開くことができます。
ランダム化
RNumber = Int(Rnd*499) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
RNumber と ID を書き出す代わりに、一致するかどうかを確認するだけです。上記のコードの動作に満足している限り、必要に応じて「ランダム」レコードを操作できます。 Recordset には他のコンテンツが含まれていないため、必要なレコードをすぐに見つけることができ、処理時間が大幅に短縮されます。
もう一度乱数について話しましょう。Random 関数から最後の一滴を絞り出すことに決めたので、一度に複数のランダム レコードを取り出したり、特定のランダム範囲内のレコードを使用したりすることができます。上記の標準的な Random の例を拡張すると、SQL を使用して上記の 2 つの状況に対処できます。
ランダムに選択された複数のレコードを取得して同じレコードセットに保存するには、3 つの乱数を保存し、これらの数値に一致するレコードをデータベースにクエリします。
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3
10 個のレコード (ページが読み込まれるたびに 10 個のリンクのリスト) を選択する場合は、BETWEEN または数式を使用して、最初のレコードと適切な数の増分レコードを選択できます。この操作はいくつかの方法で実行できますが、SELECT ステートメントは 1 つの可能性のみを示します (ここでの ID は自動的に生成された番号です)。
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
注: 上記のコードを実行する目的は、データベース内に 9 つの同時レコードがあるかどうかを確認することではありません。
いくつかのレコードをランダムに読み取ってテストする
アクセス構文: SELECT top 10 * テーブル名から ORDER BY Rnd(id)
SQL サーバー: newid() によるテーブル名の順序から上位 n * を選択
mysql select * テーブル名から Order By rand() Limit n
Access の左結合構文 (最近の開発では左結合の使用が必要です。Access のヘルプには何もありません。インターネット上に Access の SQL 記述はありません。自分でテストすることしかできません。今後の参考のために今書き留めておきます) 。)
構文 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...
SQL ステートメントを使用して、長すぎる文字列表示構文を次のように置き換えます。
SQL データベース: len(field)>10 の場合に case を選択し、 left(field,10)+'...' else フィールドはテーブル名から news_name,news_id として終了します
データベースへのアクセス: SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;
Conn.Execute 説明 Execute メソッド このメソッドは、SQL ステートメントを実行するために使用されます。 SQL文実行後にレコードセットを返すかどうかにより、このメソッドの使用形式は以下の2種類に分かれます。
1. SQLクエリ文を実行すると、クエリで取得したレコードセットが返されます。使用法は次のとおりです。
オブジェクト変数名 = 接続オブジェクトを設定します。Execute("SQL クエリ言語")
Execute メソッドが呼び出された後、レコードセット オブジェクトが自動的に作成され、クエリ結果は Set メソッドを通じて、指定されたオブジェクトに割り当てられて保存されます。レコードセット オブジェクトを表します。
2. SQL の操作言語を実行すると、レコードセットは返されません。この時の使い方は以下の通りです。
接続オブジェクト。「SQL 操作文」を実行 [, RecordAffected][, Option]
·RecordAffected はオプションで変数を配置できます。SQL ステートメントの実行後、有効なレコードの数が変数に自動的に保存されます。この変数にアクセスすると、SQL ステートメントが操作したレコードの数を知ることができます。
·オプションはオプションです。通常、このパラメータの値は adCMDText です。これは、Execute メソッドの後の最初の文字をコマンド テキストとして解釈する必要があることを ADO に指示するために使用されます。このパラメータを指定することで実行を効率化できます。
・BeginTrans、RollbackTrans、CommitTransの3つのメソッドは、トランザクション処理のために接続オブジェクトが提供するメソッドです。 BeginTrans はトランザクションの開始に使用され、RollbackTrans はトランザクションのロールバックに使用され、CommitTrans はすべてのトランザクション処理結果の送信、つまりトランザクションの処理の確認に使用されます。
トランザクション処理は、一連の操作を全体として処理できます。トランザクション処理は、すべてのステートメントが正常に実行された場合にのみ成功したとみなされます。1 つのステートメントの実行に失敗すると、処理全体が失敗し、前の状態に戻ります。
BeginTrans と CommitTrans は、トランザクションの開始と終了をマークするために使用されます。これら 2 つのステートメントは、トランザクション処理ステートメントとして使用されます。トランザクション処理が成功したかどうかは、オブジェクトの Error コレクションを接続することで判断できます。Error コレクションのメンバー数が 0 でない場合は、エラーが発生し、トランザクション処理が失敗したことを意味します。 Error コレクション内の各 Error オブジェクトは、エラー メッセージを表します。
SQL ステートメント百科事典の要点
2006/10/26 13:46
DELETE ステートメント
DELETE ステートメント: FROM 句にリストされている 1 つ以上のテーブルからレコードを削除できる削除クエリを作成するために使用され、その句は WHERE 句の条件を満たします。DELETE を使用して複数のレコードを削除できます。
構文: DELETE [table.*] FROM table WHERE 条件
構文: DELETE * FROM table WHERE criteria='クエリワード'
説明: table パラメータは、レコードを削除するテーブルの名前を指定するために使用されます。
criteria パラメータは、削除するレコードを指定するために使用される式です。
DROP ステートメントで Execute メソッドを使用すると、データベースからテーブル全体を削除できます。ただし、この方法でテーブルを削除すると、テーブルの構造が失われます。違いは、DELETE を使用するとデータのみが削除され、テーブルの構造とフィールド属性やインデックスなどのテーブルのすべての属性が保持されることです。
アップデート
UPDATEに関して、緊急です! ! ! ! ! ! ! ! ! ! !
ORACLE データベースのテーブル A (ID,FIRSTNAME,LASTNAME)
テーブル B(ID,LASTNAME)
テーブル A の元の ID フィールドと FIRSTNAME フィールドのデータが完成しました。テーブル B の元の ID フィールドと LASTNAME フィールドのデータが完成しました。次に、テーブル B の LASTNAME フィールドの対応するデータを LASTNAME に入力する必要があります。表 A. 対応する場所。 2 つのテーブルの ID フィールドは相互に関連しています。
前もって感謝します!!!!
セットを更新 a.lastname=(a.id=b.id の b から b.lastname を選択)
SQL の 4 つの最も基本的なデータ操作ステートメント (挿入、選択、更新、削除) をマスターします。
SQL を練習することは、データベース ユーザーにとって貴重な資産です。この記事では、SQL の中核機能である 4 つの最も基本的なデータ操作ステートメントをマスターし、比較演算子、選択アサーション、および 3 値ロジックを順に導入する方法を説明します。これらの学習を完了すると、SQL に習熟し始めていることが明らかです。
始める前に、CREATE TABLE ステートメントを使用してテーブルを作成します (図 1 を参照)。 DDL ステートメントは、テーブル、列、ビューなどのデータベース オブジェクトを定義します。 DDL ステートメントはデータベース内の実際のデータを処理しないため、テーブル内の行は処理されません。これらのタスクは、別の種類の SQL ステートメントであるデータ操作言語 (DML) ステートメントによって処理されます。
SQL には、INSERT、SELECT、UPDATE、DELETE という 4 つの基本的な DML 操作があります。これらはほとんどの SQL ユーザーがよく使用するものであるため、ここでは 1 つずつ説明する必要があります。図 1 には、EMPLOYEES という名前のテーブルが示されています。各行は特定の従業員レコードに対応します。この表についてよく理解してください。次の例で使用します。