MySQL 高度な SQL ステートメント kgc を使用します。 テーブルlocation(Region char(20),store_name char(20))を作成します。 場所の値に挿入します(「East」、「Boston」)。 場所の値に挿入します(「East」、「New York」)。 場所の値に挿入します(「西」、「ロサンゼルス」)。 場所の値に挿入します( 'west'、 'Houston'); Store_Infoテーブルを作成します(Store_Name char(20),sales int(10),Date char(10)); Store_Info に値('ロサンゼルス'、'1500'、'2020-12-05')を挿入します。 Store_Info に値('Houston'、'250'、'2020-12-07')を挿入します。 Store_Info に値('ロサンゼルス'、'300'、'2020-12-08')を挿入します。 Store_Info に値('Boston'、'700'、'2020-12-08')を挿入します。 選択 ---- SELECT ---- テーブル内の 1 つ以上のフィールドのすべてのデータを表示します。構文: SELECT "フィールド" FROM "テーブル名"; Store_Info から Store_Name を選択します。 明確な ---- DISTINCT ---- 重複データを表示しません 構文: SELECT DISTINCT "フィールド" FROM "テーブル名"; Store_Info から Store_Name を DISTINCT で選択します。 どこ ---- WHERE ---- 条件付きクエリ構文: SELECT "フィールド" FROM "テーブル名" WHERE "条件"; Store_Info から Store_Name を選択し、Sales > 1000 を指定します。 または ---- AND OR ---- AND または構文: SELECT "フィールド" FROM "テーブル名" WHERE "条件 1" {[ANDIOR] "条件 2"}+; Store_Info から Store_Name を選択します。WHERE Sales > 1000 OR (Sales < 500 AND Sales > 200); で ---- IN ---- 既知の値のデータを表示します。構文: SELECT "フィールド" FROM "テーブル名" WHERE "フィールド" IN ('value1','value2', ...); SELECT * FROM Store_Info WHERE Store_Name IN ('ロサンゼルス','ヒューストン'); 間 ---- BETWEEN ---- 2 つの値の範囲内のデータを表示します。構文: SELECT "field" FROM "table name" WHERE "field" BETWEEN 'value 1' AND 'value 2'; Store_Info から * を選択し、日付が '2020-12-06' かつ '2020-12-10' であることを確認します。 ワイルドカード ---- ワイルドカード ---- ワイルドカードは通常、次のような場合に使用されます。 %: パーセント記号は、0 個以上の文字を表します。 _: アンダースコアは、1 つの文字を表します。 'A_Z': 'A' で始まり、任意の値の別の文字があり、'Z' で終わるすべての文字列。たとえば、「A.BZ」と「A.22」はどちらもこのパターンに一致しますが、「AKK2」は一致しません (A と Z の間には 1 文字ではなく 2 文字あるため)。 「ABC%」: 「ABC」で始まるすべての文字列。たとえば、「ABCD」と「ABCABC」はどちらもこのパターンに一致します。 '%XYZ': 'XYZ' で終わるすべての文字列。たとえば、「WXYZ」と「ZZXYZ」はどちらもこのパターンに一致します。 '%AN%': パターン 'AN' を含むすべての文字列。たとえば、「LOS ANGELES」と「SAN FRANCISCO」はどちらもこのパターンに当てはまります。 '_AN%': 2 番目の文字が 'A' で、3 番目の文字が 'N' であるすべての文字列。たとえば、「SAMN FRANCITSCO」はこのパターンに適合しますが、「LOS ANGELES」は適合しません。 ---- LIKE ---- パターンを一致させて必要なデータを検索します。構文: SELECT "field" FROM "table name" WHERE "field" LIKE {pattern}; SELECT * FROM Store_Info WHERE Store_Name like '%os%'; ---- ORDER BY ---- キーワードで並べ替え 構文: SELECT "フィールド" FROM "テーブル名" [WHERE "条件"] ORDER BY "フィールド" [ASC, DESC]; #ASC は昇順でソートされ、デフォルトのソート方法です。 #DESC は降順で並べ替えます。 SELECT Store_Name,Sales,Date FROM Store_Info ORDER BY Sales DESC; 関数 数学関数 abs(x) # x の絶対値を返します rand() # 0 から 1 までの乱数を返します mod(x,y) # x を y で割った余りを返します power(x,y) # x の y 乗を返します round(x) # x に最も近い整数を返します round(x,y) # x を小数点以下 y 桁に丸めます sqrt(x) # x の平方根を返します truncate(x,y) # 小数点以下 y 桁に切り捨てられた数 x の値を返します ceil(×) # x 以上の最小の整数を返します floor(x) # x 以下の最大の整数を返します greatest(x1,x2...) # セット内の最大値を返します least(x1,x2...) # セット内の最小値を返します SELECT abs(-1),rand(),mod(5,3),power(2,3),round(1.89); SELECT round(1.8937,3)、truncate(1.235,2)、ceil(5.2)、floor(2.1)、least(1.89,3,6.1,2.1); 集計関数集計関数: avg() #指定された列の平均値を返します count() #指定された列のNULL以外の値の数を返します min() #指定された列の最小値を返します max() #指定された列の最大値を返します sum(x) #指定された列のすべての値の合計を返します SELECT avg(Sales) FROM Store_Info; Store_Info から count(store_Name) を選択します。 SELECT count(DISTINCT store_Name) FROM Store_Info; Store_Info から max(Sales) を選択します。 Store_Info から min(sales) を選択します。 Store_Info から sum(sales) を選択します。 SELECT count(DISTINCT store_Name) FROM Store_Info; Store_Infoからcount(*)を選択します。 #count(*) にはすべての列の行数が含まれます。結果をカウントする際、NULL 列の値は無視されません。 #count(列名)には列名の行数のみが含まれます。結果をカウントする際、NULL列値を持つ行は無視されます。 文字列関数 文字列関数: trim() #指定されたフォーマットなしで値を返します concat(x,y) #指定されたパラメータxとyを文字列に連結します substr(x,y) #文字列xのy番目の位置から始まる文字列を取得します。これはsubstring()関数と同じ効果があります substr(x,y,z) #文字列xのy番目の位置から始まる長さzの文字列を取得します length(x) #文字列xの長さを返します replace(x,y,z) #文字列xの文字列yを文字列zに置き換えます upper(x) #文字列 x のすべての文字を大文字に変更します。 lower(x) #文字列 x のすべての文字を小文字に変更します。 left(x,y) #文字列 x の最初の y 文字を返します。 right(x,y) #文字列 x の最後の y 文字を返します。 repeat(x,y) #文字列 x を y 回繰り返します。 space(x) #x 個のスペースを返します。 strcmp (x,y) #x と y を比較します。返される値は -1、0、1 のいずれかになります。 reverse(x) #文字列xを逆にする SELECT concat(Region,Store_Name) FROM location WHERE Store_Name = 'Boston'; #sql_mode がオンで、PIPES_AS_CONCAT がオンの場合、「||」は OR 演算子ではなく文字列連結演算子とみなされます。これは、文字列連結関数 concat に似ています。これは、Oracle データベースで使用される方法と同じです。SELECT Region || ' ' || Store_Name FROM location WHERE Store_Name = 'Boston'; SELECT substr(Store_Name,3) FROM location WHERE Store_Name = 'Los Angeles'; SELECT substr(Store_Name,2,4) FROM location WHERE Store_Name = 'New York'; SELECT TRIM ([ [位置] [削除する文字列] FROM ] 文字列); #[位置]: 値は、LEADING (開始)、TRAILING (後続)、BOTH (開始と後続) のいずれかになります。 #[削除する文字列]: 文字列の先頭、末尾、またはその両方から削除する文字列。デフォルトはスペースです SELECT TRIM(LEADING 'Ne' FROM 'New York'); SELECT Region,length(Store_Name) FROM location; SELECT REPLACE(Region,'ast','astern')FROM location; ---- GROUP BY ---- 通常は集計関数と組み合わせて、GROUP BY に続く列のクエリ結果を要約してグループ化します。GROUP BY には原則があり、SELECT に続くすべての列のうち、集計関数を使用しない列は GROUP BY の後に表示される必要があります。 構文: SELECT "列 1", SUM ("列 2") FROM "テーブル名" GROUP BY "列 1"; SELECT Store_Name,SUM(Sales) FROM Store_Info GROUP BY Store_Name ORDER BY sales desc; ---- HAVING ---- は、GROUP BY ステートメントによって返されるレコード セットをフィルター処理するために使用され、通常は GROUP BY ステートメントと組み合わせて使用されます。HAVING ステートメントの存在により、WHERE キーワードを集計関数と組み合わせて使用できないという欠点が補われます。関数列のみが SELECT される場合、GROUP BY 句は必要ありません。 構文: SELECT "列 1", SUM ("列 2") FROM "テーブル名" GROUP BY "列 1" HAVING (関数条件); SELECT Store_Name,SUM(Sales) FROM Store_Info GROUP BY Store_Name HAVING SUM (Sales) > 1500; ---- エイリアス ---- フィールドエイリアス テーブルエイリアス 構文: SELECT "テーブルエイリアス"."フィールド1" [AS] "フィールドエイリアス" FROM "テーブル名" [AS] "テーブルエイリアス" SELECT A.Store_Name Store,SUM(A.Sales) "Total Sales" FROM Store_Info A GROUP BY A.Store_Name; ---- サブクエリ ---- テーブルを接続し、WHERE 句または HAVING 句に別の SQL ステートメントを挿入します。構文: SELECT "column1" FROM "table1" WHERE "column2" [比較演算子] #外部クエリ (SELECT "column1" FROM "table2" WHERE "条件"); #内部クエリは、=、>、<、>=、<= などの記号演算子にすることができます。また、LIKE、IN、BETWEEN などのリテラル演算子にすることもできます。 SELECT SUM(Sales) FROM Store_Info WHERE Store_Name IN (Store_Name FROM location WHERE Region = 'west' を選択) SELECT SUM(A.Sales) FROM Store_Info A WHERE A.Store_Name IN (場所 B から Store_Name を選択、B.Store_Name = A.Store_Name) 存在する ---- EXISTS ---- は、ブール値が true であるかどうかと同様に、内部クエリが結果を生成するかどうかをテストするために使用されます。結果が生成された場合、システムは外部クエリの SQL ステートメントを実行します。そうでない場合、SQL ステートメント全体で結果は生成されません。 構文: SELECT "フィールド 1" FROM "テーブル 1" WHERE EXISTS (SELECT * FROM "テーブル 2" WHERE "条件"); SELECT SUM(Sales) FROM Store_Info WHERE EXISTS (SELECT * FROM location WHERE Region = 'West'); 接続クエリロケーションテーブル Store_Info を更新し、store_name を 'washington' に設定し、sales を 300 に設定します。 Store_Info テーブル 内部結合: 2 つのテーブルで結合フィールドが等しい行のみを返します。左結合: 左テーブルのすべてのレコードと、右テーブルで結合フィールドが等しいレコードを返します。右結合: 右テーブルのすべてのレコードと、左テーブルで結合フィールドが等しいレコードを返します。SELECT * FROM location A INNER JOIN Store_Info B on A.Store_Name = B.store_Name; SELECT * FROM location A RIGHT JOIN Store_Info B on A.Store_Name = B.Store_Name ; SELECT * FROM location A,store_Info B WHERE A.Store_Name = B.Store_Name; SELECT A.Region REGION,SUM(B.Sales) SALES FROM location A,Store_Info B WHERE A.Store_Name = B.Store_Name GROUP BY REGION; ビューを作成 ---- CREATE VIEW ---- ビューは仮想テーブルまたは保存されたクエリと考えることができます。 ビューとテーブルの違いは、テーブルは実際にデータを格納するのに対し、ビューはテーブルの上に構築された構造であり、実際にはデータ自体は格納されないことです。 ユーザーがデータベースを終了したり、データベースから切断したりすると、一時テーブルは自動的に消えますが、ビューは消えません。 ビューにはデータは含まれず、その定義のみが格納されます。一般的に、ビューの目的は複雑なクエリを簡素化することです。例えば、複数のテーブルに対して結合クエリを実行し、さらに統計やソートなどの操作も実行したい場合、SQT ステートメントを記述するのは非常に面倒です。ビューを使用して複数のテーブルを結合し、ビューに対してクエリを実行すると、テーブルに対してクエリを実行するのと同じになるため、非常に便利です。 構文: CREATE VIEW "ビュー テーブル名" AS "SELECT ステートメント"; CREATE VIEW V_REGION_SALES AS SELECT A.Region REGION, SUM(B.Sales) SALES FROM location A Store_Info B を A.Store_Name = B.Store_Name に内部結合し、REGION でグループ化します。 V_REGION_SALES から * を選択します。 ビュー V_REGION_SALES を削除します。 連合 ---- UNION ---- ユニオンは、2 つの SQL ステートメントの結果をマージします。2 つの SQL ステートメントによって生成されるフィールドは、同じデータ型 UNION である必要があります。生成されるデータ値は重複せず、フィールドの順序でソートされます。構文: [SELECT ステートメント 1] UNION [SELECT ステートメント 2]; UNION ALL: 重複の有無に関係なく、結果を生成するすべてのデータ値を一覧表示します。構文: [SELECT ステートメント 1] UNION ALL [SELECT ステートメント 2]; SELECT Store_Name FROM location UNION SELECT Store_Name FROM Store_Info; SELECT Store_Name FROM location UNION ALL SELECT Store_Name FROM Store_Info; 交差点の値 ----- 交差値 ---- 2 つの SQL ステートメントの結果の交差を取得します。 SELECT A.Store_Name FROM location A INNER JOIN Store_Info B ON A.Store_Name = B.Store_Name; SELECT A.Store_Name FROM location A INNER JOIN Store_Info B USING(Store_Name); #2つのベーステーブルのうちの1つに指定された行がなく、もう1つのテーブルに重複した行があり、実際に交差がある場合は、SELECT A.Store_Name FROMを使用します。 (SELECT Store_Name FROM location UNION ALL SELECT Store_Name FROM store_Info) A GROUP BY A.Store_Name HAVING COUNT(*) > 1; #重複のない 2 つの SQL ステートメントの結果の共通部分を取得します SELECT A.Store_Name FRONM (SELECT B.Store_Name FROM location B INNER JOIN Store_Info C ON B.Store_Name = C.store_Name) A GROUP BY A.Store_Name; SELECT DISTINCT A.Store_Name FROM location A INNER JOIN Store_Info B USING(Store_Name); SELECT DISTIMCT Store_Name FROM location WHERE (Store_Name) IN (SELECT Store_Name FROM Store_Info); SELECT DISTINCT A.Store_Name FROM location A LEFT JOIN Store_Info B USING(Store_Name) WHERE B.Store_Name IS NOT NULL; 交差値なし ---- 交差値なし ---- 最初の SQL ステートメントの結果を表示します。2 番目の SQL ステートメントの結果との交差はなく、重複もありません。 SELECT DISTINCT Store_Name FROM location WHERE (Store_Name) NOT IN (SELECT Store_Name FROM Store_Info); SELECT DISTINCT A.Store_Name FROM location A LEFT JOIN Store_Info B USING(Store_Name) WHERE B.Store_Name IS NULL; 場合 ---- CASE ---- は、SQL で IF-THEN-ELSE ロジックに使用されるキーワード構文です。 SELECT CASE ("フィールド名") WHEN "条件 1" THEN "結果 1" WHEN "条件 2" THEN "結果 2" ... [ELSE "結果 N"] 終わり FROM "テーブル名"; #「条件」は値または数式にすることができます。 ELSE 句は必須ではありません。 SELECT store_Name, CASE Store_Name ロサンゼルスの場合の売上 * 2 「ボストン」の場合、売上 * 1.5 ELSEセールス 終わり 「新規販売」、日付 Store_Info から; #「New Sales」は、CASE のその列に使用されるフィールド名です。 テーブルTotal_Salesを作成します(名前char(10),売上int(5)); Total_Sales VALUES ('zhangsan',10) に INSERT します。 Total_Sales VALUES ('lisi',15) に INSERT します。 Total_Sales VALUES ('wangwu',20) に INSERT します。 Total_Sales VALUES ('zhaoliu',40) に INSERT します。 Total_Sales VALUES ('sunqi',50) に挿入します。 Total_Sales VALUES ('zhouba',20) に INSERT します。 Total_Sales VALUES ('wujiu',30) に INSERT します。 1. ランキングを計算する ----ランキングを計算する----テーブルを自己結合し、結果を順番にリストし、各行の前の行数(行自体を含む)を計算します。SELECT A1.Name、A1.sales、COUNT(A2.sales) Rank FROM Total_sales A1、Total_sales A2 A1.sales < A2.sales 0R (A1.sales = A2.sales AND A1.Name = A2.Name) の場合 GROUP BY A1.Name、A1.sales ORDER BY A1.sales DESC; 例えば: A1.Name、A1.sales、count(A2.sales) から rank を選択し、Total_Sales A1、Total_Sales A2 で、A1.sales < A2.sales または (A1.sales=A2.sales かつ A1.Name=A2.Name) で group by A1.Name を選択し、order by A1.sales desc; 説明する: A1の売上フィールド値がA2の売上フィールド値より小さい場合、または2つのテーブルの売上フィールド値が等しく、名前フィールド値が等しい場合、 テーブル A1 と A2 から、A1 の名前フィールド値、A1 の売上フィールド値、および A2 の売上フィールドの null 以外の値を照会します。rank はエイリアスであり、A1 の名前フィールドをグループ化します。A1 の売上フィールドを降順で並べ替えます。 2. 中央値を計算する ---- 中央値を計算する ---- SELECT Sales Middle FROM (SELECT A1.Name,A1.Sales,COUNT(A2.Sales) Rank FROM Total_Sales A1,Total_Sales A2 A1.Sales < A2.Sales 0R (A1.Sales = A2.Sales AND A1.Name >= A2.Name) の場合 GROUP BY A1.Name、A1.Sales ORDER BY A1.Sales DESC) A3 WHERE A3.Rank = (SELECT (COUNT(*)+1) DIV 2 FROM Total_Sales); 例えば: select * from (select A1.Name,A1.sales,count(A2.sales) rank from Total_Sales A1,Total_Sales A2 where A1.sales < A2.sales OR (A1.sales=A2.sales and A1.Name=A2.Name) group by A1.Name order by A1.sales desc) A3 where A3.rank = (select (count(*)+1) DIV 2 from Total_Sales); select sales mid from (select A1.Name,A1.sales,count(A2.sales) rank from Total_Sales A1,Total_Sales A2 where A1.sales < A2.sales OR (A1.sales=A2.sales and A1.Name=A2.Name) group by A1.Name order by A1.sales desc) A3 where A3.rank = (select (count(*)+1) DIV 2 from Total_Sales); #各派生テーブルには独自のエイリアスが必要です。エイリアス A3 にはエイリアスが必要です #DIV は MySQL で商を計算する方法です 3. 累計を計算する ---- 累計を計算します ---- テーブルを自己結合し、結果を順番にリストし、各行の前に合計を計算します (行自体も含む) SELECT A1.Name, A1.Sales, SUM(A2.Sales) Sum_Total FROM Total_Sales A1, Total_Sales A2 A1.Sales < A2.Sales または (A1.Sales=A2.Sales AND A1.Name = A2.Name) GROUP BY A1.Name、A1.Sales ORDER BY A1.Sales DESC; 例えば: select A1.*,sum(A2.sales) sum_soales from Total_Sales A1,Total_Sales A2 where A1.sales < A2.sales or(A1.sales=A2.sales and A1.Name=A2.Name) group by A1.Name order by A1.sales desc; 4. 合計パーセンテージを計算する 例えば: A1.*、A1.sales/(Total_Sales から sum(sales) を選択) z_sum from Total_Sales A1、Total_Sales A2 where A1.sales < A2.sales または (A1.sales=A2.sales かつ A1.Name=A2.Name) A1.Name でグループ化; #select sum(sales) from Total_Sales は、フィールド値の合計を計算し、各行を合計で割って、各行の合計のパーセンテージを計算します。 5. 累計パーセンテージを計算する 例えば: select A1.Name,A1.sales,sum(A2.sales),sum(A2.sales)/(select sum(sales) from Total_Sales) Z from Total_Sales A1,Total_Sales A2 where A1.sales < A2.sales or (A1.sales=A2.sales and A1.Name=A2.Name) group by A1.Name order by A1.sales desc; select A1.Name,A1.sales,sum(A2.sales),TRUNCATE(sum(A2.sales)/(select sum(sales) from Total_Sales),2) ||'%' Z from Total_Sales A1,Total_Sales A2 where A1.sales < A2.sales or (A1.sales=A2.sales and A1.Name=A2.Name) group by A1.Name order by A1.sales desc; 6. nullと値なし(' ')の違い 1. 値なしの長さは0で、スペースを占有しません。一方、null値の長さはnullで、スペースを占有します。 例えば: テーブルSITE(site varchar(20))を作成します。 SITE に値 ('nanjing') を挿入します。 SITE に値 ('beijing') を挿入します。 SITE 値に挿入します(''); SITE に値 ('taijin') を挿入します。 SITE に値を挿入します(); SITE 値に挿入します(''); SITEから*を選択します。 SITEから長さ(サイト)を選択します。 site が NULL の場合、SITE から * を選択します。 site が NULL でない場合に SITE から * を選択します。 SITE から * を選択します (site = '')。 SITE から * を選択します (site <> ''); 7. 正規表現(シェル部分と同じ) マッチングパターン 説明 例 ^ テキストの先頭文字に一致します '^bd' bd で始まる文字列に一致します $ テキストの末尾文字に一致します 'qn$' qn で終わる文字列に一致します。任意の 1 文字に一致します 'st' s と t の間に 1 文字ある任意の文字列に一致します * 先行する文字の 0 個以上に一致します 'fo*t' t の後に任意の数の o が続く文字列に一致します + は、直前の文字の 1 回以上の繰り返しに一致します。 'hom+' は、ho で始まり、その後に少なくとも 1 つの m が続く文字列に一致します。文字列は、指定された文字列を含む文字列に一致します。 'clo' は、clo を含む文字列に一致します。p1|p2 は、p1 または p2 に一致します。 'bg|fg' は、bg または fg に一致します。 [...] は文字セット '[abc]' 内の任意の文字に一致します。a または b または c に一致します。 [^...] は括弧内以外の任意の文字に一致します。 '[^ab]' は a または b を含まない文字列に一致します。 {n} は前の文字列に n 回一致します。 'g{2}' は 2 つの g を含む文字列に一致します。 {n,m} は前の文字列に少なくとも n 回、最大で m 回一致します。 'f{1,3}' は f に少なくとも 1 回、最大で 3 回一致します。 構文: SELECT フィールド FROM テーブル名 WHERE フィールド REGEXP 一致パターン 例えば: Total_Salesから*を選択します。名前の正規表現は '^[n]'です。 Total_Salesから*を選択します。名前の正規表現は '[n]'です。 Total_Sales から * を選択します (名前の正規表現は 'Ho|Bo')。 8. ストアド プロシージャ (シェル関数に類似、コードの再利用) ストアド プロシージャは、特定の機能を実行するための一連の SQL ステートメントです。 ストアド プロシージャを使用する場合、一般的なタスクや複雑なタスクは、SQL ステートメントを使用して事前に記述され、指定された名前で保存されます。このプロセスはコンパイルされ、最適化されてデータベース サーバーに保存されます。ストアド プロシージャが必要なときは、それを呼び出すだけで済みます。ストアド プロシージャは、従来の SQL よりも実行が高速で効率的です。 ストアドプロシージャの利点 文法: DELIMITER !! #ステートメントの終了シンボルをセミコロンから変更します。一時的に問題を防ぐために、これをカスタマイズできます。CREATE PROCEDURE XXX() #ストアド プロシージャを作成し、プロシージャ名をカスタマイズします。() にはパラメーターを含めることができます。BEGIN #プロシージャ本体はキーワード BEGIN で始まります。select * from xxx; #プロシージャ本体のステートメント END!! #プロシージャ本体はキーワード END で終わります。DELIMITER ; #ステートメントの終了シンボルをセミコロンに戻します。call XXX; #ストアド プロシージャを呼び出す====ストアド プロシージャを表示する==== show create procedure [データベース.]ストアド プロシージャ名; #ストアド プロシージャの詳細情報を表示します show create procedure XXX; プロシージャのステータスを表示 ['%XXX%' など] \G 例えば: 区切り文字!! プロシージャ KIND1() の作成 始める Total_Salesから*を選択します。 終わり!! 区切り文字 ; KIND1を呼び出します。 作成手順を表示 KIND1\G '%KIND1%' のような手順ステータスを表示します\G ストアド プロシージャのパラメーター: 例えば: 区切り文字!! CREATE PROCEDURE KIND2(IN people char(20)) 始める Name=people の場合、Total_Sales から * を選択します。 終わり!! 区切り文字 ; KIND2('lisi') を呼び出します。 8.1. ストアドプロシージャ内の条件文 例えば: 区切り文字!! CREATE PROCEDURE KIND7(IN num int(10)) 始める var int を宣言します。 var=num*2 を設定します。 var>=10の場合 Total_Salesを更新し、sales=sales+1を設定します。 それ以外 Total_Salesを更新し、sales=sales-1を設定します。 終了の場合; 終わり!! 区切り文字 ; コールカインド7(5); コールカインド7(4) 8.2. whileループ文 例えば: テーブル akg(id int) を作成します。 区切り文字!! プロシージャ KIND6() の作成 始める var int を宣言します。 var=0 を設定します。 var<5の間 akg values(var)に挿入します。 var=var+1 を設定します。 終了しながら; 終わり!! 区切り文字 ; KIND6を呼び出す; akg から * を選択します。 これで、MySQL の高度な SQL ステートメントに関するこの記事は終了です。MySQL の高度な SQL ステートメントに関する関連情報をさらに知りたい場合は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: js、css、htmlはブラウザのさまざまなバージョンを決定します
関連記事:初心者が学ぶ HTML タグ (4)導入された HTML タグは、必ずしも XHTML 仕...
最近のプロジェクトでは、ブレークポイントからビデオの再生を再開する機能を実装する必要がありました。こ...
この記事では、Navicatを使用してcsvデータをmysqlにインポートする方法を参考までに紹介し...
データベース MySQL バージョン 8.0.18 DBeaver.exeをダウンロードするダウンロ...
目次rc.local メソッドchkconfig メソッドrc.local メソッド1 まず自動的に...
目次最近Reactを勉強していて、今は仕事でVueを使っています。学習の過程で、両者を比較して理解を...
XHTML には似た機能を持つタグがいくつかあります。もちろん、ここでの類似性とは意味の類似性を指...
良いアイデアを見つけたので記録しました。私は以前、スクロール効果を実現するためにjQueryを使用し...
この記事では、9グリッドカット効果を実現するためのキャンバスの具体的なコードを紹介します。具体的な内...
推奨される Docker 学習教材: https://www.runoob.com/docker/d...
目次1. 数学関数2. 文字列関数3. 日付関数4. 暗号化機能主な MySQL 関数は次のように紹...
HTML では、色は 2 つの方法で表現されます。 1 つは、青の場合は blue のように色の名前...
Bツリーインデックス異なるストレージ エンジンでは、異なるストレージ構造を使用する場合もあります。た...
nginx で仮想ホスト vhost を設定すると非常に便利です。 nginx設定ファイルnginx...
この記事の例では、動的な背景を実現するためのjsの具体的なコードを参考までに共有しています。具体的な...