fukke.cafe

SQLコマンドとかMySQLの操作

MySQLの操作

ログイン
sudo mysql -u root -p
データベースの確認
show databases;
データベースの作成
CREATE DATABASE fruits;
使用するデータベースの洗濯
use fruits;
テーブルの確認
show tables;
テーブルの作成
create table teams(fruit VARCHAR(10), grp VARCHAR(1));
データ型
  • INT 整数型 125
  • FLOAT 浮動小数点数型 13.234
  • VARCHAR 可変長文字列 'test'
  • DATE 日付 '2019-11-11'
属性の修正
ALTER TABLE テーブル名 CHANGE 旧属性名 親属性名 新データ型;
ALTER TABLE テーブル名 MODIFY 属性名 新データ型;
ALTER TABLE テーブル名 ADD 属性名 データ型;
ALTER TABLE テーブル名 ADD 属性名 データ型 AFTER 属性名;
ALTER TABLE テーブル名 DROP 属性名;
テーブルにタプルを挿入
INSERT INTO teams VALUES('banana', 'A');
タプルの確認
SELECT * FROM teams;
タプルの削除
DELETE FROM teams WHERE fruit='banana';
タプルの更新
UPDATE teams SET fruit='melon' WHERE fruit='banana';
終了時
quit;
データーの抽出
SELECT fruit from teams;
SELECT fruit,grp from teams;
演算
SELECT CONCAT(fruit,grp) from teams;
条件の付与
SELECT * from teams WHERE fruit='banana';
含まれてる文字 %は任意の文字列
... WHERE fruit LIKE "%m%";
_は任意の一文字
... WHERE fruit LIKE "_a_a_a";
OR演算
... WHERE 〇〇 OR 〇〇;
... WHERE 〇〇 AND 〇〇;
結果の結合
SELECT 〇〇 UNITON SELECT 〇〇;
rootにパスワードを設定
ALTER USER 'root'@'localhost' identified WITH mysql_native_password BY 'r00t@ROOT';
ユーザーの作成
CREATE USER www identified by 'www@WWW123';
権限を与える
GRANT ALL ON fruits.* TO www;

ip

sudo vi /etc/netplan/00-installer-config.yaml
network:
    ethernets:
        enp0s3:
            dhcp4: true
        enp0s8:
            dhcp4: true
    version: 2
sudo netplan apply
ip addr

apache

sudo apt update
sudo apt install apache2
sudo apt install -y php7.4 libapache2-mod-php7.4

php

<?php
    phpinfo();
?>
dbtest.php
<?php
try {
    $dbh = new PDO(
        'mysql:host=localhost;dbname=fruits',
        'www',
        'www@WWW123'
    );
    $res = $dbh->query('SELECT * FROM teams');
    foreach($res as $team) {
        echo $team, "<BR>";
    }
    $res = null;
    $dbh = null;
} catch (PDOException $e) {
    print $e->getMessage();
}
?>
login.php
<?php
if (!isset($_POST['user']) or !isset($_POST['newpw'])) {
    print("Please input username and password");
} else {
    $dbname = 'website';
    $dbhost = 'localhost';
    $dbuser = 'www';
    $dbpass = 'www@WWW123';
    $dsn = "mysql:dbname=${dbname};host=${dbhost};";
    $dbh = new PDO($dsn, $dbuser, $dbpass);
    $user = $_POST['user'];
    $pass = $_POST['pass'];
    $sql = "select * from users where USER='$user' AND PASS='$pass'";
    $hit_user = $dbh->query($sql);
    if ($hit_user->rowCount() == 0) {
        print('login failed');
        include("login.html");
    } else {
        $userinfo = $hit_user->fetch(PDO:FETCH_NUM);
        print("<div>Logged in as $userinfo[0]</div>");
        include("oldpw.html");
    }
}
?>
chgpw.php
<?php
    if (isset($_POST['user']) and isset($_POST['newpw'])) {
        $dbname = 'website';
        $dbhost = 'localhost';
        $dbuser = 'www';
        $dbpass = 'www@WWW123';
        $dsn = "mysql:dbname=${dbname};host=${dbhost};";
        $dbh = new PDO($dsn, $dbuser, $dbpass);
        $user = $_POST['user'];
        $pass = $_POST['newpw'];
        $sql = "UPDATE users SET PASS='$pass' WHERE USER '$user'";
        $dbh->query($sql);
    }
    header('Location: ./login.html');
>

公開日 2022/02/16

目次

Thanks you for reading.