1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MySQLの操作

Posted at

はじめに

MySQLの学習中で起動からテーブル作成やカラムの追加などのメモ

起動・ログイン

  • MySQLの起動
mysql.server start
  • MySQLの停止
mysql.server stop
  • ログイン
# rootユーザーでログイン
mysql -u root

# 作成したユーザーuser_nameでログインします -pでパスワードを要求する
# オプションの説明
# -u で接続するユーザー名を指定する
# -p でパスワード入力を促す
mysql -u user_name -p
  • ログアウト
exit
  • ログイン中のユーザーを表示
SELECT user();

ユーザーの作成・削除・権限付与

  • ユーザーの作成
# 名前とホストの指定 下記の場合はuser_nameというユーザーとホスト先をlocalhostとしている
CREATE USER 'user_name'@'localhost';

# パスワード設定・変更
ALTER USER 'user_name'@'localhost' IDENTIFIED BY 'user_password';

# ユーザ作成&パスワード設定
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'your_password';

# ユーザー名、host名、パスワードを設定する際はシングルクォート''を忘れないように!
  • ユーザーの確認
SELECT  host, user FROM mysql.user;
  • ユーザーの削除
# user_nameという名前のユーザーを削除 host先の指定も忘れずに!
DROP USER 'user_name'@'localhost';
  • ユーザーの権限確認
SHOW GRANTS FOR 'user_name'@'localhost';
  • ユーザーの権限の付与
# 権限:(SELECT,INSERT,UPDATE,ALL,PRIVILEGESなど)
# データベース.テーブル:(testdb.*やtestdb.testtableなど)
# *.*とすることで全てのデータベースとテーブルに権限を与えることができる
GRANT 権限 ON データベース.テーブル TO 'user_name'@'localhost';

# 権限をデータベースとテーブルに対してuser_nameにフルアクセス権を付与した場合
GRANT ALL PRIVILEGES ON *.* 'user_name'@'localhost';
  • 権限のリロード
FLUSH PRIVILEGES;

データベースの作成・削除

  • データベースの作成
# test_dbというデータベースの作成
CREATE DATABASE test_db;
  • 作成したデータベース一覧を表示
SHOW DATABASES;
  • 作成したデータベースを削除
DROP DATABASE test_db;
  • データベースの指定
# test_dbというデータベースを指定
USE test_db;
  • 接続しているデータベースの確認
SELECT DATABASE();

# 接続していない場合はNULLが返ってくる

テーブルの作成・削除

  • テーブル一覧を表示
SHOW tables;
  • テーブルとカラムの作成
# "INT"型のカラム"id"と"VARCHAR(255)"型のカラム"name"と"TEXT"型のカラムintroductionのある"test_samples"テーブルを作成
# INT型:数字が保持できる VARCHR(M):最大M文字の文字列が保持できる
CREATE TABLE test_samples (id INT, name VARCHAR(255), introduction TEXT);

# ちなみにテーブルのみ作成はできなく、少なくとも1つのカラムを指定し
# そのカラムのデータ型を定義する必要がある
  • テーブルの削除
# test_samplesを削除
DROP TABLE test_samples;

# 複数のテーブルを一度に削除する場合はカンマで区切る
DROP TABLE table1, table2, table3;
  • テーブルの構造を確認
# test_samplesテーブルを使用している
# カラム一覧を表示
DESC test_samples;
# FROM句で対象となるテーブルを指定する際に使用する
SHOW columns FROM test_samples;

カラムの追加・変更

  • カラムの追加
# ALTER文はデータベースやテーブルを編集できるSQL文(カラムの追加や削除ができる)
# created_atカラムを追加
ALTER TABLE test_samples ADD (created_ad DATETIME);
  • カラムの変更
# introductionカラムをdetailカラムに変更
ALTER TABLE test_samples CHANGE introduction detail TEXT;
  • カラムのデータ型の変更
# detailカラムのデータ型をTEXTからvarcarに変更
ALTER TABLE test_samples MODIFY detail VARCAR(255);
  • MODIFYとCHANGEの違い
操作 MODIFY CHANGE
カラム名の変更 ❌できない ✔️できる
データ型や制約の変更 ✔️できる ✔️できる
使用方法 MODIFY カラム名 データ型 CHANGE 現在のカラム名 新しいカラム名 データ型
  • カラムの削除
# deteilカラムを削除
ALTER TABLE test_samples DROP deteil;

データの挿入・削除

  • データの挿入
INSERT INTO test_samples (name, introduction)
VALUES ('佐藤', '面白い'), ('山田', 'イケメン'),('白石', 'かわいい');
  • データの削除
# 佐藤のレコードを削除
DELETE FROM test_samples WHERE name = '佐藤';

インポート・エクスポート

  • インポート
# インポートしたい.sqlファイルが保存されているディレクトリに移動
cd /path/sample/test/

# mysqlにログインしている場合は下記のコマンドは使えないため注意
# mysqlコマンドを使用してsqlファイルの内容をデータベースに反映
mysql -u root -p test_db < test.sql

# mysqlにログインしている際にインポートする方法
# パスを指定してSOURCEコマンドでsqlファイルをインポート
SOURCE /path/sample/test/test.sql;
  • エクスポート
# ターミナルで作成したテーブルをtest_dbのデータベースにtest.sqlファイルにエクスポート
# mysqlにログインしている場合はmysqldumpコマンドは使えないため注意!

# mysqldumpコマンド
mysqldump -u root -p test_db > test.sql

# mysqldumpを使うメリット
# ・バックアップ、移行、複製に使える

まとめ

以上、MySQLを操作する際の一連の流れでした!
その他、追加することなどあれば随時更新していきたいと思います。

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?