MySQL 基本文法 メモ

ログインとログアウト

ログイン

# 対話モード
mysql -u username -p password

# ファイルを読み込ませて実行
mysql -u username -p password -e ファイルのパス

ログアウト

quit
or
exit

設定

# ユーザの作成
create user username@localhost identified bypassword’;

# ユーザの削除
drop user username;

# 権限の付与
grant authority on database_name.table_name to username@localhost;

# 情報の表示
status

データベース操作

# データベースの作成
create database new_table_name;

# データベースの表示
show databases;

# データベースの削除
drop database データベース名;

# 使用するデータベースを決める
use database_name;

# 現在使用しているデータベースの表示
select database();

テーブル基本操作

# テーブルの作成
create table table_name(column_name1 data_type1, column_name2 data_type2, ……) charset=utf8;

# 指定のテーブルが存在しているときに削除
drop table if exists テーブル名; 

# 自動インクリメントの初期化
alter table table_name auto_increment=0

# すべてのテーブルの表示
show tables;

# テーブルの属性構造の表示
desc table_name;

# テーブルのコピー
create table new_table_name select * from table_name;

データ操作

# データの挿入
insert into table_name values(data1, data2,…...);

# データの表示
select カラム名1, カラム名2,... from table_name;

# すべてのデータ表示
select * from table_name;

# レコードの削除
delete from テーブル名;

# カラムのデータ型の変更
alter table table_name modify カラム名 データ型

# カラムの追加
alter table table_name add カラム名 データ型;

# カラム位置の変更
alter table table_name modify カラム名 データ型 first # 先頭
alter table table_name modify カラム名 データ型 after bang # bangの後

# カラム名とデータ型の変更
alter table table_name change 変更前カラム名 変更後カラム名 変更後データ型;

# カラムの削除
alter table table_name drop カラム名;

# カラム情報だけコピー
create table 新しいテーブル名 like テーブル名;

# 他のテーブルのデータをコピー
insert into コピー先のテーブル名 select * from コピー元のテーブル名;

# 特定のカラムを選択してコピー
insert into コピー先のテーブル名 (カラム名) select カラム名 from コピー元のテーブル名;

インデックス操作

# インデックス作成
create index インデックス名 on テーブル名(カラム名);

# インデックスの表示
show index from テーブル名 \G

# インデックスの削除
drop index インデックス名 on テーブル名;

テーブルいろいろ操作

# 主キー設定
create table table_name(column_name1 data_type1 primary key, column_name2 data_type2, ……) charset=utf8;

# UNIQUE
create table table_name(column_name1 data_type1 unique, column_name2 data_type2, ……) charset=utf8;

# 自動インクリメント
create table table_name(column_name1 data_type1 auto_increment primary key, column_name2 data_type2, ……) charset=utf8;

# デフォルト値
create table table_name(column_name1 data_type1 default 初期値, column_name2 data_type2, ……) charset=utf8;

条件に一致したレコードの表示

# 条件に一致したレコードの表示
select カラム名 from テーブル名 where 条件;
演算子 内容
A in B Bの中にAがある
A not in B Bの中にAがない
A between B and C BからCにAがある
A not between B and C BからCにAがない

# カラム名に4か5をもつレコードの表示
select * from テーブル名 where カラム名 in (4,5)

# あいまい検索 like
# %は任意の文字列, _は任意の1文字
select * from tb where カラム名 like 条件
select * from tb where bang like '%03_'; # 一致
select * from tb where bang not like '%03_'; # 不一致
select * from tb where bang is null; # null

参考文献

基礎からのMySQL 改訂版 (プログラマの種シリーズ SE必修! )

基礎からのMySQL 改訂版 (プログラマの種シリーズ SE必修! )