ホームページ  >  記事  >  データベース  >  基本的な MySQL クエリ: 包括的なガイド

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

PHPz
PHPzオリジナル
2024-08-24 06:35:101254ブラウズ

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', 'john@example.com', 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

Delete a view:

DROP VIEW user_orders;

10. Indexing

Create Index

Improve query performance by creating an index:

CREATE INDEX idx_name ON users (name);

Drop Index

Remove an index:

DROP INDEX idx_name ON users;

Conclusion

Understanding these basic MySQL queries is essential for anyone working with relational databases. Whether you are managing data, optimizing queries, or ensuring data integrity, these commands form the foundation of your MySQL skills. By mastering them, you'll be well-equipped to handle most database-related tasks with ease.

以上が基本的な MySQL クエリ: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。