環境 CentOS Stream release 9 Apache/2.4.57 (CentOS Stream) Xserver VPS
MariaDB インストール
dnf -y install mariadb-server
MariaDB スタート
systemctl start mariadb
MariaDB 自動起動設定
systemctl enable mariadb
MariaDB ログイン、root パスワードを設定
ログイン
mysql -u root
root のパスワードを設定
alter user 'root'@'localhost' identified by '********';
一旦ログアウト
quit;
再度ログイン
mysql -uroot -p
パスワードの入力を求められ設定したパスワードでログイン出来れば成功
ログアウト
quit;
MariaDB の設定
vi /etc/my.cnf.d/mariadb-server.cnf
[mysqld] character-set-server=utf8mb4 max_connections=150 thread_cache_size=50 max_allowed_packet=128M
MariaDB リスタート
systemctl restart mariadb
データベース操作方法
ログイン
mysql -uroot -p
データベース一覧
show databases;
データベース選択
use mydb;
テーブル一覧
show tables;
table1 テーブルの総レコード数を取得
select count(*) from table1;
max 関数でも取得できる(id = プライマリーキーが前提)
select max(id) from table1;
プライマリーキーが設定されているカラムがあればわざわざ総レコード数を取得する機会は少ない
テーブルに含まれるカラム情報を取得
show columns from table1;
最初から5つのデータを取得
select * from table1 limit 5\G
; を \G に変えることでカラム名と値が向き合う形、即ち見やすく表示される
5番目から3つのデータを取得
select * from table1 limit 3 offset 4\G
最終(最新)レコードを取得(id = プライマリーキーが前提)
select * from table1 order by id desc limit 1\G
プライマリーキー設定されたカラムは自動的にインデックスが作成される。即ち連番となり desc で降順にすることで最終(最新)レコードが抽出される。
table1 テーブルの col1 カラムの値が apple のデータを取得
select * from table1 where col1='apple';
table1 テーブルの col2 カラムの値が 100 以上のデータを削除
delete from table1 where col2 >= 100;
table1 テーブルに含まれるすべてのデータを削除
delete from table1;
table1 テーブルを削除
drop table table1;
mydb データベース削除
drop database mydb;
ログアウト
quit;