基本的なSQL構文:テーブルおよびデータベースの作成と変更

このチュートリアルでショーとは、基本的な構文やコマンドのSQL言語です。

データベースを作成し、ドロップ

第一に、何を見てみましょうMySQLサーバのデータベースにはすでに存在しています。 この情報を表示することができるshowコマンドを使用しています。 を入力し、次の(除くのMySQL >の部分)をMySQLのコンソールクライアントは、戻りが続きます:

  MySQLの> "表示データベース; 

既に作成には、 2つのデータベースは、 MySQLサーバです。 MySQLデータベースの管理のための情報が含まれてはならないとMySQLサーバーの更新です。 他のデータベースには、テストは、音のようなことは、まさにそれ:テストは、 MySQLサーバです。 データベースのテストが含まれていないもの、および必要に応じて安全に削除することができます。

データベースを作成する

だから私たちはどうすれば我々自身のデータベースの追加は、 MySQLサーバですか? そのためには、我々のコマンドを使用して作成しています。 まあ言ってみれば我々と呼ばれるデータベースを作成することを希望mydata ;私たちは次のような構文を使用しています。

注意 以下の表の長さや文字の制限を課すの名前のデータベース、テーブル、カラム、およびエイリアスです。
識別子 最大長 有効な文字
データベース 64 有効なディレクトリ名を除いてすべての文字が" 。 " と" / " 。
64 有効なディレクトリ名を除いてすべての文字が" 。 " と" / " 。
コラム 64 すべてが有効です。
別名 15 すべてが有効です。
  MySQLの>データベースを作成するmydata ; 
  

セミコロンに注意しては、すべてのコマンドを追加した後は、 SQL言語です。 我々リターンキーを押すときに、このコマンドを入力した後、私たちは、コンソールを知らせることは、クエリが分かりました。

さて、私たちはデータベースを作成して、それを確保することができますが、サーバ上で再度showコマンドを使用して、次のとおりです:

  MySQLの> "表示データベース; 

我々してリターンキーを押すときに、このコマンドを使用すれば、我々のデータベースを参照して、リストに追加されて(注意してリストには、アルファベット順ではなく、データベースの順番で作成された) 。

データベースの糞

今我々は、データベースサーバーから削除しています。 私たちはこの時に注意して、 (もしあれば)すべてのデータが失われます。 データベースを削除するには、我々 "ドロップ"を使用して、サーバからのコマンドをドロップします。 だから私たちの新しいmydataデータベースを破棄、我々は、次のコマンドを使用する:

  MySQLの>ドロップデータベースmydata ; 

このコマンドを実行するときに我々を押して戻り、オーケーは、クエリとして報告される。

さて、もし我々のリストを再度showコマンドを使用して、データベースへ:

  MySQLの> "表示データベース; 

... mydataデータベースを見ることができることは、もはや我々は、リストに表示されます。

MySQLのカラム(フィールド)の種類

我々の前にデータベース内のテーブルの作成について話し合う、今が良い時期に言及して、さまざまなカラム型のテーブルにすることができます。

各カラムは、テーブル型を割り当てる必要がありますが、その情報の種類を表すフィールドを開くことが起こっています。 ここでは、利用可能なタイプの完全なリストを使用することができます:

タイプ 説明
tinyint 非常に小さな整数。 登録範囲は、 255 127 。 符号なしの範囲は0から255 。
smallint 小さな整数です。 登録範囲は、 -32768から32767 。 符号なしの範囲は0から65535まで。
MEDIUMINTの ある中小整数です。 登録範囲は-8388608に8388607 。 符号なしの範囲は0〜16777215 。
int 通常サイズの整数。 登録範囲は、 -2147483648から2147483647です。 符号なしの範囲は0から4294967295まで。
BIGINTに 大きなサイズの整数です。 登録範囲は、 -9223372036854775808を9223372036854775807です。 符号なしの範囲は0〜18446744073709551615 。
フロート 小さな、単精度浮動小数点数に署名することはできません。 登録範囲は、 - 3.402823466e - 38を1.755494351e - 38 、 0 、および1.755494351e - 38を3.402823466e 38 。
ダブル 倍精度浮動小数点数に署名することはできません。 登録範囲は、 - 1.7976931348632157e - 308を2.2250738585072014e - 308 、 0 、および2.2250738585072014e - 308を1.7976931348632157e 308 。
10進数 浮動小数点数をアンパックして署名することはできません。 作品のように" char "列の中に格納して、文字列としての数字は(すなわち、 1つのキャラクターは、それぞれの番号を使って文字列) 。
日付 デートです。 範囲は、 9999年12月31日および1000年1月1日には、フォーマットyyyy - MM - DDのです。
時間 一度です。 とは838:59:59の範囲は-838:59:59にはフォーマットhh : mm : ssにします。
日付時刻 日付と時刻の組み合わせである。 範囲は、 1000年1月1日00:00:00には、 9999年12月31日21時59分59秒とは- MM - DDのフォーマットyyyy hh : mm : ssにします。
1年[ ( 2 | 4 ) ] 1年で2 -または4桁形式(デフォルトは4 ) 。 また1901年から2155年の範囲は0000です。
タイムスタンプ タイムスタンプ。 範囲は、 1970年1月1日00:00:00には、いつかyyyymmddhhmmss形式では、 2037年1年間です。
文字(長さ) 固定長文字列にしては、いつもの右側にスペースを保存する際には、指定した長さです。 文字の範囲は1から255に応じて、 "長さ"を指定します。
VARCHAR型 可変長文字列です。
tinyblob / tinytext 小さなバイナリオブジェクトです。 最大文字数は255文字です。 *注下の表を参照してください。
にblob /テキスト バイナリオブジェクトです。 の最大長は65535文字です。 *注下の表を参照してください。
mediumblob / mediumtext メディアバイナリオブジェクトです。 最大長16777215文字です。 *注下の表を参照してください。
longblob / longtext 大きなバイナリオブジェクトです。 最大長4294967295文字です。 *注下の表を参照してください。
のenum ( ' val1 ' 、 ' val2 '...) 列挙する。 リストの文字列値を1つだけ選択することができます。 65535別個の最大値です。
セット( ' val1 ' 、 ' val2 '...) セットです。 オブジェクトの文字列値をゼロ以上のことができるが、それぞれのリストから選択する必要があります(すなわち、 ' val1 ' 、 ' val2 ' 、等) 。 最大で64文字までです。
注意 唯一の違いは、 BLOB型とTEXT型と比較してソートするためには、大文字と小文字を区別するblobのは、テキストタイプではないが、大文字と小文字を区別します。

作成、修正、およびテーブル

テーブルを作成する

さて、私たちが知っている可能性が我々のテーブルのカラム型のため、どのように我々を見てみましょうテーブルの作成については、実際に行く。

まあ言ってみれば表を作成することを希望して私たちを開き、データベース内のいくつかのユーザーの詳細です。

我々は、ユーザーの保存したいタイトルは、ファーストネームで、姓、年齢、 e - mailアドレス、および、日付、ユーザは、データベースに追加されます。 だから我々は我々が必要で、以下の表の列:

 タイトルfirstname姓年齢メールアドレスdateadded 

実際にどのように私たちに入る前に追加することは、まず私たちはどのように考えて行く以上の情報を格納して、その点は、どのような種類のそれぞれのための我々のカラムを必要とします。

タイトルは、ファーストネームで、姓は、テキスト型を使用することができる、たくさんの文字が含まれるようにすべての可能性を可能にするためです。

注意 VARCHAR型のことかもしれないが、より速く、より良い仕事を選ぶ場合、文字列の長さが255文字未満に制限されています。

年齢では、符号なしtinyintとしては、当然の選択は、年齢層としては、 1つの数値とは今までにない過去255生きることが知られています。 ためのe - mailアドレス、再度使用することができるテキストの種類は、我々としてはかなりの収納スペースを与えるためにアドレスを入力します。 最後に、公開して、ユーザーのために追加された表で、タイムスタンプを使用することができます。

注意 ジャワでは、使用することが可能にして保存するデータ型int system.currenttimemillis ( ) / 1000の値です。 この値は、データベースから取得した後にした。 それから掛け算することとされた1000型の日付に変換すること(すなわち、日付=新規公開(値) ; ) 。 これはその際に役立つのローカライズおよび/または異なるデータベース間の変換

タイムスタンプは、大きな財産にしても、時間と日付のデータベースを自動的に取得することができます。

さて、私たちが知っている我々は我々のカラムのタイプは、我々に必要なデータベースを作成するテーブルを追加しています。 myinfoてみようと呼ばれるデータベースを作成するには、次のコマンドを使用します:

  MySQLの>データベースを作成するmyinfo ; 

このコマンドを実行するときに我々は、報告書は、コンソールばならないことは、クエリが分かりました。 我々ができるようになりました我々のデータベースが作成されているか確認して、次のコマンドを使用します:

  MySQLの> "表示データベース; 

今我々にmysqlに指示する必要がアクションを実行することを希望してmyinfoデータベースです。 これが達成されたコマンドを使用して使用する:

  MySQLの>を使用myinfo ; 
注意 を使用することなく、データベースのすべてのテーブルでmyinfoしなければならないmyinfo.mytableと呼ばれることは、もちろん、これは非常に不便です。

このコマンドの実行後、任意のddl (データ定義言語)とdml (データ操作言語)ステートメントの実行にも影響を及ぼすことには、データベースを使用し、これが私たちのこのような場合myinfoデータベースです。

さて、我々は我々のデータベースをセットアップするとコマンドを受け入れる準備ができ、我々のテーブルを作成することができます(これは、我々の名前userinfo )は、次のステートメント:

  MySQLの>表を作成userinfo ( ->のI Di ntA UTO_INCREMENTのは、 - >タイトルのテキストは、 - > fi r stnameテキスト、->姓のテキストは、->年齢ti n yi nt、->電子メールのテキストは、 ->da t e ad d edタイムスタンプは、- >主キー( I Dを) ) ; 
注意 auto_incrementは、標準のSQLオプションではありません。 mssql (マイクロソフト社のSQL )には、似たようなオプションを選択するとpostgre今は、しかし、オラクルがない場合は、これを行う方法として、テーブルを作成するオプションを選択します。 それがなされなければならないとトリガとシーケンスです。

少し休憩してみましょうこれを見ることができるので何が起きています。 最初に私たちを宣言して表を作成することを願って作成されたテーブルを入力します。 次の我々の名前を指定して、テーブルをコールすることを願って;このケースでは、名前はuserinfo 。 それから私たちは括弧を使用してすべての列が含まれている必要とするだけで我々のテーブルのすべてのカラム名のリストとタイプしていただく必要です。 我々はどのようにメモを追加するフィールドの名前のIDを追加します。 最後に、メモして、主キーに加えて、最後のパラメータとして。 これはどのように決定に使用される、データベース内のテーブルには最適です。

我々ができるようになりました我々のテーブルが作成に成功したかを確認して次のコマンドを実行する:

  MySQLの> "表示テーブル; 

メモを表示することもできますが、テーブルのカラムを使用して、次のコマンドを使用します:

  MySQLの>を記述するuserinfo ; 

このコマンドを実行するときに、すべての詳細は、コンソールに表示される各テーブル内のカラムのuserinfo 。

この情報が有用なテーブルが作成さを確保するための両方に必要と想定して、テーブルのカラムの要点は、後日含まれています。

テーブルを変更する

だから今すぐして表を作成する方法を知っている我々は、どのように我々を見てみましょうについての変更を行っています。 テーブルを変更するだけでできる範囲を変更してからの1つのタイプのカラムを完全に新しいカラムを追加する(または既存の列取り外し) 。

どのように私たちを見てみましょう最初に既存の列の名前を変更します。 私たちのuserinfo表で、我々は、カラムfirstnameと呼ばれるが、これを読んでみよう今forename変更は、最初のシノニム人の名前です。

この変更を行うには、次のような構文を使用する必要があります:

  MySQLの> userinfo ALTER TABLEのテキストを変更するforename firstname ; 
ヒント それは、常に強く推奨して、データベースの設計を作成する前に問題点を修正することがあるかもしれませんので/またはデータベースのテーブル構造を変えるの後にはデータをテーブルに挿入される。

我々も注意する必要があります列のデータ型を供給するだけでなく、その古さと新しさの名前です。

我々のテーブルを記述する場合には、次のコマンドをuserinfo :

  MySQLの>を記述するuserinfo ; 

...このコラムを見ることができることをforename firstnameに改称されています。

我々の種類のデータを変更することも、テーブルのカラムです。 まあ言ってみれば私たちの年齢を変えたいというコラムをtinyintからの国際 私たちは、次のコマンドを使用する:

  MySQLの> ALTER TABLEの変更userinfo年齢int ; 

このコマンドの実行後、もし我々のテーブルを記述することができるタイプが変更を参照してください国際

最後に、それを削除する方法を知っているのは良いことから、テーブルのフィールド(たとえば、もし彼らは、もはや必要ありません) 。 今してみようと言うことはもはや我々を必要とする電子メールのフィールドが我々のテーブルuserinfo 。 我々の望みは" drop "と我々のテーブルのフィールドからです。 ここでは、電子メールを削除する構文は、フィールドに入力します。

  MySQLの> ALTER TABLEのuserinfoドロップ電子メール; 

いったんこのコマンドを実行すると、我々のテーブルには、以下のコマンドを記述:

  MySQLの>を記述するuserinfo ; 

ドロップテーブル(削除)

データベースのテーブルからの取り外しは非常に単純なものではなくせずに悲惨な影響を慎重に使用することができます。 その主なものを投下するときに注意して表には、すべてのデータを失うことも、テーブル内で含まれています。 したがって、賢明なことは、常に実行する前に、データベースをバックアップして任意のコマンドをドロップします。

さあ今すぐ見てから、どのように我々のテーブルにドロップするuserinfo myinfoデータベースです。 そのためには、我々で、次のコマンドを実行する必要がコンソールには、 MySQLのクライアントです。

注意 テーブルにドロップすることはできません実際の関係にある場合は、他のテーブルにしても、データベースの整合性を破る。 もし関係ではない"本物は、 "エラーなしでテーブルを除去することができます 、その後の整合性が侵害されます。 気を付けていない場合は、管理者は、永久には、データベース破損しています。

  MySQLの>ドロップテーブルuserinfo ; 

いったんこのコマンドを実行すると、テーブルのことができることを確認して上場されて削除されるもので、現在のところ我々のテーブルは、以下のコマンドを実行しデータベースmyinfo :

  MySQLの> "表示テーブル; 

表には、データベースには存在しません。

これは、記事に追加されたジョージイオネスク
免責事項:弊社のウェブサイト上ではない情報の責任を負うこの記事に含まれる。 この記事ではありません意見を反映して、ご意見、思想や信条のスタッフは、記事のディレクトリです。

翻訳注意:この記事の"基本的なSQL構文:テーブルおよびデータベースの作成と変更"を翻訳する自動翻訳サービスを使用しています。 我々の翻訳を深くお詫び申し上げます。いかなるエラーが発生しています。 理解をいただきありがとうございます。

Online: 583 users browsing the articles directory