検索
ホームページトピックphpmysqlMySQLの基本的な使い方(2) DCL文と集計関数

MySQLの基本的な使い方(2) DCL文と集計関数

【関連する学習の推奨事項: mysql チュートリアル(ビデオ)】

DCL

DCL は比較的単純で、主にデータベースへのアクセス許可の付与または取り消し、およびデータベース トランザクションのコミットとロールバックに使用されます。

権限の付与/取り消し

権限の付与を例に挙げて、新しいデータベースを作成した後、特定のユーザーにデータベースへのアクセス権と操作権限を付与したいとします(通常は実稼働環境で、セキュリティ上の理由から、いいえ (root ユーザーを通じてデータベースを操作します)、このためには、最初に test などの特定のユーザーを作成する必要があります。一般に、DCL などの制御レベルの SQL ステートメントが実行されます。コマンドラインで、MySQL Docker コンテナに入ってデータベースに接続し、CREATE USER ステートメントで新しい test ユーザーを作成し、パスワードを test に設定します。 :

MySQLの基本的な使い方(2) DCL文と集計関数

作成が完了すると、mysql.user データ テーブルにこのユーザーが表示されます:

MySQLの基本的な使い方(2) DCL文と集計関数

##Host フィールドは % であり、test ユーザーが任意のホストから MySQL サーバーに接続できることを意味します。

または、コマンド ラインから表示します (ここでは SQL クエリ ステートメントが使用されています):

MySQLの基本的な使い方(2) DCL文と集計関数

その後、

GRANT ステートメントを実行できます。 Granttest ユーザーは test データベースに対するすべての操作権限を持っています:

MySQLの基本的な使い方(2) DCL文と集計関数

認可後、

を実行する必要があります。フラッシュ権限; 権限を更新すると、test データベースの権限リストにこのユーザーが表示されるようになります。現在のログイン状態、 test

ユーザーがログインすると、

testMySQLの基本的な使い方(2) DCL文と集計関数权限 データベースのみが表示されます。これは、他のデータベースに対する操作権限がないためです。

権限を取り消すには、root として実行するか、権限リストからこのユーザーを削除するか、コマンドラインの REVOKE

ステートメントを使用して完了する必要があります:

revoke all privideges on test.* from 'test'@'%';
flush privileges;
MySQLの基本的な使い方(2) DCL文と集計関数ここではすべての権限を操作しますが、特定の権限を指定することもできます。 :
// 授予权限
grant select on test.* to 'user1'@'localhost';  /*给予查询权限*/
grant insert on test.* to 'user1'@'localhost'; /*添加插入权限*/
grant delete on test.* to 'user1'@'localhost'; /*添加删除权限*/
grant update on test.* to 'user1'@'localhost'; /*添加权限*/

// 收回权限
revoke select on test.* from 'jack'@'localhost';
revoke insert on test.* from 'jack'@'localhost';
revoke delete on test.* from 'jack'@'localhost';
revoke update on test.* from 'jack'@'localhost';

トランザクションの送信/ロールバック データベーストランザクション(Database Transaction)とは、単一の論理的な単位として実行される一連の操作を指します。完全に実行されたか、まったく実行されなかった作業 (データベースの追加、削除、変更、およびクエリに関連する操作 (1 つまたは複数の SQL ステートメントを含む)) のいずれか。

単一の SQL ステートメントの場合、データベース システムはそれをトランザクションとして自動的に実行します。このトランザクションは

暗黙的トランザクション

と呼ばれます。

複数の SQL ステートメントをトランザクションとして手動で実行するには、

BEGIN

を使用してトランザクションを開き、COMMIT を使用してトランザクションを送信します。このトランザクションは # # と呼ばれます。 #明示的なトランザクション

。トランザクションの実行中にエラーまたは例外が発生した場合、

ROLLBACK ステートメントを使用してトランザクションをロールバックできます。 コマンド ラインでのデータベース トランザクションの操作を簡単に示します。 トランザクションは

BEGIN

ステートメントを通じて開始しますが、実行中 複数のステートメントの後、トランザクションは

COMMIT

を通じて送信されませんでした。これらの SQL ステートメントの実行をテストし、[参照] パネルに入って表示しました。新しいレコードが挿入されていないことがわかりました: MySQLの基本的な使い方(2) DCL文と集計関数

上記の SQL シーケンスの後に ROLLBACK を追加してトランザクションをロールバックしても、結果は同じになります:

BEGIN;

INSERT INTO post (`title`, `content, `created_at`) VALUES ('这是一篇测试文章2', '测试内容哈哈哈', '2020-05-26 13:00:00');
INSERT INTO post (`title`, `content, `created_at`) VALUES ('这是一篇测试文章3', '测试内容哈哈哈', '2020-05-26 13:30:00');

ROLLBACK;

そして、最後に MySQLの基本的な使い方(2) DCL文と集計関数COMMIT

ステートメントを追加すると、変更をスムーズに送信できます。

これは概要です。一般的な SQL ステートメントと phpMyAdmin の視覚的なデモンストレーションの紹介 詳細については、オンライン SQL チュートリアルと組み合わせて自分で調べる必要があります。これは、この一連のチュートリアルの焦点では​​ないため、ここでは詳しく説明しません。

集計関数

一般的な SQL クエリと操作ステートメントに加えて、SQL には、データ クエリ中に結果の簡単で便利な統計を容易にするいくつかの組み込み集計関数もあります。ここでは、countsumavgmaxmin といういくつかの一般的な関数を紹介します。

COUNT

count この関数は、クエリ結果の総数をカウントするために使用できます。この関数は通常、ページング クエリを実行するときに使用されます。結果を直接表示しやすくするために、コマンド ラインで次のように示します。

MySQLの基本的な使い方(2) DCL文と集計関数

フィールドをクエリするときに読みやすさを向上させるために、 を使用して指定できます。 as フィールド エイリアス。ここでは、post テーブルには合計 3 つのレコードがあるため、クエリ結果は 3 になります。

SUM

sum は、統計クエリ結果の特定のフィールドを合計するために使用できるため、数値タイプのフィールドにのみ使用できます。ここでは ## を使用します。 #post 新しいフィールド views がテーブルに追加され、対応する記事レコードのビュー数を保存するために使用されます。 post テーブル構造で、content フィールドの後にフィールドを追加することを選択し、[実行] をクリックします。フィールド名は views

に設定され、その型は負でない整数を表す

UNSIGNED INTMySQLの基本的な使い方(2) DCL文と集計関数 に設定され、同時にデフォルト値は ## に設定されます。 #0

. 対応する SQL ステートメントを渡すことができます プレビュー関数ビュー:

#[保存] をクリックしてこのフィールドを作成すると、テーブルに表示されます。構造:

MySQLの基本的な使い方(2) DCL文と集計関数

views

にはデフォルト値があるため、現在すべてのレコードの

views

値は 0 です: MySQLの基本的な使い方(2) DCL文と集計関数

に「編集」関数を渡して、対応するシミュレーション値に設定できます。

##次に、結果を合計します。 MySQLの基本的な使い方(2) DCL文と集計関数默认值sum

関数:

MySQLの基本的な使い方(2) DCL文と集計関数##AVG

avg は、フィールドの平均値をカウントするために使用できます。クエリ結果と

sum

同じことが数値型フィールドにも当てはまります。たとえば、すべての記事の平均ビュー数をカウントするために使用できます: MySQLの基本的な使い方(2) DCL文と集計関数

割り切れない数値の場合、平均値は小数点以下 4 桁まで正確になります。 MAX

max

は、クエリ結果の数値フィールドの最大値を取得するために使用できます。たとえば、最大数の記事情報を取得します。 MySQLの基本的な使い方(2) DCL文と集計関数

MySQL コマンド ラインのデフォルトは中国語の文字化けです。エンコード タイプを

set を通じて

utf8mb4 に設定できます。 utf8mb4; という名前を付けると、正常に動作します。 中国語と絵文字の絵文字が表示されます。

さらに、ここでは MySQLの基本的な使い方(2) DCL文と集計関数subquery

の概念も使用されており、あるクエリの結果を別のクエリの条件として使用します。ここでは、ビューの最大数をサブクエリの結果としての親 クエリをクエリ条件として使用し、対応する記事情報を取得します。

MINmax

と比較して、

min 関数は、クエリ結果の数値型フィールドの最小値を取得するために使用されます。参照番号が最も小さい記事情報を取得するには、次のようにすることができます。

概要それでは、基本的なクエリを簡単に紹介します。 MySQL データベースの操作と統計 ここで、MySQL とその操作についてはすでに基本を理解していると思います。次のチュートリアルでは、PHP で MySQL データベースに接続し、ページング、グループ化、接続クエリ、関連付け関係、インデックス設定などのより複雑な操作について、追加、削除、変更、クエリの操作を実行する方法を紹介します。とアプリケーションについては、後続のチュートリアルで説明します。具体的な例を使って説明します。 この記事は https://xueyuanjun.com/post/21656

MySQLの基本的な使い方(2) DCL文と集計関数

その他の関連記事については、

php mysql に注目してください。 ###カラム!

以上がMySQLの基本的な使い方(2) DCL文と集計関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はxueyuanjunで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター