こんにちは。
記事を閲覧いただきありがとうございます。
プログラミングの勉強を始めてしばらく経ちましたが、SQLについてまともに学習したことがなかったため、復習がてら記事にしていきたいと思います。
学習に関してはドットインストールで行いました。
MySQLとは
○ オープンソースのデータベースシステム。
MySQLへ接続
○ MySQLの動作確認
$ sudo service mysql status
○ 以下のように表示で操作中
mysqld (pid 17137) を実行中...
○ rootユーザーでログイン
$ mysql -u root
○ 接続を終了
$ quit;
データベースの操作
○ データベースの作成
$ create database 'データベース名'
○ データベースの削除
$ drop database 'データベース名'
○ データベースの表示
$ show databases;
○ 操作対象のデータベース確認
select databese();
○ データベースを操作対象にする
$ use 'データベース名';
作業用ユーザーの作成
○ まずルートユーザーでログイン
$ mysql -u root
以下コマンドで作業用ユーザー作成
$ create user 'ユーザーネーム'@'どこからアクセスしてくるか?' identified by 'パスワード';
全権限を与える
$ grant all on 'データベース名'.* to '作成したユーザー';
ルートユーザーから抜けて作業用ユーザーでログイン
$ mysql -u '作成したユーザー名' -p
パスワード入力を求められるので入力すると接続できる
ユーザーの削除
$ drop user 'ユーザー名';
外部ファイルの実行
○ sqlファイルを作成
myapp.sql:
#該当のデータベースがあれば削除
drop database if exists 'データベース名';
#データベース作成
create database 'データベース名';
#権限付与&作業用ユーザーの作成
grant all on 'データベース名'.* '作成する作業用ユーザー' identified by 'パスワード';
○ ファイルの実行
実行の方法は二つある
リダイレクションを使う方法
$ mysql -u root < 'ファイル名'
mySQLサーバにログインして行う方法
rootでログイン
source もしくは \. を使う
$ source ./'ファイル名'
テーブルの作成
○ 外部ファイルを作成
create_table.sql:
#テーブルの作成
create table 'テーブル名' (
#'カラム名' 'データ型',
id int unsigned,
name varchar(20),
score float,
);
○ データ型について
number ー 数値
int #整数
float #浮動小数点
double #浮動小数点より精度の高いデータ型
int unsigned # + のみ使用
string ー 文字列
char('文字数') #固定長
varchar('文字数') #可変長 データによって長さが変わるもの
text #可変長 どれくらいの長さになるかわからないもの
date/time ー 日時
date
time
datatime
true/false ー 真偽値
true = 1
false = 0
テーブルにデータを挿入
テーブルにデータを挿入
insert into 'テーブル名' ('カラム名1','カラム名2') value ('値1',''値2)
テーブルの確認
$ select * from 'テーブル名';
○ カラムに入力制限をかける
not null #NUllを許さない
default #デフォルトの値を指定
primary key #重複しない値にする auto_incrementを付けると連番になる
例)
create table users (
id int unsigned primary key auto_increment,
name varchar(20) unique,
score float default 0.0
);
結果:
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | UNI | NULL | |
| score | float | NO | | NULL | |
+-------+------------------+------+-----+---------+----------------+
○ カラムを後から追加
alter table 'テーブル名' add colmun '追加するカラム名' '型';
○ カラムの削除
alter table drop colmun 'カラム名';
○ 型の変更
alter table chage 'カラム名' '新しいカラム名' '型';