MySqlでDB、テーブル作成メモ 備忘録

MySqlでDB、テーブル作成メモ(条件はユーザはすでに作成済)
株式市場の企業の株価と出来高を登録する。
pythonを使ったスクレイピング処理をこれから行う。この記事にはPythonの記載はない。
mysqldbを使用していたがmysql-connector-pythonが良いらしいのでpip install済

ターミナルでの作業

最近忘れっぽくて、使っていないコマンドをどんどん忘れている。SQL文も忘れてるので、備忘録メモとして記載しておく。記憶力の低下に抵抗せずに、メモをしていつでも思い出せるかメモを見ながら作業するようにする。

・ユーザはmaseda
mysql -u maseda -p
psssはTes*****にした。上に記載。このパスワードはデモ用なので知られてOK

・DBを作成
CREATE DATABASE YahooFinance DEFAULT CHARACTER SET utf8mb4;

・DBを指定する
use YahooFinance;

重複を避けるときはUNIQUEを使う
UNIQUE uni_Code int(5) NOT NULL,
>>今回は使用せず
mysqlのコメントは #,--(ハイフン2つ) /*  */ がある
CodeについてはUNIQUEユニークにしない、毎回同じ企業コードが入るかも

・テーブルを作成
CREATE TABLE Table_Dekidaka(
ID int(11) NOT NULL AUTO_INCREMENT,
Code int(5) NOT NULL,
Market text,
Name text,
Price int(11) ,
Volume int(14),
PreviousVolume int(14),
VolumePer float,
StockDate DATE,
CreateDate DATETIME,
Yobi text,
PRIMARY KEY (ID)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

>>オートインクリメントのIDは、PRIMARY KEY(ID)が必要。ないとエラーになる。

mysql> show tables;
mysql> show columns from Table_Dekidaka;

+----------------+----------+------+-----+---------+----------------+
| Field          | Type     | Null | Key | Default | Extra          |
+----------------+----------+------+-----+---------+----------------+
| ID             | int      | NO   | PRI | NULL    | auto_increment |
| Code           | int      | NO   |     | NULL    |                |
| Market         | text     | YES  |     | NULL    |                |
| Name           | text     | YES  |     | NULL    |                |
| Price          | int      | YES  |     | NULL    |                |
| Volume         | int      | YES  |     | NULL    |                |
| PreviousVolume | int      | YES  |     | NULL    |                |
| VolumePer      | float    | YES  |     | NULL    |                |
| StockDate      | date     | YES  |     | NULL    |                |
| CreateDate     | datetime | YES  |     | NULL    |                |
| Yobi           | text     | YES  |     | NULL    |                |
+----------------+----------+------+-----+---------+----------------+
11 rows in set (0.03 sec)

mysql> 
権限がないときは、権限を与える。
GRANT SHOW DATABASES ON *.* to maseda@localhost;
これでいいはず。もしこれでだめな場合は、必要な権限を与えて。

---
python
mysqldbを使用していたがmysql-connector-pythonが良いらしい。
pip install mysql-connector-python

pip list 一覧表示 OK

 

こちらの記事もどうぞ