「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 基本的な MySQL クエリ: 包括的なガイド

基本的な MySQL クエリ: 包括的なガイド

2024 年 11 月 4 日に公開
ブラウズ:380

Basic MySQL Queries: A Comprehensive Guide

著者: ニルマルヤ モンダル

導入

MySQL は、Web アプリケーションやその他のデータ駆動型アプリケーションに使用される最も人気のあるリレーショナル データベース管理システム (RDBMS) の 1 つです。初心者であっても、MySQL スキルを磨きたいと考えている人であっても、基本的なクエリを理解することは不可欠です。このブログでは、データベース操作、テーブル操作、データ管理に使用できるいくつかの基本的な MySQL クエリについて説明します。

1. データベースの操作

データベースの作成

まず、テーブルとデータを保存するデータベースが必要です。データベースの作成は簡単です:

CREATE DATABASE my_database;

データベースを選択

データベースを作成したら、次のクエリを使用してデータベースを選択します:

USE my_database;

データベースを削除

データベースを削除する必要がある場合は、次のコマンドを使用します:

DROP DATABASE my_database;

2. テーブルの操作

テーブルの作成

テーブルはデータが保存される場所です。次のように、特定の列を含むテーブルを作成できます:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    age INT
);

テーブルを表示

選択したデータベース内のすべてのテーブルを表示するには:

SHOW TABLES;

テーブル構造の説明

テーブルの構造を知りたい場合は、次のように記述できます:

DESCRIBE users;

テーブルの変更

列を追加または変更してテーブルを変更する必要がある場合:

  • 列を追加
  ALTER TABLE users ADD phone VARCHAR(15);
  • 列を変更する
  ALTER TABLE users MODIFY age TINYINT;

ドロップテーブル

テーブルを削除するには:

DROP TABLE users;

3. データ操作

データの挿入

テーブルにデータを追加するには:

INSERT INTO users (name, email, age) VALUES ('John Doe', '[email protected]', 25);

データの選択

テーブルからデータを取得します:

SELECT name, email FROM users WHERE age > 20;

すべてのデータを選択

テーブルからすべてのデータを取得するには:

SELECT * FROM users;

データを更新

テーブル内のデータを更新するには:

UPDATE users SET age = 26 WHERE name = 'John Doe';

データの削除

テーブルからデータを削除するには:

DELETE FROM users WHERE name = 'John Doe';

4. 条件付きクエリ

WHERE 句

WHERE 句を使用して、特定の条件に基づいてレコードをフィルタリングします:

SELECT * FROM users WHERE age > 20;

AND/OR 条件

AND または OR を使用して複数の条件を結合します:

SELECT * FROM users WHERE age > 20 AND name = 'John Doe';

IN 句

値のリストに基づいてデータを選択します:

SELECT * FROM users WHERE age IN (20, 25, 30);

BETWEEN句

範囲内のデータをフィルタリング:

SELECT * FROM users WHERE age BETWEEN 20 AND 30;

LIKE句

LIKE 句を使用してパターンを検索:

SELECT * FROM users WHERE name LIKE 'J%';

は NULL です / は NULL ではありません

NULL または NOT NULL 値を含むレコードをフィルタリングします:

SELECT * FROM users WHERE email IS NULL;

5. 集計関数

カウント

行数を数える:

SELECT COUNT(*) FROM users;

列の合計を計算します:

SELECT SUM(age) FROM users;

平均

列の平均値を検索します:

SELECT AVG(age) FROM users;

最大と最小

列の最大値または最小値を検索します:

SELECT MAX(age) FROM users;
SELECT MIN(age) FROM users;

6. グループ化と並べ替え

グループ化

1 つ以上の列に基づいてデータをグループ化します:

SELECT age, COUNT(*) FROM users GROUP BY age;

持っています

グループ化されたデータのフィルター:

SELECT age, COUNT(*) FROM users GROUP BY age HAVING COUNT(*) > 1;

注文方法

データを昇順または降順に並べ替えます:

SELECT * FROM users ORDER BY age DESC;

7. 結合操作

内部結合

条件が両方とも満たされる複数のテーブルからデータをフェッチします:

SELECT users.name, orders.order_date FROM users
INNER JOIN orders ON users.id = orders.user_id;

左結合

左側のテーブルからデータを取得し、右側のテーブルから一致する行を取得します:

SELECT users.name, orders.order_date FROM users
LEFT JOIN orders ON users.id = orders.user_id;

右結合

右側のテーブルからデータを取得し、左側のテーブルから一致する行を取得します:

SELECT users.name, orders.order_date FROM users
RIGHT JOIN orders ON users.id = orders.user_id;

8. サブクエリ

WHERE のサブクエリ

サブクエリを使用して結果をフィルタリングします:

SELECT name FROM users WHERE id = (SELECT user_id FROM orders WHERE order_id = 1);

SELECT のサブクエリ

サブクエリを使用して値を計算します:

SELECT name, (SELECT COUNT(*) FROM orders WHERE users.id = orders.user_id) AS order_count
FROM users;

9. ビュー

ビューの作成

クエリに基づいて仮想テーブルを作成します:

CREATE VIEW user_orders AS
SELECT users.name, orders.order_date FROM users
INNER JOIN orders ON users.id = orders.user_id;

ドロップビュー

ビューを削除します:

DROP VIEW user_orders;

10. インデックス作成

インデックスの作成

インデックスを作成してクエリのパフォーマンスを向上させます:

CREATE INDEX idx_name ON users (name);

インデックスを削除

インデックスを削除します:

DROP INDEX idx_name ON users;

結論

これらの基本的な MySQL クエリを理解することは、リレーショナル データベースを扱う人にとって不可欠です。データの管理、クエリの最適化、データの整合性の確保のいずれを行う場合でも、これらのコマンドは MySQL スキルの基礎を形成します。これらをマスターすれば、ほとんどのデータベース関連タスクを簡単に処理できるようになります。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/nirmalyax/basic-mysql-queries-a-comprehensive-guide-5cjb?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3