たくさんのプログラミングの助けのための要求にオンラインで貢献の後で直々に私は彼ら自身を見つけること人々がプログラミングをいかに学ぶべきである、そしていかにについての問題を考慮するべきであるか多くの理論そして考えを有し。 このポストは読まれたらそのうちのいくつかを解決するべきであること一般に頼まれた問題調査し、先端を与える多数の第一号である。
私の経験の多くはSQLのデータベースのまわりに集中し、そのような物が私が考える区域の1つであるので他の質問をし始める前に人々は中央考えを理解するべきである。 概念的には、作成するのに変え、破壊するテーブルおよびデータベースを使用されているSQLの言語のすべての変形に10の主要なキーワードがある; そして入力に、それらのテーブルからデータを変更し、取除きなさい。
意味する説明し、選択のあなたのデータベースで他の源と無関係にそれらをものを使用しなさい書かれているより多くを次単語を識別この全記事を読み、できればあなたのSQLとだけ進歩して準備ができている書くために。 (私の例のほとんどは目指されたANSI標準的なSQLかmySQLである)これらのトピックで読むことができるが、あったり次何とかやるのに必要とされる裸の必要がある大いに多くが。
1.テーブルを作成しなさい
データを使用から始まることができる前に容器がそれを貯えることを必要とする。 SQLのデータベースの容器はテーブルと呼ばれる。 これは一連の列であり、(データの各項目が貯えられるかところに)特定の列を識別し、データを含んでいるのに使用されているさまざまなデータタイプであるコラム。 作成の声明はものが含んでいることができるテーブルが作られることを可能にし規則を指定する(、そしてそれいかにについてのテーブルで指示することができるか)。
これが基本的なガイドであるので; 私はちょうど部品が意味するか何を簡単のの作成する声明を輪郭を描き、;
作成しなさいテーブルのyour_table_name (ブランクINT b VARCHAR (20))を;
これは2つのコラムと20の長さまで特性を含むことができるひもであるヌル値およびbを可能にしない、整数であるyour_table_nameと呼ばれたテーブルを作成する。
ノート; 他の選択がある、
- 既になければテーブルを作成するために指定する議論を有することができる。
- 他のテーブルのようなテーブルは作成することができる(定義をコピーする)
- テーブルは選り抜き声明を使用し、それから戻るデータをコピーすることによって作成することができる
- 一時表はディスクに書かれていないしテーブルのように一時的なキーワードなしでは永久に保たれないし、そして永久的であるように設計されていない一時表。
- 抑制およびコメントはコラムと全体としてテーブルに加えることができる
- 基本キーおよび他の索引は加えることができる; データおよびsearchabilityを高めることの重複を限る。
- 外国のキーは他のテーブルの内で含まれている価値によって挿入されるべき加えられた制限の価値である場合もある。
- コラムのデータを保持するのに使用することができる多くの異なったdatatypesがある
- 省略時の値はデータのために置くことができる。
- テーブルが既にそれからできなければそれを作成あれば-および間違いは生じるかもしれない。
- あるデータベースはテーブルの名前(dbo例えばie dbo.your_table_name)の一部として所有者を指定する必要がある
2.テーブルを変えなさい
テーブルが作成されたら、データがテーブルに入れることができるか、またはいかにデータが貯えられるか変えることは必要になるかもしれない。 テーブルをあるこれらの変更メカニズムが変えなさい
テーブルのyour_table_nameを加えるColumnName VARCHAR (10)ない0を変えなさい;
テーブルのyour_table_nameの低下ColumnNameを変えなさい;
テーブルのyour_table_nameの低下の基本キーを変えなさい;
コラムを加えるか、またはテーブルに事をそして加えれば同じ規則はに関しては作成しなさい適用する。 同じ宣言の選択は同じ索引のタイプおよび制限と同じように、与えることができる。
それらを名指しで参照することによってコラムを取除くことができる。
低下でそれを指定することによって索引および制限を取除くことができる。
ノートへのある事:
- 普通同じ一流の2つのコラムを有することができない(これは作成し、変わってが関連している)
- それら他の外国のキーによって参照される区域問題をある特定のコラムを取除くことを有するかもしれない
- 問題は索引が落ちるように意図されているコラムによって決まるとき起こることができる。
- 索引はテーブルに含まれているデータが変更によって課される制限を反映しなければ必ずしも加えることができない。
3.低下のテーブル
低下のテーブルのyour_table_name;
あればyour_table_nameが低下のテーブル;
テーブルを放棄することはであり、あなたが低下のテーブルを言うこと取除きたいと思うテーブルを示す容易。 テーブルまたはそれを落とす許可を持つためにそれ容易に行かないことができることを確かめなさい。 あるSQLのデータベースはそれからあればなければ取除かれればそれを取除くことを試みればがテーブルが間違いを与えないこと構文法のあれば意味が支え。 同様に取除けばそれらに依存がieの外国のキーあるテーブルそれすぐに行かないかもしれない。
4.挿入物への
通常、すべてのあなたのSQLのデータベースの技術のポイントはデータを使用することである。 データの人口を可能にする、最も一般的の挿入物の声明である多くの声明がある。 これはテーブルに意味する何を、それ挿入するデータの列を丁度する。 3つの主要な変形がある。 最初の変化はデータがに挿入されること順序を含むコラムを、指定し、他人はそれらのコラムに入るデータを指定する。
your_table_name (first_column_name、another_column_name、への挿入物…. )
価値(first_value、second_value、…. )
挿入されるべきデータベースの内で既に含まれているデータを示すことによってデータを隔離するもう一つの方法は行う。 これは後で定義されるように正常な選り抜き声明を使用する:
your_table_name (col_name1、col_name2、への挿入物…. ) 選り抜き…
最終的な方法は同輩の割り当てを使用して別の価値に変わる必要がある各コラムの価値を置く声明を使用することである。 私はこの方法を使用することを推薦しない。
ノートへの事:
- あるSQLのデータベースは1つの声明の実行の多数の列の挿入を可能にする。
- データを挿入することは依存、点検によって制御され、データがこれらの点検をそして失敗すれば関係は間違い生じ。
- データがコラムのタイプによって定義されるタイプにあることを確かめなさい。
- すべてのコラムが住まれる必ずしも必要がない
- データの形態を処理できる多くの機能がある。
- データは正しいデータタイプ- `23の′が23と別様に解釈されるかもしれないように事に変えることができるフォーマットにある必要がある
- データ内の逆にされたコンマは挿入問題を示すことができ、これを扱うことができる機能がある。
- 信頼できない源(ieのユーザー)から来るデータを常に認可しなさい
- オートインクリメントまたはアイデンティティ分野が指定されなければテーブルの高い値に一般に履行を怠り、1つを加える。
- 行先と同じではないコラムから選んでいたらデータベースで転換機能がまた必要がある場合もあることに注目しなさい使用される。
- コラムは別の順序でデスティネーションテーブルで-指定されるまたすべての必要性のようではないより選ぶことができる。
- データは挿入される前の入力から目的のためのsqlで固有機能を使用して、変えることができる。
- 一般にテーブルに価値を挿入するのに変数を使用できる。
5.更新
更新のyour_table_nameの 一定のfirst_column = value1、second_column = value2、…. criteriaExists一方、
データ列は不正確または変更される必要がある情報を含むことができる。 SQLが与えるメカニズムは更新の声明である。 通常これは1つのテーブルで他のテーブルが規準のために使用されてもだけ、データを変更することを含む。 意志の更新の上でyour_table_nameと呼ばれるテーブルは特定の規準があるvalue2に「value1」およびsecond_columnと等しい最初のカラムの価値を割り当て、(ところでの下で詳しく説明される)。 規準がなければあらゆる列は更新済である。
ノートへの事:
- 限界はもたらされるある特定の列番号だけそう適用することができる
- 他のテーブルはでところに条件結合することができる
- それは別名へ一般によい考え更新の声明のテーブルではない。
- 価値は固定でなくてもよろしくないし、現在か異なったコラムまたは定数の処理を示すことができる。
- すべてのコラムが更新によってもたらされる必要がない。
6.削除
your_table_nameからの削除criteriaExists
テーブルから列を取除くことは削除の声明を使用して達成される。 これはであり識別してテーブルおよび規準を列がおよび会うべきである簡単上でに類似した声明を使用してそれから削除したいと思うことを指定する。 規準は後で説明される。
ノートへの事:
- 限界は応用である場合もあり最大列番号を取除かれるべき指定する
- 削除は問題を同じテーブル内の他の列を示すことを有することができるそのような利用されることを必要とし、一時表は。
- 削除は普通(別のものが規準の為につながってもだけ) 1つのテーブルを一度にもたらすことができる
- 削除は他のテーブルと外国の主依存を頼ったら取除けば問題を有することができる。
7.選り抜き
正常な選り抜き声明は次に類似しているようである
選り抜き fc、t1.second_columnとdefinition_for_First_column、…. t1としてtableNameから criteria_exists
identifysをデータコラムを渡って表示されるために単に選びなさい。 条件ところそれがテーブルだったようにだけまたはからの(を使用して問い合わせ)またはのの一部として(1つのコラムを1の列戻したら)コラム定義の一部として埋め込まれた問い合わせを(問い合わせを)代わりをしなさい有し、これが問い合わせで複数回現われるかもしれないことに注目しなさい(一組の規準を証明するか、または反証するそれを使用して)
ノートへの事:
- 多くの場合間違いはそれぞれ間に1つのデータ定義がないので行われる(最後を除く)
- あるデータベースに256か1024年のコラムの限界がある
- 選り抜き後明瞭なキーワードは独特な列だけを与えた(全列は独特でなければならない)
- グループは声明の終わりに表示することができるものが選り抜きでもたらすことができる
- コラムはテーブルから定数である場合もあるあるならない
- コラムはまた定数間の数学を表すことができる
- コラムは機能によって渡すことができる
- それは同じ名前の多数のコラムを持つ好ましい習慣ではない
- コラムはそれに名前を与えるのに単語の使用によってコラム定義ie (field1としてまたはtablename.t2 xxxをすることによるtableName.t1)が第2例として2つのコラムを作成するfield1 (第1例)およびxxxを呼んだ後後スペースaliasedできた
- フィールド名がそのテーブルかsubqueryに独特ならtablenameが必ずしも分野に演説するのに使用される必要はない
- そこにデータベースによって必ずしもaをからのまたはところで規準必要としない
8.から
table_nameから
から(subquery)
これは普通声明がテーブルに関して情報かデータセットを要求するところで見られる。 第一審ではただあなたが埋め込まれた問い合わせから選ぶことができる高度のシナリオである特定のテーブルに関してこれを、使用したいと思う場合もある。 これは最も簡単のの中にある-テーブルが、眺めあるから列およびコラムがところに)がある後基本的にテーブルのようにまたは眺め(ie現われる何かすべてが
ノートへの事:
- 定義からのに多数のテーブルまたはsubqueriesがのどれある場合もある
- t1はそれ参照したそのテーブルを参照されたことをt1がどこにでも意味するのでテーブルかsubqueriesはtable_nameからの所定の名前ieである場合もある
- 同じテーブルかsubqueryは含まれた多数の時である場合もあり、それぞれは独自に扱われる
- 節からのの一部としてリストされているすべてはそこにこれらのデータセットのそれぞれの間で結合していると同時に(とりわけ演説しなくても)問い合わせに影響を与える。
9.一方、
通常データベースのデータのあらゆる部分を見たいと思わない。 、戻る規準に基づいてものが制限することはの全ポイントところにキーワードである。
声明が英国の等量のように読んだところ要するに。 各列-データベース本当この声明のリターンを適用することをそうそして表示列頼んだり、する-のために他ではことそのような物。 声明がこの簡素化の下で沸くところであらゆるまたは声明持つか、そして複雑な論理を使用できるが。
例のような:
ところ t1.currency = 「AUD」
t1.field1 > t2.field3ところ
(t1.field1 t2.field3) =ところ(t2.field2 * t2.field7)
ところyour_table_name.firstName = 「アンドリュー」かyour_table_name.firstName = 「Becky」
your_table_nameところ。性= 「男性」および18と25間のyour_table_name.age
これらの声明を読むことができれば意味を成すようである。 第1ある特定の分野がもう1つより大きいどこにだけだけかオーストラリアドルにある第2列に示す価値を戻し。 これらの声明のうちのどれかが調整するために列を戻すために評価しなければならない。
ノートへの事:
- 調整するために評価するのにまたはで偽ところで条件-のような印> >= < <=の/\使用することができる多くの機能がある! =で() ( ) %と多くの間で使用することができ、-意味する、なぜなら彼らが評価された後本当か偽を与えることができる働かせる声明常にある意味では使用されるもの条件が調べるところに不確実ならそれらがになら。
- あるデータベースは条件および他がところで彼等ののテーブルを結合する。
- 決して本当ieを1戻さない声明を持っていることは可能である! = 1つは1つが決して1と等しくない行っているので偽常にである(ない同輩のためのあるデータベースの使用<>)
- 潜水艦の問い合わせは特定の値がその補助的な問い合わせの内にするか、またはないかどうか確認するために戻すことができる
- 間違いは第1特性である第2価値であるので同じタイプie 「1」多くのデータベースの1に等しくないではない価値を比較することを試みれば生じるかもしれ、
- 条件がのBOMDAS ieブラケットを使用して普通どこに評価されるか境界を足し算や引き算する増加しなさい。
- 声明が使用するかもしれない一方、本当および偽あるデータベースの数-偽ieとして扱われるひねりは= 0および本当である他のどの数もかもしれない
- 条件付き論理が条件- ieのiif --を評価するのに場合声明使用され、
結論:
これらの声明を理解することは重要である。 この序文書によってカバーされなかった機微および多くのニュアンスがある。 より多くの深さで検査される1つ以上の細部がほしいと思ったら私に連絡すればあなたの心配に演説している私は別のポストを書く。
SQLは可能性および使用は驚くばかりであることを最初にそれを学んで、この頃は私がいつ考えるか私が憎んだ何かだった。
このポストを好んだら次コメントしなさい、友人とまたは社会的なネットワークでそれを共有し、私のRSSの供給を予約購読しなさい
%DIGG%





































Sysadminとして、私が使用する最も頻繁なSQL命令はそれが厳しく純粋なSQLではないがグラントである。 これは点検の奴隷の状態に密接に先行して、not-so-closely続かれるデータベース、点検のテーブルおよび修理テーブルを作成しなさい。
当然、私が9つをプログラムしているときである私が使用する物述べる。
事はある、私の仕事は私が述べた命令なしで大変である。 (…を除いて健康データベースを作成しなさい。 新しいデータベースを手動で作成することはかなり容易である。)
デーブ、
私はまたバックアップ声明があるように、それらである非常に共通作成するユーザーをである非常に一般に使用される別のもの同意する。 重要ことによって考慮するものを間のDBAの両方役割および建物の問い合わせ(プログラマー)をそこにした誰かが大きい相違であるので。 通常私はそのような物が私このポストをこれを念頭において書いたと同時にデータベースについての重要な事柄をデータにアクセスできるべきである考慮し。 私は含んでいるものにアクセスするよりもむしろデータベースの操作にもっとかかわって、人のためにそれらを、使用する方法を私が上の管理上のキーワードを書くことを考え。