ホームページ  >  記事  >  データベース  >  mysqlで行データをクエリする方法

mysqlで行データをクエリする方法

PHPz
PHPzオリジナル
2023-04-19 14:11:583872ブラウズ

MySQL は、テーブルからデータを取得するさまざまな方法をサポートする非常に人気のあるリレーショナル データベース管理システムであり、最も一般的に使用されるのは行データのクエリです。この記事では、MySQL を使用して、基本的なクエリ、条件付きクエリ、複数テーブル クエリなどの行データをクエリする方法を紹介します。

1. 基本的なクエリ

MySQL では、最も基本的な行クエリ ステートメントは SELECT ステートメントです。その基本的な形式は次のとおりです:

SELECT column1, column2, ... FROM table_name;

ここで、column1、column2 などは取得する列名を表し、table_name は取得するテーブル名を表します。回収される。

たとえば、「students」という名前のテーブルに「名前」と「年齢」という 2 つの列のデータが含まれている場合、すべての学生の名前と年齢をクエリしたい場合は、次のように使用できます。次のステートメント:

SELECT name, age FROM students;

このステートメントを実行すると、MySQL はすべての生徒の名前と年齢を含むテーブルを返します。

2. 条件付きクエリ

基本的なクエリではテーブル内のすべての行データを取得できますが、より一般的な状況は、特定の条件を満たす行データのみを取得することです。 MySQL は、WHERE 句、LIKE 句、IN 句など、この条件付き取得を実装するためのさまざまなメソッドを提供します。

  1. WHERE 句

WHERE 句を使用すると、返される行データが満たす必要がある条件を制限できます。構文は次のとおりです。

SELECT カラム 1, カラム 2, ... FROM table_name WHERE 条件;

WHERE 条件は、行データ制限を記述する論理式であり、比較演算子、論理演算子を含めることができます。や機能など。

たとえば、20 歳以上の学生のみをクエリしたい場合は、次のステートメントを使用できます:

SELECT name, age FROM students WHERE age > 20;

このステートメントを実行すると、MySQL は 20 歳以上のすべての学生の名前と年齢を含むテーブルを返します。

    #LIKE 句
LIKE 句は、特定の文字列パターンと一致させるために使用できます。構文は次のとおりです:

SELECT カラム 1, カラム 2, ... FROM テーブル名 WHERE カラム名 LIKE pattern;

ここで、パターンはワイルドカード文字を含む文字列です。ワイルドカード文字は、任意の文字列と一致するために使用できます。文字または文字のセット。最も一般的に使用されるワイルドカード文字は % と _ で、それぞれ任意の文字と一致するか、単一の文字と一致します。

たとえば、名前が「Li」で始まる学生のみをクエリしたい場合は、次のステートメントを使用できます:

SELECT name, age FROM students WHERE name LIKE 'Li%' ;

このステートメントを実行すると、MySQL は名前が「Li」で始まるすべての生徒の名前と年齢を含むテーブルを返します。

    IN 句
IN 句を使用すると、列の値が指定された値のセットに属するかどうかを取得できます。構文は次のとおりです。

SELECT 列 1, 列 2, ... FROM テーブル名 WHERE 列名 IN (値 1, 値 2, ...);

ここで、値 1、値 2 などは、一致する値。

たとえば、名前が「Li」または「Zhang」である学生のみをクエリしたい場合は、次のステートメントを使用できます:

SELECT name, age FROM students WHERE name IN ( 'Li' , 'Zhang');

このステートメントを実行すると、MySQL は、「Li」または「Zhang」という名前のすべての生徒の名前と年齢を含むテーブルを返します。

3. マルチテーブル クエリ

実際のアプリケーションでは、通常、複数のテーブルからデータを共同で取得する必要があります。 MySQL は、INNER JOIN、LEFT JOIN、RIGHT JOIN など、この複数テーブル クエリを実装するためのさまざまなメソッドを提供します。

#INNER JOIN
  1. INNER JOIN は、最も一般的に使用される結合クエリ方法の 1 つで、2 つのテーブル間の関連付け条件に基づいて関連データを同時に取得できます。構文は次のとおりです。

SELECT カラム 1, カラム 2, ... FROM table1 INNER JOIN table2 ON 条件;

ここで、table1 と table2 は接続される 2 つのテーブルを表し、condition は接続条件。通常は両方のテーブルの一部の列です。

たとえば、「学生」と「スコア」という 2 つのテーブルがある場合、「学生」テーブルには学生の名前と年齢が含まれ、「スコア」テーブルには学生の名前と成績が含まれます。各生徒の名前、年齢、スコアについて、次のステートメントを使用できます。

SELECT students.name, students.age,得点.score FROM students INNER JOIN得点 ON students.name =得点.name;

このステートメントを実行すると、MySQL は各生徒の名前、年齢、学年を含むテーブルを返します。

LEFT JOIN
  1. LEFT JOIN も結合クエリ メソッドであり、左側のテーブルのすべての行データと右側のテーブルの修飾された行データを返すことができます。構文は次のとおりです。

SELECT カラム 1, カラム 2, ... FROM table1 LEFT JOIN table2 ON 条件;

ここで、table1 と table2 は接続される 2 つのテーブルを表し、condition は接続条件。通常は両方のテーブルの一部の列です。

たとえば、「学生」と「得点」という 2 つのテーブルがあり、すべての学生の名前、年齢、成績 (存在する場合) をクエリしたい場合は、次のステートメントを使用できます。

SELECT students.name, students.age,得点.score FROM students LEFT JOIN得点 ON students.name =得点.name;

このステートメントを実行すると、MySQL は名前、年齢、およびスコアを含むリストを返します。すべての生徒 (存在する場合) のスコアが形成されます。

  1. RIGHT JOIN

RIGHT JOIN は LEFT JOIN に似ていますが、右側のテーブルのすべての行データと条件を満たす左側のテーブル データを返します。構文は次のとおりです。

SELECT カラム 1, カラム 2, ... FROM table1 RIGHT JOIN table2 ON 条件;

ここで、table1 と table2 は接続される 2 つのテーブルを表し、condition は接続条件。通常は両方のテーブルの一部の列です。

たとえば、「students」と「scores」という 2 つのテーブルがあり、すべてのスコア レコードと、対応する生徒の名前と年齢 (存在する場合) をクエリする場合は、次のステートメントを使用できます。

SELECT students.name、students.age、scores.score FROM students RIGHT JOIN得点 ON students.name =得点.name;

このステートメントを実行すると、MySQL はすべてのスコア レコードを含むリストを返します。および対応する学生の名前と年齢(ある場合)の形式。

概要

この記事では、MySQL を使用して、基本的なクエリ、条件付きクエリ、複数テーブル クエリなどの行データをクエリする方法を紹介します。このうち、基本クエリはテーブル内のすべてのデータを取得することができ、条件クエリは指定した条件に従ってデータを取得することができ、マルチテーブルクエリは複数のテーブルのデータをまとめて取得することができます。これらの技術を使用すると、データをより迅速かつ正確に取得し、データ処理の効率と精度を向上させることができます。

以上がmysqlで行データをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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