SQLとは何かまた、SQLクエリの基本操作について解説していきます。
MySQLを使う前提で解説していきますが、SQLは基本的に他のRDB(リレーショナルデータベース)でもそのまま使うことができます。
MySQLのインストール方法については、以下の記事で解説しています。
1.SQLとは何か?
SQL(Structured Query Language)は、データベースでの情報管理と操作に不可欠なプログラミング言語です。SQLのデータベースでの主要な役割を簡単に説明します。
データの操作
SQLを使用して、データベース内の情報を効果的に操作できます。これにはデータの検索、挿入、更新、削除などが含まれます。例えば、特定の条件を満たすデータを抽出するためのクエリを作成したり、新しいデータをデータベースに追加したりすることができます。
データの抽出と表示
SQLを使用してデータベースから情報を取得し、適切な形式で表示できます。これにより、データベース内の情報をユーザーやアプリケーションに提供することができます。SELECT文を使用してデータの抽出と表示を行います。
データベースの設計と管理
SQLを使用してデータベースの設計、作成、変更、および管理が行えます。データベースのテーブル、関係、インデックス、制約などを定義し、データの整合性と効率性を確保します。
データの整合性とセキュリティ
SQLはデータベース内のデータの整合性を維持し、セキュリティを確保するためのツールとしても重要です。データベースアクセス権の管理、トランザクションの制御、データベース内の異常なデータの検出などに使用されます。
データ分析とレポート
SQLを使用してデータベース内の情報を分析し、レポートを生成できます。集計関数やグループ化、結合などを使用して、データから価値ある情報を抽出し、ビジネスの意思決定をサポートします。
総合的に、SQLはデータベースを効率的に管理し、データの利用価値を最大化するための強力なツールであり、データ駆動型のアプリケーションやビジネスに不可欠な要素です。
2.CRUDの基本操作
CRUD(Create、Read、Update、Delete)の基本操作であるINSERT、SELECT、UPDATE、DELETE文の使い方を簡単に紹介します。
まず2つのテーブル(books, book_sales)を作成致します。
CREATE TABLE books ( id bigint UNSIGNED NOT NULL, title varchar(60) NOT NULL, author varchar(20) NOT NULL, price varchar(5) NOT NULL, published_date char(8) NULL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE book_sales ( id bigint UNSIGNED NOT NULL, book_id bigint NOT NULL, sold_date char(8) NOT NULL, sold_number int NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
テーブル作成について、動画でも解説しています。
1. INSERT文(データの挿入)
INSERT文は、データベースに新しいデータを挿入するために使用されます。以下は、簡単な例です。
-- 新しいbooksの挿入 INSERT INTO books ( id, title, author, price, published_date ) VALUES (1, 'bookA','authorA','1000','20201124'), (2, 'bookB','authorB','1500','20220320'); -- 新しいbook_salesの挿入 INSERT INTO book_sales ( id, book_id, sold_date, sold_number ) VALUES (1, 1,'20201201','1'), (2, 1,'20201202','2'), (3, 2,'20220401','1'), (4, 2,'20220430','2'), (5, 2,'20220501','1');
この例では、booksというテーブルに新しい本のデータを挿入して、book_salesに本の売り上げ情報を挿入しています。INSERT INTOキーワードを使用し、テーブル名と挿入するカラムを指定し、VALUES句を使用して挿入するデータを指定します。
2. SELECT文(データの取得)
SELECT文は、データベースからデータを取得するために使用されます。以下は例です。
-- booksテーブルから特定の情報を取得 SELECT title, author, price FROM books WHERE author = ‘authorA’;
この例では、booksテーブルからauthorが、’authorA’の本のtitle, author, priceを取得しています。SELECTキーワードで取得するカラムを指定し、FROMキーワードでデータの取得元テーブルを指定し、WHERE句でデータのフィルタリング条件を指定します。
3. UPDATE文(データの更新)
UPDATE文は、データベース内の既存のデータを更新するために使用されます。以下は例です。
-- booksデータの更新 UPDATE books SET author="author B", price=2000 WHERE title = "bookB";
この例では、booksテーブル内でtitleが’bookB’の本のauthorとpriceを新しい値に更新しています。UPDATEキーワードで更新対象のテーブルを指定し、SET句で更新するカラムと新しい値を指定し、WHERE句で更新するデータの条件を指定します。
4. DELETE文(データの削除)
DELETE文は、データベースからデータを削除するために使用されます。以下は例です。
-- 特定のbooksデータの削除 DELETE FROM book_sales WHERE sold_date = "20220501";
この例では、book_sales テーブルから、sold_dateが、’20220501’の本の売上データを削除しています。DELETE FROMキーワードで削除対象のテーブルを指定し、WHERE句で削除するデータの条件を指定します。
これらのSQL文を適切に使用することで、データベースの情報を追加、取得、更新、削除することができます。データベースアプリケーションを開発する際に、これらの基本的な操作は重要になります。
3.データの絞り込みとソート
データの絞り込みとソートに関するSQLの基本的な概念と具体例を簡単に紹介します。
WHERE句(データの絞り込み)
WHERE句は、データベースから特定の条件を満たす行を抽出するために使用されます。以下は、WHERE句を使った具体例です。
例: booksテーブルからpriceが1500以下のデータを抽出する
SELECT * FROM books WHERE price < 1500;
例: book_salesテーブルからsold_number (数量)が1のデータを抽出する
SELECT * FROM book_sales WHERE sold_number = 1;
LIMIT句を使って結果セットを制限
LIMIT句は、取得する行数を制限するために使用されます。これは、大量のデータから一部のデータを取得する場合に便利です。
例: book_salesテーブルから最初の3件の売り上げデータを取得する
SELECT * FROM book_sales LIMIT 3;
LIKE演算子を使用した文字列の検索
LIKE演算子は、文字列パターンに基づいてデータを検索するために使用されます。%(パーセント記号)は任意の文字列を表し、_(アンダースコア)は任意の一文字を表します。
例: booksテーブルから、titleに”SQL”で始まる本のデータを検索する
SELECT * FROM books WHERE title LIKE "SQL%";
例: booksテーブルから、titleに”SQL”と”intermediate”が含まれる本のデータを検索する
SELECT * FROM books WHERE title LIKE '%SQL%intermediate%';
2つ目の例では、”SQL”の次に、”intermediate”の順でキーワードが含まれる本を検索します。
これらのSQLの要素を組み合わせることで、データベースからキーワード検索機能をアプリに実装することができます。
ORDER BY句(データのソート)
ORDER BY句は、データベースから取得された結果を指定したカラムに基づいて昇順または降順でソートするために使用されます。以下は具体例です。
例: booksテーブルからpublishedDate(別名: Alias)でソートした結果を取得する
SELECT author, title, price, published_date AS publishedDate FROM books ORDER BY publishedDate;
例: booksテーブルからpriceの降順でソートした結果を取得する
SELECT author, title, price, published_date FROM books ORDER BY price DESC;
アプリ開発において、検索結果の一覧などの機能を実装する際に、ソート機能は必須と言え、ORDER BYを使うことで実現することができます。
SQLをもっと詳しく学習したい人のために、オンラインコースを用意致しました。コースの概要については以下の記事で紹介しています。