1
2

More than 3 years have passed since last update.

備忘録 MySQL

Posted at

MySQLコマンド

MySQLに入る

> cd C:\xampp\mysql\bin
> mysql -u root

データベースの作成

> create database product default character set utf8 collate utf8_general_ci;

データベース確認

> show database;
> select database();

データベース切り替え

> use product;

データベース削除

> drop database product;

テーブル作成

> create table users(
        id int not null auto_increment primary key,
        name varchar(255),
        score int
        );

テーブル構造の確認

> desc users;

データ確認

> select * from users;

ユーザー作成

> create user dbuser01@localhost identified by 'password';

ユーザー権限譲渡

> grant all on mydb01.* to dbuser01@localhost;

ユーザー確認

> select user();

ユーザー削除

> drop user dbuser01@localhost;

レコードのデータ挿入

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

フィールドに制限をかける

変なデータが入らないように

null のフィールドをはじく

> score float not null

=> データが null のときフィールドそのものがないことになる

データが無い時デフォルト値設定

> score float default 0.0

=> score が設定されていないとき、0.0の値が入る

重複がないようにする

> name varchar(20) unique

=> 重複したフィールドははじかれる

id に対する主キーの設定

> id int unsigned primary key auto_increment

primary key => null ではない重複しない値になることが保証される
auto_inctement => 自動的に連番になる

フィールドを後から追加

> alter table users add column email varchar(255);

末尾に after [フィールド名] とすると、指定したフィールドの直後に追加する

フィールドを削除

> alter table users drop column email score;

フィールドの型を変える

> alter table users change name user_name varchar(80);

テーブルの名前を変える

> alter table users rename persons;

全てのフィールドを抽出する

> select * from users;

特定のフィールドのみを抽出する

> select id, name from users;

条件付きでフィールドを抽出する

> select * from users where score >= 6;

=> score が6以上のすべてのフィールドを選択する

文字列を抽出条件にする

> select * from users where name = 'john';

部分一致で抽出

> select * from users where name like = 't%';

=> 先頭が t の値を抽出

> select * from users where name like = '%t%';

=> t を含む値を抽出

> select * from users where name like = 't%';

=> 末尾が t の値を抽出

文字数で抽出

> select * from users where name like = '_____';

=> 取得したい文字数分のアンダーバーを入れる

抽出結果の並び替え

> select * from users order by score asc;

=> 値を小さい順に並べる

> select * from user where score is not null order by score desc;

=> 値を大きい順に並べる且つ null を除外する

> select * from users limit 3;

=> 最初の3件のみ抽出

> select * from users limit 3 offset 3;

=> 最初の3件を飛ばして次の3件を抽出

> select * from users order by score desc limit 3;

=> 値を大きい順に3件抽出

レコードの更新

> update users set score = 5.9 where id = 1;

=> 1 の id を持つフィールドの値を更新

> update users set name = 'john', score = 2.9 where 'bob';

=> john の name を bob、score を 2.9 に更新

全てのデータの削除

> truncate table users;

外部ファイル読み込み

> \. ./create_other.sql
1
2
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
2