• ベストアンサー

コマンドと関数の違い

MySQLで「コマンド」と「関数」というのがあると思うのですが、この2つは何が違うのでしょうか?また、 select * from table などのようなものはSQL構文で、MySQLにおいてもコマンドとも関数とも呼ばないのですよね? よろしくお願いします。

  • MySQL
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

「コマンド」という用語は、幅広く使われます。システムのメンテナンスや情報を表示したりするものを分類してそう呼ぶこともあれば、SQLもコマンドの一部とする場合もあります。 例 mysql -u -p show tables; select * from t1 「関数」は、与えた引数から、値を返すものです。関数の中には、引数を持たないものもあります。 例 select curdate(),max(c1) from t1

その他の回答 (1)

回答No.1

「コマンド」はコンピュータに一連の仕事を命令することで、「関数」はコンピュータに対して質問をして結果を得ること、という感じです。たとえばmysqlというコマンドを使うと思いますが、あれはコンピュータに「MYSQLクライアントを起動して使得るように準備しなさい」という仕事を命令するコマンドです。関数では、CURRENT_DATE()関数は、「今日の日付を教えなさい」といった質問をコンピュータにすることです。 SELECTのSQL文は通常関数とは言わず、どちらかといえばSQLコマンドと言われることはあるでしょう。SQL文でもテーブルを作成するようなもの、たとえばCREATE TABLEみたいなのは「コマンド」と呼ぶ習慣があります。 大雑把な言い方で厳密には正確ではないでしょうが、「コマンド」はある程度複雑な処理をさせる命令、関数は簡単な答えを得る命令、といった理解でよいと思います。

関連するQ&A

  • Accessの区切り文字!と.の違い

    SELECT テーブル名.項目1 ,テーブル名.項目2 ,[テーブル名]![項目3]+[テーブル名]![項目4] as 項目名 from テーブル名 みたいなSQLがあります。 テーブル名と項目名をセパレートする記号として!を使っているところがありますが、何か意味ありますか? そもそもSQLの構文である.を使えるのなら、SQLの構文ではない!を使う意味ってあるのでしょうか?

  • postgreSQLでDB名やテーブル名・フィールドを表示させるSQLコマンド

    MySQLでは show databases; show tables; show fields from テーブル名; でSQLコマンドとしても実行できますが、PostgreSQLで 同じことのできるSQLコマンドはあるのでしょうか?

  • phpMyadminとPHP上からの違い?

    おせわになります よろしくお願いします SELECT COUNT(*) FROM テーブル名 WHERE dee = 0 AND Fee LIKE '%文字%' というSQL文があり、 phpMyadmin上からSQLを実行すると 4と表示されるのですが PHPから $sql = "SELECT COUNT(*) FROM テーブル名 WHERE dee = 0 AND Fee LIKE '%文字%'"; $result = mysql_query($sql,$conn); $row = mysql_fetch_row($result); とすると0、$row[0]は0となります 特にエラーの表示もなく データベースへの接続も問題ないようなのですが 原因がわかるかたいらっしゃいましたら 教えて下さい 以上よろしくお願いします

    • ベストアンサー
    • PHP
  • SELECT文でLEFT関数を使うと未定義関数ですと言われる

    VBソース上では SELECT LEFT(~~~,4) AS 項目 FROM テーブル と SELECT文で書いてもエラーにならずオープンできるみたいなのですが そのSQL文をACCESS2000上で動かすと 未定義関数LEFTがあると言われます どなたか分かる方至急お願いします!!!

  • 検索結果をファイルに出力するコマンド

    SQL Server2000を使用しています。 検索結果をウィザードを使わずにファイルに書き出すにはどうしたらよいでしょうか。 My SQLだと select * from table1 into outfile 'file1.txt' のようになると思いますがSQL Serverだとどうなるでしょうか。 持っている本によるとウィザードを使用する となっていて コマンドの記載がありません。 よろしくお願いします。

  • コマンドプロンプト 複数の実行結果を変数に

    複数のテーブルのデータ件数を取得して変数に入れ、result.txtに結果を出力したいのですが、下のように書くと、1つのテーブルのデータ件数しか出力されません。複数の結果を出力するにはどうしたらよいか教えてください。 for /f %%z in ('mysql -u root -p ^< "c:\bat\test.sql"') do set count=%%z echo result: %count% >> "c:\bat\result.txt" test.sqlの中身を、 select count(*) from table1; select count(*) from table2; select count(*) from table3; とすると何も出力されず、 select count(*) from table1; とすると、1つの結果だけ出力されます。

    • ベストアンサー
    • MySQL
  • MYSQLの差集合について

    MYSQLの差集合について MYSQLの差集合についてお教えください。OracleにはMinus、Postgres等はexceptがあります。MYSQLで同等の関数がないか調べましたが、無いのか検索がヘタなのかヒットしません。下記のようにSQLを書けばexceptと同じ効果があるのはわかりますが、exceptみたいにかけたら簡単かなと思います。そのような関数がありましたら、お教えください。よろしくお願い致します。 mysql> SELECT table1.* FROM table1 -> LEFT JOIN table2 ON table1.id=table2.id -> WHERE table2.id IS NULL;

    • ベストアンサー
    • MySQL
  • 自作関数でIF文はできないのか?

    SELECT テーブル1.ID, IIf([テーブル1]![ID]=1,"1です","1ではない") AS 1かどうか FROM テーブル1; というクエリ1を作成しました。 「IIf([テーブル1]![ID]=1,"1です","1ではない")」の部分を vbaのFunctionプロシージャーで記述したいのですがうまくできないです。 標準モジュールに Public Function IF文() IF文 = "IIf([テーブル1]![ID]=1,""1です"",""1ではない"")" End Function を作成し、 クエリ1のSQL文を SELECT テーブル1.ID, IF文() AS 1かどうか FROM テーブル1; としたら 「1かどうか」フィールドには関数式の結果ではなく、 関数式が文字列として表示されました。 (添付参照) 訳あって、 SQL文の一部をvbaで記載したいのですが上記のようなことは不可能でしょうか? ご教授よろしくお願い致します。

  • MySQLからフィールド名のリストを取り出し、一部のフィールド名を除外したい場合

    PHP + MySQLにて テーブルからフィールド名だけを取得し、さらに一部のフィールド名を除外したいです。 レコードじゃないのでis not構文は使えませんでした。 何かいい方法があれば教えてください。 $sql = "select * from table"; //tableテーブルからフィールド名を取り出し $rs = mysql_query($sql); $fields = mysql_num_fields($rs); $column = array(); for ( $i=0; $i<$fields; $i++ ) { $column[$i] = mysql_field_name($rs, $i); }

    • ベストアンサー
    • MySQL
  • count(1)とcount(*)の違い

    初心者です。 以下のSQL文の違い及びcount(1)の1が何を表しているのか 教えて頂けないでしょうか? select count(*) from table select count(1) from table また、参考しやすいサイト等ありましたら教えて頂けないでしょうか?