皆さん、こんにちは。私は SQL の基本的な知識と SQL クエリについて少し知っています。(主に SQL クエリに関して)学習できていない問題がいくつかあります。
私が理解している基本的な知識は以下の通りです:
SELECT、FROM、WHERE、GROUP BY、ORDER BY、LIMIT (部分集計関数、非集計関数。
ユニオンクエリとジョインクエリの基本的な理解 (ユニオン、ユニオン) all、join、left join、right join など)
SQL の実行シーケンスを少し理解する
最も複雑な質問は次のとおりです:
複雑なクエリの簡略化など、インターネット上でいくつか参照したこともあります。 . SQL は単純な SQL を積み重ねて構成されているように見えますが、どのように書き始めたらよいかわかりません。
関連する記事や書籍はありますか?送信してください。ありがとうございます
単一のテーブルのクエリであれば、問題なく記述できます
複数のテーブルの複雑なクエリの場合、場合によっては記述が困難になることがあります
実際、それはそれ以上のことではないことも私は知っています。結合クエリ、結合クエリ、サブクエリ、さらに関連する SQL の使用、集計関数、非集計関数、GROUP BY などを使用します。しかし、複雑なビジネス ロジックでは、GROUP BY をいつ使用するのか、いつ使用するのかがよくわかりません。結合クエリ
結合クエリ: 整合性の度合いに応じてデータを複数のテーブルに分割するため、取得するデータが複数のテーブルに分散している場合は結合する必要があります。最初のテーブルを大きなテーブルに
について少し理解できたようです、モデレーターありがとうございます。
他の友達、アドバイスをください。
私はよくフォーラムにアクセスしてレベルが上がります。ゆっくり?
例:
image_tb (画像) に挿入します。 ,link)
select CONCAT(COALESCE((SELECT MAX(ID) + 1 FROM image_tb),1 ), '.jpeg'),'".$link."'
from image_tb
これは判明しました
別の例は
です。
SELECT * from
(SELECT @rn:=if(@pv=source, @rn+1, 1) as rId,
'a' t_name,id,title, @pv:=source,description ,date,fullindex
FROM table1 a1
JOIN (SELECT @pv:=0, @rId:=0 )tmp
WHERE MATCH (fullindex) AGAINST ('+bool' IN BOOLEAN MODE)
ORDER BY source, date)a
WHERE a.rId
なぜ @ if があるのか、まだ理解できません。
マニュアルを読むのが最善です
@:
http://dev.mysql.com/doc/refman/5.0/en/user-variables.html
if:
http://dev.mysql .com/doc/refman/5.0/en/control-flow-functions.html
これらの基本的なものは理解するのが簡単ですが、それは時間の問題であり、多くの複雑なものはコンサルティングのプロセスでゆっくりと蓄積するしかありません退役軍人。
例:
image_tb (images,link) に挿入
select CONCAT(COALESCE((SELECT MAX(ID) + 1 FROM image_tb),1), '.jpeg'),'".$link."'
from image_tb
これは判明しました
別の例は、
SELECT * from
(SELECT @rn:=if(@pv=source, @rn+1, 1) as rId,
'a' t_name ,id ,title, @pv:=source,description,date,fullindex
FROM table1 a1
JOIN (SELECT @pv:=0, @rId:=0)tmp
WHERE MATCH (fullindex) AGAINST ('+bool' IN) BOOLEAN MODE )
ORDER BY source, date)a
WHERE a.rId <=5;
なぜ @ if があるのかはまだわかりません。
より多くのプロジェクトを練習すると、プロジェクトを実行する際にニーズに遭遇したときに深く理解できるようになります...
マニュアルを読むのが最善です
@:
http://dev.mysql.com/doc/refman/5.0/en/user-variables.html
if:
http://dev.mysql.com / doc/refman/5.0/en/control-flow-functions.html
英語マニュアル、ゆっくりお読みください。
基本的な問題に遭遇した場合は、より詳しい情報を探す方法を学ぶ必要があります。
問題に対処するには通常、データ管理を使用します。クエリが多すぎると、サーバーの応答が遅くなります。
例:
管理者テーブル ID、ユーザー名、パスワード、グループ ID
管理グループ テーブル ID、グループ名、権限
... 通常はインデックス テーブルを構築する必要があります
インデックス管理者 ID、管理グループ ID
この中でそれを使用する過程で、クエリ量が大幅に削減されます
時間計算量の観点からは、1 乗を引くことができます
「データベースの原理とアプリケーションのチュートリアル」という良い本があります。データベース操作。
オープンソース プロジェクトをいくつか見つけるのも良いでしょう