2

これらのステートメントが有効な理由[amUsingSQL2008 R2]

Select* FROM TableName   --UPDATE: this is not allowed in Oracle (10g)

Select *From TableName  --UPDATE: this is allowed in Oracle (10g)

今これ

Select*From TableName   --UPDATE: this is not allowed in Oracle (10g)

更新:SQLServerでは3つすべてが許可されています

私はそれをこのように知っていますSelect * From TableName

4

2 に答える 2

4

これらのインスタンスでは、ステートメントの個別のトークンを認識するためにスペースは必要ありません。

一般に、プログラミング言語パーサーは、テキストを個別のトークンに分割することによって機能します。この場合のSQLServerでは、。を含むキーワードを使用できないため、キーワード検索は「select」で完了します*。は次の*トークンに入れられます。

これを行うこともできます(スペースがないように見えます)。醜いかもしれません

select*from[master]..[spt_values]where[type]='p'
于 2012-10-18T17:38:00.870 に答える
0

それらが有効である理由、または必要な操作を実行できる理由、つまり、名前付きデータベースのフィールド、レコード、およびデータの両方のすべてのコンテンツ-名前付きデータベース構造全体を一覧表示できる理由を尋ねていますか?その理由は、SQLがそのキーワードまたは組み込みコマンドを理解し、メモしているためです。コマンドワードを正しく入力した場合、などの文字をどこに配置しても、常に機能し、コマンドが実行されます。 。コマンドの構文と構造が完全である限り、たとえば、次の場合にSELECTコマンドが完了します。SELECT(what())FROM(where(tablename));

必要に応じて、次のようにWHEREコマンドを追加することもできます。SELECT(what(*))FROM(where(tablename))WHERE(condition); SQLに関連する各組み込みコマンドまたはキーワードの間のスペースは関係ありません。

于 2012-10-18T17:51:29.843 に答える