LoginSignup
0
0

MySQL 備忘録

Last updated at Posted at 2024-01-10

本記事について

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] サーバー側の設定
  1. MySQL側の「local_infile」の現在の設定値(デフォルト値)を確認
SELECT @@local_infile;
+----------------+
| @@local_infile |
+----------------+
|              0 |
+----------------+
1 row in set (0.00 sec)
  1. 「local_infile=1」を設定
SET PERSIST local_infile= 1;
Query OK, 0 rows affected (0.00 sec)
  1. 設定後の確認
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

参考リンク

0
0
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
0
0