MySQLの基本的な使い方【データベース、ユーザーの作成、データ型】

この記事ではmysqlの基本的なコマンドについてまとめています。mysqlの導入に関しては色々やり方があるとおもいますので、導入はすませているていで記事をかいてます。

mysqlの起動・停止・状態確認

sudo service mysql start mysqlの軌道
sudo service mysql stop mysqlの停止
sudo service mysql restart mysqlの再起動
sudo service mysql status 起動状態の確認

データベースへの接続

いろいろオプションはあるとおもいますが、以下のやり方でデータベースに接続するようにしています。

mysql -u root -p #パスワードを聞かれる

データベースのログアウトはquit;もしくは\qもしくはexitを使います

mysql> quit;

mysqlコマンドのオプション

-u ユーザー名を指定
-P パスワードを指定
-D データベース名指定
-h ホスト名の値を指定
-e コマンドラインから直接 sql を実行

いろいろな情報を確認する

help;でmysqlのヘルプを表示することができます

mysql> help;

データベースの確認

mysql> show databases;

ユーザーの確認

mysqlに登録しているすべてのユーザーを確認します

select host, user from mysql.user;

現在mysqlにログインしているユーザーを確認します

select user();

データベース

create database db; データベースの作成
drop database db; データベースの削除
select database(); 操作対象のデータベースを確認
use db; 操作対象のデータベースを変更

ユーザー

mysqlではデータベースごとにユーザーを設定することが一般的だそうです。

ユーザーを作成するさいはpasswordを設定しますがmysqlのパスワードポリシーがあり、適当なパスワードを設定すると失敗します。

詳しくはここをみるとよいかと思います。(ほんとは公式の情報が良いと思いますがそれらしき情報はありませんでした。)

create user dbuser01@localhost identified by ‘password’; ユーザーの作成
grant all on db.* to dbuser@localhost; ユーザーへ権限を付与
drop user dbuser@localhost; ユーザーの削除
use db; 操作対象のデータベースを変更

外部ファイルの読み込み

外部ファイルの読み込みはmysqlサーバーに接続した状態で\.もしくはsourceを用いて外部ファイルを指定します。

\. ./exsample.sql;
source ./exsample.sql;

テーブル

テーブルの作成はカラムと型の設定があるため単純ではありませんが一例をのせておきます

create table exsampletable(
id int unsigned,
name varchar(20)
);

テーブルの存在を確認します

show tables;

テーブルの構造を確認します

desc exsampletable;

テーブルの中身を確認します

select * from exsampletable;
select * from exsampletable \G -- テーブルを綺麗に表示 セミコロンはいらない

テーブルの削除はdropを使います

drop table exsampletable;

データ型

数値

  • int⇀ 整数
  • float⇀ 浮動小数点数
  • double⇀ 正確な浮動小数点数
  • int unsigned⇀ 正の数しか扱わない

文字

  • char(4)⇀ 4桁の固定長文字列
  • varchar(255)⇀ 255バイトまでの可変長文字列
  • text⇀ データサイズを指定しない

日付と時刻

  • data
  • time
  • datetime ‘2017-7-22 17:22:33’

true/false

mysqlのboolean型は数字で表現される

  • boolean⇀ tinyint(1)
  • truetrueは1で表現される
  • falsefalseは0で表現される

オプション

primary keyを設定したフィールドはinsert文で書かないようにします。またprimary keyauto_incrementは一緒に使うようにします。

create table users(
  id int primary key auto_increment,
  name varchar(20) unique,
  score float default 4.5
);

insert into users(name, score) values('tanaka', 5.8);
  • not null⇀ nullを許さない
  • default⇀ default値を指定する
  • unique⇀ 値の重複を許さない
  • primary key auto_increment⇀ 主キーを設定し連番にする(not null, unique)

レコード

レコードの挿入のサンプルをのせておきます。insert intoを使用してvaluesで値を指定します

insert into users(id, name ,score) values (1, 'taguti', 5.8);

mysqlは学ぶ量が多く記事が長くなるので続きは別記事にしてます。とりあえずこの記事ではmysqlの基本的な使い方のみにしてデータ抽出などは次の記事に書きます。

MySQLの基本的な使い方【データの抽出】