LoginSignup
0
0

More than 3 years have passed since last update.

基本的なmysqlの操作

Last updated at Posted at 2020-04-15

久しぶりにmysqlを触ったので、メモとして残しておきます。
あくまで基本的なところですが。

mysqlの接続、終了、再起動

mysqlに接続

mysql -u root -p

-u ユーザーの指定
root rootユーザーを指定
-p パスワードを指定してログイン

mysqlの終了

quit

mysqlの再起動

service mysqld restart

操作の前に

mysqlでのコマンドは基本的に末尾に;を入れるのを忘れないようにしてください。
rubyとかに慣れてしまうとついつい忘れてしまうんですよね・・・

データベースの操作

データベースの作成

CREATE DATABASE データベース名;

例えば、「db_training」というデータベースを作成する場合
CREATE DATABASE db_training;

データベースの一覧表示

SHOW DATABASES;

image2.png
一覧の表示をするのでSHOW DATABASE;ではなくSHOW DATABASESというように複数形になります。

使用するデータベースを指定

use データベース名;

使用中のデータベースの確認

SELECT DATABASE();

こちらはmysql4.1以降らしいです。
image2.png

または

SHOW PRPCESSLIST;

image3.png

データベースを削除

DROP DATABASE データベース名;

training5-11.png

テーブルの操作

テーブルの作成

useで使用するデータベースを選択している場合

CREATE TABLE テーブル名 (
カラム名1 データ型 オプション,
カラム名2 データ型 オプション,
カラム名3 データ型 オプション
);

image1.png
この画像ではオプションは指定していません。

使用するデータベースを選択していない場合

CREATE TABLE データベース名.テーブル名 (
カラム名1 データ型 オプション,
カラム名2 データ型 オプション,
カラム名3 データ型 オプション
);

このデータベース名.テーブル名の書き方は他のテーブルの操作にも使えるみたいです。

テーブルの一覧表示

useで使用するデータベースを選択している場合

show tables;

image3.png
こちらも複数形で記述します。

使用するデータベースを選択していない場合

show tables from データベース名;

カラムの一覧表示

show columns from テーブル名;

image4.png
もしくは

DESC テーブル名;

レコードの挿入(複数行を一気に)

INSERT INTO テーブル名 VALUES
(データ1-1, データ1-2, データ1-3),
(データ2-1, データ2-2, データ2-3),
(データ3-1, データ3-2, データ3-3);

image5.png!

これ以外にも入力するフィールドを指定する方法もあるみたいです。
【参考記事】
MySQL:INSERTで複数行追加する

レコードの確認

SELECT * FROM テーブル名;

[更新前のテーブル]
image6.png

レコードを更新

UPDATE テーブル名 SET カラム名 = 更新後の値 WHERE 検索条件;

例えば、training_tableidが2のデータのNAME(katou)を更新する場合
UPDATE training_table SET NAME = "itou" WHERE ID = 2;
検索条件についてはIDでなくてもWHERE NAME = "katou"でも可能です。

[更新後のテーブル]
image8.png

レコードの削除

DELETE FROM テーブル名 WHERE 検索条件;

例えば、training_tableidが5のデータを削除する場合
DELETE FROM training_table WHERE ID = 5;

[削除後のテーブル]
training5-7.png
(ID4のNAMEが変わっているのは、もう1回UPDATEしただけなので気にしないでください)

レコードの件数

SELECT COUNT(*) FROM テーブル名;

この書き方だとNULLが含まれていても関係なくデータの件数を取得します。
他の指定の仕方はこちら↓
【参考記事】
COUNT関数 (指定したカラムの行数を取得する)

レコードの抽出

SELECT * FROM テーブル名 WHERE 検索条件;

例えば、training_tableidが3のデータを抽出する場合
SELECT * FROM training_table WHERE ID = 3;
training5-9.png

training_tableAGEが28以上のデータを抽出する場合
SELECT * FROM training_table WHERE AGE >= 28;
image9.png

テーブルの削除

DROP TABLE テーブル名;

training5-10.png

カラムの並べ替え

特定のカラムの後ろに移動させる時

ALTER table テーブル名 modify 移動させるカラム名 そのカラムのデータ型 after 移動後に前にあるカラム名

image2.png
このようなテーブルがあった時に、idをcommentの次に移動させるとします。
ALTER table training.chat modify id int(11) after comment;
image1.png
auto_incrementなどのオプションがある場合はそちらも記入しないと移動後に消されてしまいます。
その場合は、移動させるカラムのデータ型afterの間に記入してください。

先頭に移動させる時

ALTER table テーブル名 modify 移動させるカラム名 そのカラムのデータ型 FIRST;
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0