個人的な備忘録も兼ねてSQLコマンドをまとめておきます。
・mysqlの開始コマンド
net start mysql80
・ログイン
mysql -u ユーザー名 -p
→このコマンドを入力後にパスワードを入力
rootユーザーでログインする
mysql -u root -p
・ログアウト
exit;
・mySQLの停止
net stop mysql80
・データベース一覧の確認
SHOW DATABASES;
・データベースの指定
USE database_name;
・ユーザーの作成
CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
・ユーザー一覧の確認
SELECT user, host FROM mysql.user;
・ユーザーへの権限付与
GRANT [権限] ON [適用対象のデータベース].[適用対象のテーブル] TO 'ユーザ名'@'ホスト名'
・ユーザーの削除
DROP USER 'ユーザー名'@'localhost';
・テーブルの表示
mysql> USE shop;
mysql> SHOW TABLES;
・カラムの追加
ALTERTABLE shohin ADDCOLUMNstockINT;
・カラムの表示
show columns from shohin;
・カラムの削除
ALTERTABLE shohin DROPCOLUMN stock;
・テーブルの削除
DROP TABLE テーブル名;
・データの登録
INSERTINTOitems(name,price,category)VALUES('にんじん',60,'野菜');
・データの検索(すべてのデータ)
SELECT *
FROM items;
・カラムを選択して検索
SELECT column_name1, column_name2 FROM table_name;
・列名を変更してカラムを検索
SELECT emp_no AS"従業員番号"
FROM dept_manager;
・重複列を削除してカラムを検索
SELECT DISTINCT dept_no
FROM dept_manager ;
・データの更新
UPDATE テーブル名
SET 列名1 = 新しい値1, 列名2 = 新しい値2, ...
WHERE 条件;
・データの削除
DELETE FROM テーブル名
WHERE 条件;
・テーブルの作成の例
mysql> CREATE TABLE IF NOT EXISTS shop.shohin(
-> id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
-> title VARCHAR(50),
-> content TEXT,
-> created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
-> );
上記のSQL文では、下記の4つのカラムを作成して行きます。
id(ID)
title(タイトル)
content(本文)
created_at(登録された日時)
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY
- カラム名:id
- データ型:INT
- AUTO_INCREMENT:自動的に値が1ずつ増えていく設定
- NOT NULL:空データを許さない設定
- PRIMARY KEY:データ(レコード)を一意に特定するためのカラムを決めるもので、1つのテーブルに必ず1つは必要
title VARCHAR(50)
- カラム名:title
- データ型:VARCHAR
VARCHAR型は文字列であり、(50)は50文字と制限するためのものです。VARCHARでは必ず最大文字数を指定する必要があります。
content TEXT
- カラム名:content
- データ型:TEXT
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
- カラム名:created_at
- データ型:TIMESTAMP
- NOT NULL:空データを許さない設定
- DEFAULT CURRENT_TIMESTAMP:現在日時を保存すると言う意味です。