MariaDB 日付 DateTime での SQL case文

datetimeをselect case 四半期で別ける

MariaDBDateTimeを月単位や四半期で別けたい場合のSQLコード例です。

下↓の、 DateTimeが入ったテーブルがあります。

datetimeテーブル
テーブルの中身

2022年の、 1〜12月01日が入っています。

テーブルを select case で、 四半期に別ける場合のコード例

SELECT `day`, 
CONCAT(CONVERT(YEAR(`day`) ,CHAR),'年',CONVERT(MONTH(`day`) ,CHAR),'月') AS `Monthly`,
case 
WHEN (MONTH(`day`) <=3) THEN '第一四半期'
WHEN (MONTH(`day`) >=4) AND (MONTH(`day`) <=6)THEN '第二四半期'
WHEN (MONTH(`day`) >=7) AND (MONTH(`day`) <=9)THEN '第三四半期'
WHEN (MONTH(`day`) >=10) AND (MONTH(`day`) <=12)THEN '第四四半期'
ELSE '' END AS `quarters`
FROM date_test
四半期で別ける
四半期で別ける

MySQL View一覧 (show views)

VIEW一覧

MySQLMariaDBでは、テーブル一覧は「show tables;」出来ますが、Viewの場合「show views;」はERRORです。

information_schema.tablesにはテーブルやView・インデックスの情報が入っているのでそこから取り出せます。

SYSTEM VIEW, BASE TABLE, VIEW 一覧

SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE FROM information_schema.tables;

TABLE_NAMEにテーブルやVIEWが混ざって表示されるのでWHEREでVIEW指定すると下記のSQLでVIEWだけ一覧できます。

SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE FROM information_schema.tables WHERE TABLE_TYPE = 'VIEW';

Ubuntu 20.04 MariaDBインストールと外部接続設定

MariaDB外部から接続する方法

AWS EC2Ubuntu 20.04MariaDBをインストールする

aptを最新版にUpgradeする

sudo apt upgrade

aptのパッケージ一覧を更新する

sudo apt update

MariaDBをインストールする

sudo apt install mariadb-server

MariaDBの初期設定スクリプトを開始する

sudo mysql_secure_installation

MariaDB最初の起動

sudo mariadb

上記が実行で↓下記Errorが出る場合

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

MariaDBが起動できていないので下記コマンドで起動する

sudo systemctl start mariadb
sudo mariadb
「Server version: 10.3.34-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04」と出た
「Server version: 10.3.34-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04」と出た

exitを入力しmariadbコマンドツールから抜ける

MariaDBサーバーに外部から接続できる設定を先にしておく

viエディタで50-server.cnf(mysqld.conf)を編集

sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf 

/etc/mysql/mariadb.conf.dここに50-server.cnfが無い場合mysqld.confを編集する

28行目あたりにbind-address = 127.0.0.1があるのでコメントアウトする

外部から接続できるユーザーを作成

「sudo mariadb」ここに入ってからユーザー作成する下記コマンドを入力する

CREATE USER "user1"@"%" IDENTIFIED BY 'password1';
SET PASSWORD FOR "user1"@"%" = PASSWORD('password1');
GRANT ALL ON *.* TO "user1"@"localhost";
grant all privileges on *.* to "user1"@"%";

上記の2行目はいらないかも

user1というユーザーを作成し、パスワードはpassword1

MariaDB 起動|終了|再起動

sudo systemctl start mariadb #起動
sudo systemctl stop mariadb  #終了
sudo systemctl restart mariadb #再起動

ユーザー作成と設定が終わったので、MariaDBをrestart再起動しておく

MariaDBサーバーへ外部から接続する

mysql -h127.0.0.1 -uuser1 -ppassword1 データベース名