MySQLの基本操作


●MySQLの操作一覧
・テーブルの作成
CREATE TABLE テーブル名 (カラム名1 データ型1, カラム名2 データ型2,...)
例)

CREATE TABLE data (num int, name text, age int);

※numとnameというカラムを持ったdataというテーブルを作成

・既存のテーブルから検索
SELECT 検索対象 FROM 'テーブル名' (WHERE 対象レコードが含むデータ)
※(WHERE 対象レコードが含むデータ)は無くてもOK
例①)
テーブル内のすべてのデータを検索するとき

SELECT * FROM data

※dataというテーブルから全データを検索
※*は「全て」という意味
例②)
テーブル内の一部のデータを検索するとき

SELECT name, age FROM data wherw num=1

※dataというテーブルからnum=1を含むレコードのnameカラムとageカラムを検索
where num=1が無い場合は、全データのnameカラムとageカラムを表示

・既存のテーブルへのデータの追加1
INSERT INTO テーブル名 SET 追加内容1, 追加内容2, ...
例)

INSERT INTO data SET num=1, name="ヒカル", age=26

※dataテーブルのnumカラムに1、nameカラムにヒカル、ageカラムに26を追加
※文字列を追加するときは''(シングルクォーテーション)or""(ダブルクォーテーション)で囲む

・既存のテーブルへのデータの追加2
INSERT INTO テーブル名 VALUES (カラム1への追加内容, カラム2への追加内容, ...)
例)

INSERT INTO data VALUES (2, "ミズキ", 24)

※dataテーブルのnumカラムに2、nameカラムにミズキ、ageカラムに24を追加
※全カラムにデータを追加するときに使える方法

・既存のテーブルの内容を変更
UPDATE テーブル名 SET 変更内容1, 変更内容2, ... WHERE 対象レコードが含むデータ
例)

UPDATE data SET age=18 WHERE num=1

※dataテーブルのnum=1のレコードのageカラムを18に変更
※※WHEREを入力し忘れた場合、全レコードの内容が変更となるので注意※※

UPDATE data SET age=18

の場合、dataテーブルの全レコードのageカラムが18となってしまう。

・テーブルのデータの削除
DELETE FROM テーブル名 WHERE 対象レコードが含むデータ
例)

DELETE FROM data WHERE num=1

※dataテーブルのnumカラムが1のデータを削除
※※WHEREを入力し忘れた場合、テーブル内のデータが全て消えるので注意※※

DELETE FROM data

の場合、dataテーブル内の全データが消える。

・テーブルのデータの並び替え
DELETE FROM テーブル名 ORDER BY ソートするカラム名 指示
例)

DELETE FROM data ORDER BY age asc

※dataテーブルをageカラムが小さい順に並び替え
※ascは省略可(省略すると自動的に小さい順となる)
※大きい順に並び替えたいときは指示のところにdescと入力
※文字列を並び変えたいときは文字の種類を統一する(平仮名だけorカタカナだけ等)

・重複しているものをまとめる
SELECT DISTINCT 表示したいカラム名 FROM テーブル名
例)

SELECT DISTINCT age from data

・範囲で検索
SELECT * from テーブル名 WHERE カラム名 between 最小値 and 最大値
※以下のコードと同じ
SELECT * from テーブル名 WHERE カラム名>=最小値 and カラム名<=最大値
例)

SELECT * FROM data WHERE age 20 and 30

・特定のレコードを検索
SELECT * from テーブル名 WHERE カラム名 in (検索値1, 検索値2, ...)

以下のコードと同じ
SELECT * from テーブル名 WHERE カラム名=検索値1 or カラム名=検索値2 ...)
例)

SELECT * FROM data WHERE age in (20, 22, 24, 25)

・表示や選択するレコードの制限
~最初のデータからn個目のレコードまでを選択するとき~
SELECT * FROM テーブル名 limit n
~(n+1)個目のデータからm個目のレコードまでを選択するとき~
SELECT * FROM テーブル名 limit n, m