これは MySQL のリファレンスマニュアルです; これは MySQL バージョン 3.23.16-alpha について記述しています。
MySQL は発展中なので、マニュアルは頻繁に更新されます。そのため、 オンラインで参照しない限り、このバージョンが期限切れである可能性があります。 このマニュアルの最新バージョンは http://www.mysql.com/doc.html に多 様な形式で置いてあります。マニュアル内の情報を見つけるつらい時間を持つなら、 検索可能 PHP バージョン http://www.mysql.com/php/manual.php3 を試す ことが可能です。
MySQL はとても高速で、マルチスレッド、マルチユーザ、頑丈な SQL (Structured Query Language)データベースサーバです。
Unix と OS/2 プラットフォームでは MySQL は基本的に無償であり、Microsoft プラットフォームでは、30日の試用期間を過ぎて使用する場合に MySQL ライセンスを 買わなければなりません. 「3 MySQL ライセンスとサポート」節参照.
MySQL ホームページは MySQL についての最新情報を提供しています。
次のリストはマニュアルのいくつかの有用なセクションを説明しています:
重要:
エラー(バグ)レポート、質問、コメントは
メーリングリスト mysql@lists.mysql.com に送ってください。 「2.3 バグや問題を報告する方法」節参照。
バグレポートを生成するためには mysqlbug
スクリプトを使用すべきです。
ソースディストリビューションでは、mysqlbug
スクリプトは `scripts' ディレクトリ
に見つけることができます。バイナリディストリビューションでは、mysqlbug
は
`bin' ディレクトリに見つけることができます。
このマニュアルへの追加または修正に関連する提案がある場合は、それらを MySQL マニュアルチーム (docs@mysql.com)に 送ってください。
MySQL は本当にマルチユーザ、マルチスレッドの SQL
データベースサーバです。SQL は世界でもっともポピュラーな
データベース言語です。MySQL は、サーバデーモン mysqld
と
多くの種類のクライアントプログラムとライブラリからなるクライアント/サー
バ実装です。
SQLは、情報を保存し、更新し、そしてアクセスすることを簡単にするために標準化された言語です。 例えば、あなたは、商品案内を検索するためにSQLを使って、 ウェブサイトに関するカスタマー情報を蓄積することができます。 MySQL は、ログや写真を保存させるにも、十分にはやく、フレキシブルです。
MySQL の主な目的は高速で頑丈で簡単に使用できることです。 MySQL は独自に開発されました。我々は、とても大きなデータ ベースを、他のデータベースベンダが我々に提供するものよりも速く、重要度の 順に処理できる SQL サーバを必要としていたからです。我々は、10,000 テー ブルを含む 40 以上のデータベースの環境で 1996 年から MySQL を使 用しています。そのテーブルの 500 テーブル以上は 700万以上のレコードを持ちます。 これは約100ギガバイトの、基幹業務のデータです。
MySQL が作成される上での基本は、何年もの間、製品環境の高い要求 で使用されていたルーチンのセットです。MySQL はまだ開発中ですが、 豊富でとても有用な関数セットを既に提供しています。
MySQL の公式な発音は ``My Ess Que Ell'' です(MY-SEQUEL ではあり ません)。
このマニュアルは以下の方々により訳されました (ハンドル名だけ書きます。敬称略。翻訳サーバーに登録した順 :) ):
このマニュアルは現在 Texinfo, プレーンテキスト, Info, HTML, PostScript, PDF バージョン があります。サイズが大きいため Postscript と PDF バージョンは MySQL のディストリビューションには含まれていませんが、別にダウン ロードするようになっています。http://www.mysql.com/.
プライマリドキュメントは Texinfo ファイルです。HTML バージョンは
texi2html
の変更されたバージョンで自動的に提供されます。プレーン
テキストと Info バージョンは makeinfo
で提供されます。PostScript
バージョンは texi2dvi
と divps
を使用して提供されます。PDF
バージョンは Ghostscript ユーティリティ ps2pdf
で提供されます。
このマニュアルは David Axmark, Michael (Monty) Widenius, Paul DuBois, によって作成され、維持されています。他の貢献者については 「D Contributors to MySQL」節 を参照してください。
このマニュアルは特定の印刷上の表記を使用しています:
constant
mysqladmin
がどのように動作するかを見るためには、
--help
オプションをつけて起動してください。''
コマンドが特定のプログラムによって実行されることを意味することを表す時、
コマンドと共に表示されるプロンプトによって、そのプログラムを表します。例えば、
shell>
は、あなたのログインシェルから実行するコマンドを表し、
mysql>
は mysql
クライアントプログラムから実行するコマンドを表します:
shell> type a shell command here mysql> type a mysql command here
シェルコマンドは Bourne シェル構文で示されます。csh
形式のシェ
ルを使用している場合は、わずかに変更してコマンドを発行する必要があるでしょ
う。例えば、環境変数を設定してコマンドを実行するシーケンスは、Bourne シェ
ル構文では次のようになります:
shell> VARNAME=value some_command
csh
では、次のようなシーケンスを実行してください:
shell> setenv VARNAME value shell> some_command
データベース名, テーブル名, フィールド名はコマンドの中で置換しなければいけない
ことがよくあります。このような置換が必要なことを示すために、このマニュア
ルは db_name
, tbl_name
, col_name
を使用します。
例えば、次のようなステートメントを見た場合:
mysql> SELECT col_name FROM db_name.tbl_name;
これは、同様のステートメントを入力するためには、おそらく次のように、あな た自身のデータベース名, テーブル名, フィールド名を供給することを意味します:
mysql> SELECT author_name FROM biblio_db.author_list;
SQL ステートメントは大文字でも小文字でも記述できます。このマニュアルが
SQL ステートメントを示すときは、特別なキーワードを説明している時には(そ
れを強調するために)そのキーワードに大文字が使用され、残りのステートメン
トに小文字が使用されます。 例えば、SELECT
ステートメントの説明中
には次が見られるでしょう:
mysql> SELECT count(*) FROM tbl_name;
一方、COUNT()
関数の説明中では、ステートメントは次のように書かれ
ます:
mysql> select COUNT(*) from tbl_name;
特別な強調が意図されない場合、全てのキーワードは大文字で書かれます。
構文の説明中では、角括弧(`[' と `]')はオプションの単語や節であ ることを示すために使用されます:
DROP TABLE [IF EXISTS] tbl_name
構文要素がいくつかのものからなる場合、垂直バー(`|')で区切られます。 選択セットから一つのメンバを選ぶことができるときは、角括弧中にリストされ ます。 (`[' and `]'):
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
選択セットから一つのメンバを選ぶ必要があるときは、波括弧(`{' と `}')中にリストされます:
{DESCRIBE | DESC} tbl_name {col_name | wild}
我々自身の速くて低レベルな (ISAM) ルーチンを使用する、我々のテーブルへ
接続するために、 我々は一度
mSQL
を使用するつもりでした。しかし、いくつかのテストの後、我々は
mSQL
は我々が必要とするほど高速ではなく、柔軟度を持っていないとの
結論に至りました。この結果、mSQL
とほとんど同じ API インタフェー
スを持つ、我々のデータベースへの新しい SQL インタフェースに帰結しました。
この API はサードパーティコードの移植を簡単にするために選択されました。
MySQL の名前の由来は完全には明らかではありません。我々のベース ディレクトリと多くのライブラリとツールは接頭辞 ``my'' を 10 年以上も使っ ています。しかし、Monty の娘(何年か若い)も My という名前です。そのため、 この2つのどちらが MySQL に名前を与えたかは、我々にとっても未だ 謎です。
While this manual is still the right place for up to date techical information, its primary goal is to contain everything there is to know about MySQL. And it is sometimes nice to have a bound book to read in bed or while you travel. Here are a list of books about MySQL (in English).
Title | MySQL |
Publisher | New Riders |
Author | Paul DuBois |
Pub Date | 1st Edition December 1999 |
ISBN | 0735709211 |
Pages | 800 |
Price | $49.99 US |
Downloadable examples | samp_db.tar.gz
|
Errata | are available here |
Foreword by Michael ``Monty'' Widenius, MySQL Moderator
In MySQL, Paul DuBois provides you with a comprehensive guide to one of the most popular relational database systems. Paul has contributed to the online documentation for MySQL, and is an active member of the MySQL community. The principal MySQL developer, Monty Widenius, and a network of his fellow developers reviewed the manuscript, providing Paul with the kind of insight no one else could supply.
Instead of merely giving you a general overview of MySQL, Paul
teaches you how to make the most of its capabilities. Through two
sample database applications that run throughout the book, he
gives you solutions to problems you're sure to face. He helps you
integrate MySQL efficiently with third-party tools, such as PHP
and Perl, enabling you to generate dynamic Web pages through
database queries. He teaches you to write programs that access
MySQL databases, and also provides a comprehensive set of
references to column types, operators, functions, SQL syntax,
MySQL programming, C API, Perl DBI
, and PHP API.
MySQL simply gives you the kind of information you won't find
anywhere else.
If you use MySQL, this book provides you with:
DBI
and PHP APIs for developing
command-line and Web-based applications
DBI
API,
and PHP's MySQL-related functions
Title | MySQL & mSQL |
Publisher | O'Reilly |
Authors | Randy Jay Yarger, George Reese & Tim King |
Pub Date | 1st Edition July 1999 |
ISBN | 1-56592-434-7, Order Number: 4347 |
Pages | 506 |
Price | $34.95 |
This book teaches you how to use MySQL and mSQL
, two popular and
robust database products that support key subsets of SQL on both Linux
and UNIX systems. Anyone who knows basic C, Java, Perl, or Python can
write a program to interact with a database, either as a stand-alone
application or through a Web page. This book takes you through the
whole process, from installation and configuration to programming
interfaces and basic administration. Includes ample tutorial
material.
Title | Sams Teach Yourself MySQL in 21 Days |
Publisher | Sams |
Authors | Mark Maslakowski and Tony Butcher |
Pub Date | June 2000 |
ISBN | 0672319144 |
Pages | N/A |
Price | $39.99 |
Sams Teach Yourself MySQL in 21 Days is for intermediate Linux users who want to move into databases. A large share of the audience to be web developers needing a database to store large amounts of information that can be retrieved via the Web. Sams Teach Yourself MySQL in 21 Days is a practical, step-by-step tutorial. The reader will learn to design and employ this open source database technology into his/her web site using practical, hands-on examples to follow.
Title | E-Commerce Solutions with MySQL |
Publisher | Prima |
Authors | N/A |
Pub Date | September 2000 |
ISBN | 0761524452 |
Pages | 500 |
Price | $39.99 |
No description available.
Title | Professional MySQL Programming |
Publisher | Wrox |
Authors | N/A |
Pub Date | July 2000 |
ISBN | 1861004281 |
Pages | 1000 |
Price | $49.99 |
No description available.
Title | PHP3 and MySQL Web Development |
Publisher | N/A |
Authors | William Jason Gilmore |
Pub Date | October 2000 |
ISBN | 672317842 |
Pages | N/A |
Price | $39.99 |
No description available.
MySQL の重要な特徴のいくつかを以下の項目にあげます:
FLOAT
, DOUBLE
, CHAR
, VARCHAR
, TEXT
,
BLOB
, DATE
, TIME
, DATETIME
, TIMESTAMP
,
YEAR
, SET
, ENUM
型。 「7.3 フィールド型」節参照。
SELECT
と WHERE
部内での全ての演算子と関数のサポー
ト。例:
mysql> SELECT CONCAT(first_name, " ", last_name) FROM tbl_name WHERE income/dependents > 10000 AND age > 30;
GROUP BY
と ORDER BY
節の完全なサポート。グループ関数
(COUNT()
, COUNT(DISTINCT)
, AVG()
, STD()
, SUM()
, MAX()
,
MIN()
) のサポート。
LEFT OUTER JOIN
のサポート。
CHAR
または VARCHAR
フィールドの先頭部分を使用できます。
INSERT
を使用でき、明示的に値が与えられていないフィールドはそのデ
フォルト値が設定されます。
libtool
を使用しています。
purify
)でテ
ストされています。
myisamchk
を含んでいます。これは、テーブル検査、最適化、修復のため
のとても速いユーティリティです。 「15 Maintaining a MySQL installation」節参照。
DELETE
, INSERT
, REPLACE
, UPDATE
は
変更された(影響を受けた)行の数を返します。
サーバ接続時にフラグを設定することにより、代わりに適合したレコード数を返す
ことも可能です。
ABS
は正しいフィールド
名です。制限は、関数呼び出しに、関数名とそれに続く `(' の間に空白が
許されないことだけです。 「7.34 Is MySQL picky about reserved words?」節参照。
--help
と -?
オプションで呼び出すことができます。
SHOW
コマンドはデータベース、テーブル、イン
デックスについての情報を取出すために使用できます。EXPLAIN
コマン
ドはオプティマイザがどのようにクエリを解析するかを決定するために使用
できます。
この節では、``MySQL はどれくらい安定か?'' と ``私はこのプロジェ クトで MySQL に依存できるか?'' という質問について回答します。
我々はここで、いくつかの問題を明らかにし、多くの人に関係すると思われるさ らに重要な質問のいくつかを回答することを試みます。この節は、メーリングリ スト(そこではとても活発にバグが報告されています)から取り込まれた情報が一 緒に置かれています。
TcX では、MySQL は 1996 中頃から我々のプロジェクトで何の問題も なく動いていました。広く公にリリースされた時、我々は、MySQL 内 に ``テストされていないコード'' の部分があることに注意しました。これは、 我々とは異なる方法でクエリを作成する新しいユーザによってすぐに見つけられました。 新しい各リリースは、(多くの新しい機能を持っているのに)前のものよりも問題 は少なくなります。そして次のリリースの一つを ``安定'' と呼ぶことができるよ うに我々は望んでいます。
MySQL の各リリースは実用的で、ユーザが ``グレイゾーン'' からの コードの使用を開始する時にだけ問題があります。当然、外部のユーザは、何が グレイゾーンかを知ることができません; この節で現在知られているこれらを示 してみます。 説明は MySQL の 3.22.x バージョンで扱われます。知られていて報告 されているバグは全て最新のバージョンで修正されています。bugs 節に 書かれているバグは除きます。それらは ``設計'' 関連のものです。 「F MySQL での既知のエラーと欠けているデザイン」節参照.
MySQL は複数の階層と様々な独立モジュールで書かれています。これ らのモジュールは、それぞれがどのようにテストされているかとともに次にリス トされています:
mysql
, mysqladmin
, mysqlshow
,
mysqldump
, mysqlimport
を含みます.
--skip-locking
フラグつきで動かすべ
きです。知られている問題は、いくつかの Linux システムと NFS マウントされ
たファイルシステム使用時の SunOS です。
fcntl()
コールでだけ問題が見つかっています。これは mysqld
への --skip-locking
オプションの使用で修正できます。何人かは
0.5 リリースで lockup 問題を報告しました。
SELECT
では、ステートメントは通常一度のフレームで行われるため、
mutex locking/thread juggling はありません。
LOAD DATA...
, INSERT ... SELECT
-- 安定
ALTER TABLE
-- 安定
mysqlaccess
-- ガンマ
GRANT
-- ガンマ
TcX は代金を支払った顧客のために email サポートを提供しています。しかし MySQL メーリングリストは通常、全ての一般的な質問に回答を提供し ています。バグは通常すぐにパッチで修正され、深刻なバグには、ほとんどいつ も新しいリリースがあります。
MySQL 自身は 2000 年問題(Y2K)に対して何の問題も持っていません:
2069
年まで日付には何の
問題もありません; 全ての2桁の年は 1970
から 2069
の範囲に
あると見なされます。これは、year
フィールド内に 01
を格納する場
合、MySQL はそれを 2001
として扱うということを意味します。
YEAR
フィールド型は
0
と 1901
から 2155
までの年を1バイトで格納でき、2
桁または4桁で表示できます。
2000年安全でない方法で MySQL を使用するアプリケーションでは問題
になります。例えば、多くの古いアプリケーションは4桁値ではなく2桁値(これ
は曖昧です)を使用して年を格納し操作します。この問題は、00
または
99
のような値を ``欠けている'' 値の表われとして使用するアプリケー
ションによって作られます。
あいにく、これらの問題を修正するのは困難です。様々なアプリケーションが様々 なプログラムによって書かれていて、その各々が慣習と日付操作関数の様々な組 み合わせを使用するからです。
これは、MySQL が 2030 年までの日付に何の問題もないことを示す簡単なテスト です!
mysql> DROP TABLE IF EXISTS y2k; mysql> CREATE TABLE y2k (date date, date_time datetime, time_stamp timestamp); mysql> INSERT INTO y2k VALUES ("1998-12-31","1998-12-31 23:59:59",19981231235959); mysql> INSERT INTO y2k VALUES ("1999-01-01","1999-01-01 00:00:00",19990101000000); mysql> INSERT INTO y2k VALUES ("1999-09-09","1999-09-09 23:59:59",19990909235959); mysql> INSERT INTO y2k VALUES ("2000-01-01","2000-01-01 00:00:00",20000101000000); mysql> INSERT INTO y2k VALUES ("2000-02-28","2000-02-28 00:00:00",20000228000000); mysql> INSERT INTO y2k VALUES ("2000-02-29","2000-02-29 00:00:00",20000229000000); mysql> INSERT INTO y2k VALUES ("2000-03-01","2000-03-01 00:00:00",20000301000000); mysql> INSERT INTO y2k VALUES ("2000-12-31","2000-12-31 23:59:59",20001231235959); mysql> INSERT INTO y2k VALUES ("2001-01-01","2001-01-01 00:00:00",20010101000000); mysql> INSERT INTO y2k VALUES ("2004-12-31","2004-12-31 23:59:59",20041231235959); mysql> INSERT INTO y2k VALUES ("2005-01-01","2005-01-01 00:00:00",20050101000000); mysql> INSERT INTO y2k VALUES ("2030-01-01","2030-01-01 00:00:00",20300101000000); mysql> INSERT INTO y2k VALUES ("2050-01-01","2050-01-01 00:00:00",20500101000000); mysql> SELECT * FROM y2k; +------------+---------------------+----------------+ | date | date_time | time_stamp | +------------+---------------------+----------------+ | 1998-12-31 | 1998-12-31 23:59:59 | 19981231235959 | | 1999-01-01 | 1999-01-01 00:00:00 | 19990101000000 | | 1999-09-09 | 1999-09-09 23:59:59 | 19990909235959 | | 2000-01-01 | 2000-01-01 00:00:00 | 20000101000000 | | 2000-02-28 | 2000-02-28 00:00:00 | 20000228000000 | | 2000-02-29 | 2000-02-29 00:00:00 | 20000229000000 | | 2000-03-01 | 2000-03-01 00:00:00 | 20000301000000 | | 2000-12-31 | 2000-12-31 23:59:59 | 20001231235959 | | 2001-01-01 | 2001-01-01 00:00:00 | 20010101000000 | | 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 | | 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 | | 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 | | 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 | +------------+---------------------+----------------+ 13 rows in set (0.00 sec)
これは、DATE
と DATETIME
型は未来のいかなる日付において
問題のないことををしめします (これら日付は 9999 年まで扱えます)
TIMESTAMP
型は、時刻を保存しますが、2030-01-01
までです。
TIMESTAMP
は 32-bit マシンでは 1970
から 2030
の範囲です。
64-bit マシンでは、 2106
年まで扱えれます。
MySQL は 2000年対応ですが、曖昧でない入力を提供するのはあなたの 責任です。曖昧な日付の入力データ(2桁の年の値)の扱いについての MySQL の規則については 「7.3.6.1 西暦2000年問題とデータ型」節 を参照してください。
この本は MySQL メーリングリストの数人によって推奨されています:
Judith S. Bowman, Sandra L. Emerson and Marcy Darnovsky The Practical SQL Handbook: Using Structured Query Language Second Edition Addison-Wesley ISBN 0-201-62623-3 http://www.awl.com
この本も MySQL ユーザーにいくつかの推薦を受けています:
Martin Gruber Understanding SQL ISBN 0-89588-644-8 Publisher Sybex 510 523 8233 Alameda, CA USA
SQL チュートリアルがネット上にあります http://www.geocities.com/SiliconValley/Vista/2207/sql1.html
SQL in 21 Tagen (online book in German language): http://www.mut.de/leseecke/buecher/sql/inhalt.htm
Apart from the following links, you can find and download a lot of MySQL programs, tools and APIs from the Contrib directory.
DBI:DBD
and CGI.pm
.
FutureSQL allows one to easily setup config files to view, edit, delete
and otherwise process records from a MySQL database. It uses a data
dictionary, configuration files and templates, and allows "pre-processing"
and "post-processing" on both fields, records and operations.
MySQL
with other programsmSQL
mSQL
Tcl
DBI
/DBD
.
DBI
/DBD
modules homepage
MySQL を使用した多くの web ページもあります。 「B Some MySQL users」節参照。この リストへ追加できるものを webmaster@mysql.com に送ってください。 We now require that you show a MySQL logo somewhere (It is okay to have it on a ``used tools'' page or something similar) to be added.
Go to the first, previous, next, last section, table of contents.