本記事について
MySQLコマンド操作の備忘録を残します。
環境
mysql --version
mysql Ver 8.2.0 for Win64 on x86_64 (MySQL Community Server - GPL)
各種コマンド
MySQLのバージョン
-
MySQL接続後
mysql --version
-
MySQL接続前
mysql> select version();
MySQLに接続する
mysql -u root -p
データベース作成
- UTF-8の文字セットを使用する場合のデータベース作成コマンド
CREATE DATABASE IF NOT EXISTS your_database_name
CHARACTER SET utf8mb4
COLLATE utf8mb4_0900_ai_ci;
- SJIS(Shift JIS)の文字セットを使用する場合のデータベース作成コマンド
CREATE DATABASE IF NOT EXISTS your_database_name
CHARACTER SET sjis
COLLATE sjis_japanese_ci;
データベース選択
use select_database_name;
現在作成中のデータベース(データベース一覧)を表示
show databases;
データベース削除
drop database delete_database_name;
テーブル作成
カラム別にCHACHARACTER SETを指定する
CREATE TABLE IF NOT EXISTS your_table_name (
column1 VARCHAR(50) CHARACTER SET utf8,
column2 TEXT CHARACTER SET sjis
);
テーブル全体に対してCHARACTER SETを指定する
CREATE TABLE IF NOT EXISTS your_table_name (
column1 VARCHAR(50),
column2 TEXT
) CHARACTER SET sjis;
テーブル一覧表示
show tables;
テーブル削除
drop table delete_table_name;
カラム一覧を表示
desc your_table_name;
MySQL各種トピック
MySQLのテーブルにCSVファイルのデータを取り込む
以下の手順で実施してください。
[手順1] クライアント側の「--local_infile」を設定する
接続時に「--local_infile=1」を指定してログインする
mysql -u root -p --local_infile=1
[手順2] サーバー側の設定
- MySQL側の「local_infile」の現在の設定値(デフォルト値)を確認
SELECT @@local_infile;
+----------------+
| @@local_infile |
+----------------+
| 0 |
+----------------+
1 row in set (0.00 sec)
- 「local_infile=1」を設定
SET PERSIST local_infile= 1;
Query OK, 0 rows affected (0.00 sec)
- 設定後の確認
SELECT @@local_infile;
+----------------+
| @@local_infile |
+----------------+
| 1 |
+----------------+
1 row in set (0.00 sec)
[手順3] インポートコマンドを実行する
MySQLでCSVファイルをテーブルにインポートするコマンド例を記載します。
オプション指定は必要であれば指定してください
LOAD DATA LOCAL INFILE 'C:/data.csv'
INTO TABLE products
CHARACTER SET sjis -- 文字セットがShift JISの場合
FIELDS TERMINATED BY ',' -- CSVのフィールドの区切り文字がカンマの場合
ENCLOSED BY '"' -- フィールドがダブルクォートで囲まれている場合
LINES TERMINATED BY '\r\n' -- 改行文字がCRLFの場合
IGNORE 1 LINES; -- ヘッダ行がある場合、1行目を無視
sql文スクリプトで実行する
エディタでSQLスクリプト作成(例: script.sql)
-- usersテーブルの作成
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
-- 他のカラムの定義
);
-- ordersテーブルの作成
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
-- 他のカラムの定義
);
-- サンプルデータの挿入
INSERT INTO users (user_id, username) VALUES (1, 'John');
INSERT INTO orders (order_id, user_id) VALUES (101, 1);
スクリプトの実行
mysql -u username -p dbname < script.sql