一般的な学習の基本的なステートメントのmysql

一般的なSQL文

クエリ:

表WHEREフィルタ基準の列名(または*すべての列を示します)を選択します。

テーブル名FROM:名前が示す、このテーブルからテーブル名で指定され、
WHEREフィルタ基準:時間「フィルタ基準を満たすための」手段;
SELECT列名:これらのレコードを選択する手段と、指定した列名を示し;

学生の名前テーブルtb_stu_math_scoreスコアのうち95分以上である;
SELECT名> = 95 WHEREスコアtb_stu_math_score FROM。

学生の名前未満60点、得点tb_stu_math_score表から選択
SELECT名、tb_stu_math_score FROM WHERE番号<60のスコアを。

スコアテーブルからすべての情報の100学生を選択Tb_stu_math_score(ノート後ろSELECT 、シンボル、すべてのフィールドを示す)
選択
100 WHEREスコア= tb_stu_math_score FROM。

高度な使用法:
テーブルtb_rider場合は、二つのテーブルtb_order

オペレータIN
IN ID(2、4、レコード 7) IDフィールドの値は、これらの値のうち2,4,7-をスクリーニングすることを意味し、
SELECT名、レベル、level_city(2 ,. 4 IN WHERE ID tb_rider FROM、 7)。

関係演算子ANDとOR

クエリは、2017年2月1日の間に2017年6月1日までのデータのテーブル作成時間をtb_rider``。
created_at> = tb_rider SELECT * FROM "2017年2月1日午後12時00分00秒"とのcreated_at < "2017年6月1日午後12時00分00秒"。

ライダーの登録全ての情報の後(当日を含む)のクエリ(その日を含む)tb_rider``2017-02-01前、または2017年6月1日。
created_at <= tb_rider SELECT * FROM "2017年2月1日午後12時00分00秒" ORのcreated_at> = "2017年6月1日午後12時00分00秒"。

クエリ(日2017年6月1日は含みません)2017年6月1日に(2017年2月1日の日を含む)tb_rider``2017-02-01金メダル中に登録し、現在のレベルがライダーすべての情報、
SELECT * FROM tb_rider
> =「2017年2月1日午前0時00分00秒」WHEREのcreated_at
とのcreated_at <「2017年6月1日午前0時00分00秒」
とレベル= 3。

並べ替え:DESC BY ORDER:降順ASC:インクリメント

委託の作成時間によると、最近、一番上に作成されたAWBの順序を逆に、構文、ORDER BYを使用します(DESC)を降順のcreated_atフィールド値クエリをソートするためには、結果
SELECTたorder_idを、tb_order FROMのcreated_at
WHERE rider_id = 1
AND> = "grabbed_timeを0時○○分00秒2017年12月30日"
AND grabbed_time <" 2017年12月31日0時00分○○秒」
40 = order_state
のcreated_atのDESC BY ORDERと、

より複雑なシナリオ:あなたは二日にすべての貨物運送状をすべての情報2017年12月30日および2017年12月31日を照会すると仮定して、第1ライダーのIDの増分に基づいて、その後、委託の状況がショーをソート降順。
*のcreated_at SELECT> = "2017年12月30日00:00:00"のcreated_at AND < "2018年1月1日00:00:00" WHERE tb_order FROM
ORDER BYは、ASC、DESC order_stateをrider_id;
順序の優先順位は次のとおりです。場合値rider_id区別できないフィールドは、同じデータがその後rider_id値order_stateフィールドをソートされ、わずか数れた、同一の配列を有する:例えば、rider_id = 2とデータorder_state = 80、行はまだ不可能ですrider_id =前述のデータ1及びorder_state = 40。

ページング

データクエリの前に20本のライン
tb_orderからの選択のcreated_at WHERE rider_id = 1 LIMIT 20。

集計機能:COUNT、SUM、AVG

COUNT:特定の列でクエリ結果セットカウント;
SUM:クエリ結果を加算するためのフィールドと、
AVG:クエリ結果のフィールドの平均値を算出し、平均値の平均です。

####合計シークCOUNT
COUNT(名前):COUNTは、一般的な統計の総数をもたらし、例えば、合計20行がある:そのカウントはライン名= NULLについて計算されていませんこのような(、この列統計の名前を表しますしかし、ライン名= NULLがあり、その結果は、実際に)19を考え出している:
SELECT COUNT(tb_order FROM);(テーブル総tb_order:統計の単純数)
SELECT COUNT(
ここでrider_id = 1 tb_order FROM);(統計を表tb_order条件rider_id = 1合計:総満たす条件)単純な統計
tb_order FROM SELECT COUNT(名前); ( 統計tb_orderの数:に名前列対象)
SELECT COUNT(名前)tb_order FROM WHERE rider_id = 1;(統計tb_order条件rider_id = 1合計:これまでの列名)

注意事項:1.COUNTは自動的に重複排除しない;
の行カウント値に特定のクエリ結果における2.COUNT 「空」を、このレコードがカウントされていない場合。

#### SUMは求和
rider_id = 1 AND order_state = 40 tb_orderからの和(merchant_customer_distance)を選択します。

#### AVG求和
rider_id = 1 AND order_state = 40 tb_order FROM SELECT AVG(merchant_customer_distance)。

重複除外:DISTINCT

COUNT(DISTINCT名)の名称で重複除外カウント
tb_sample_1 FROM SELECT COUNT(DISTINCT名) 。

クエリデータパケット:GROUP BY構文

SELECT rider_id、rider_name、AVG(merchant_customer_distance)
tb_order FROM WHERE order_state = 40
ANDのcreated_at> = "2017年12月30日午後12時00分00秒"
ANDのcreated_at < "2017年12月31日午後12時00分00秒"
rider_id BY GROUP。

集計関数良きパートナー:HAVING構文

HAVING语法的含义类似于WHERE,之所以有HAVING函数是因为WHERE语法是不能和聚合函数一起使用的,因此只能使用HAVING作为筛选条件的语法

GROUP BY rider_id将SELECT的结果根据rider_id进行分组,分组完成后HAVING AVG(merchant_customer_distance) > 1.5语句对每一组的merchant_customer_distance字段值求取平均数,并且将平均数大于1.5的结果筛选出来,作为返回结果。

SELECT rider_id, rider_name, AVG(merchant_customer_distance)
FROM tb_order WHERE order_state = 40
AND created_at >= "2017-12-30 00:00:00"
AND created_at < "2017-12-31 00:00:00"
GROUP BY rider_id
HAVING AVG(merchant_customer_distance) > 1.5;

SQLデータ・タイプは、多くの場合、接触のいくつかの種類があります。

整数:
1:TINYINT 2つのフィールドは、レコードが有効であるかどうかを示すため、非常に小さな表すために使用される整数は、それは多くの場合、そのようなこれらのフィールドのis_deleted、IS_VALIDフィールドタイプとして使用される、2つだけの値であります及び0.1;
2:がsmallint:は整数を、整数値例えば200404401のようなより大きな点を表すことができ、整数ビットよりも若干大きくTINYINT;
3:INT:使用される整数は、表現するために使用することができます例えば10322のような大きな整数(INTは、実際にはこれよりもはるかに大きい整数の範囲を表すことができる);
4:BIGINT:非常に大きな整数を表すために使用される、そのような自動インクリメントIDとして最もテーブルは、このタイプが使用され、 10322903は、非常に大きな整数(実際にBIGINT整数の範囲はこれよりもはるかに大きい表すことができる)類似している表します。

フロート:
1:小数:小数は、緯度及び経度として、非常に正確に表すことができます。

文字列型
CHAR:固定長ストリング、
VARCHAR:可変長文字列。

Date型の
日付:日付を含む部分のみが、時間は、現在の日付「2018年1月23日」のように、含まれていない、日付を示し、
日時:表し日付、時刻と日付の部分は、現在の日付のような部分を含みます「2018-01- 23 3時01分43秒「。

おすすめ

転載: www.cnblogs.com/amysu/p/10951139.html