SQLのレコードについてまとめてます。
SQLのレコードの検索、追加、更新、削除
SQLのレコードとは、テーブルに格納されたデータのことを指します。
SQLのレコードを検索するにはselect、追加するにはinsert、更新するにはupdate、削除するにはdeleteを使います。
以下は、SQLレコードの検索をおこなうサンプルです。where句に条件指定して、条件に合致したレコードを抽出してます。
select * from employees where emp_no < 20000 and first_name like 'A%' and gender = 'F' limit 10; +--------+------------+------------+--------------+--------+------------+ | emp_no | birth_date | first_name | last_name | gender | hire_date | +--------+------------+------------+--------------+--------+------------+ | 10006 | 1953-04-20 | Anneke | Preusig | F | 1989-06-02 | | 10059 | 1953-09-19 | Alejandro | McAlpine | F | 1991-06-26 | | 10094 | 1957-05-25 | Arumugam | Ossenbruggen | F | 1987-04-18 | | 10120 | 1960-03-26 | Armond | Fairtlough | F | 1996-07-06 | | 10145 | 1956-03-30 | Akemi | Esposito | F | 1987-08-01 | | 10154 | 1957-01-17 | Abdulah | Thibadeau | F | 1990-12-12 | | 10175 | 1960-01-11 | Aleksandar | Ananiadou | F | 1988-01-11 | | 10190 | 1964-12-11 | Arve | Fairtlough | F | 1986-06-23 | | 10206 | 1960-09-19 | Alassane | Iwayama | F | 1988-04-19 | | 10260 | 1961-07-14 | Alper | Suomi | F | 1991-04-13 | +--------+------------+------------+--------------+--------+------------+ 10 rows in set (0.05 sec)
以下は、テーブル構造を複製した空のテーブルに、レコードを追加するサンプルです。
mysql> create table employees_copy like employees; Query OK, 0 rows affected (0.04 sec) mysql> select count(*) from employees_copy; +----------+ | count(*) | +----------+ | 0 | +----------+ 1 row in set (0.00 sec) INSERT `employees_copy`( `emp_no`, `birth_date`, `first_name`, `last_name`, `gender`, `hire_date` ) VALUES ( 4, '1982-01-01', 'Siro', 'Takahashi', 'M', '2003-07-01' ), ( 5, '1979-08-12', 'Yuji', 'Satoh', 'M', '2003-04-05' ), ( 6, '1981-12-05', 'Kyoko', 'Shimada', 'F', '2005-09-01' ), ( 7, '1975-03-15', 'Yuri', 'Ooishi', 'F', '2004-04-15' ); Query OK, 4 rows affected (0.10 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> select * from employees_copy; +--------+------------+------------+-----------+--------+------------+ | emp_no | birth_date | first_name | last_name | gender | hire_date | +--------+------------+------------+-----------+--------+------------+ | 4 | 1982-01-01 | Siro | Takahashi | M | 2003-07-01 | | 5 | 1979-08-12 | Yuji | Satoh | M | 2003-04-05 | | 6 | 1981-12-05 | Kyoko | Shimada | F | 2005-09-01 | | 7 | 1975-03-15 | Yuri | Ooishi | F | 2004-04-15 | +--------+------------+------------+-----------+--------+------------+ 4 rows in set (0.00 sec)
【関連記事】
▶SQLクエリのサンプルコード集 テーブル生成、select、insertなど
以下は、対象レコードを更新するサンプルです。
UPDATE table1 SET price=498 WHERE pid=1020190830;
【関連記事】
▶MySQLのUPDATEの基本とデータベースに格納された値を効率よく変更する方法
以下は、レコードを削除するサンプルです。where句に削除条件を記述することができます。
DELETE FROM `employees_copy` WHERE emp_no > 20000
【関連記事】
▶MySQL deleteのサンプルコード集 複数テーブルの削除やエイリアス制限とは | 「ポテパンスタイル」
SQLでレコード数をカウントするには、count()
レコード数をカウントするには、select文でcount()関数を使用します。以下は、group byでグルーピングしたレコードのグループごとの件数を抽出するサンプルです。
SELECT title, count(*) FROM titles WHERE to_date="9999-01-01" group by title; +--------------------+----------+ | title | count(*) | +--------------------+----------+ | Senior Engineer | 85939 | | Staff | 25526 | | Senior Staff | 82024 | | Engineer | 30983 | | Assistant Engineer | 3588 | | Technique Leader | 12055 | | Manager | 9 | +--------------------+----------+ 7 rows in set (1.08 sec)
まとめ
- SQLのレコードとは、テーブルに格納されたデータそのものを指す。
- レコードの操作は、select、insert、update、deleteでおこなう。
- レコード数のカウントはselect文にcount()関数を組み合わせる。