■データベースの参照
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.01 sec)
■データベースの作成
database名にハイフンを使う場合にはバッククォートを使用する。
mysql> create database `tagutagu-db01`;
Query OK, 1 row affected (0.03 sec)
■環境確認・文字コード確認
mysql> status
--------------
mysql Ver 14.14 Distrib 5.6.32, for Linux (x86_64) using EditLine wrapper
Connection id: 2
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.6.32 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 5 min 28 sec
Threads: 1 Questions: 10 Slow queries: 0 Opens: 67 Flush tables: 1 Open tables: 60 Queries per second avg: 0.030
--------------
■プロンプトの変更
mysql> prompt mysql_tagutagu>
PROMPT set to 'mysql_tagutagu>'
mysql_tagutagu>
■使用するデータベースの宣言
データベースサーバの種類(ポスグレ)によってはこれを始めにやらないと怒られるらしい。
mysql> use tagutagu-db01;
Database changed
■テーブルの作成
mysql> create table tagutagu(ID VARCHAR(10),Name VARCHAR(10),Age INT);
Query OK, 0 rows affected (0.23 sec)
mysql> show tables;
+-------------------------+
| Tables_in_tagutagu-db01 |
+-------------------------+
| tagutagu |
+-------------------------+
1 row in set (0.00 sec)
▼MySQLのデータ型
カラムにはデータ型を指定し、データ型から外れる値は入力することができない。
この仕組みによって、RDBMSはデータの安全性や整合性を高めている。
種類 | 格納される値 | 範囲 |
INT | 整数 | -2147483658 ~ -2147483657 |
TININT | 小さい整数 | -128 ~ 127 |
FLOAT | 単精度浮動小数点数 | -3.40282×1038~3.40282×1038 |
DOUBLE | 倍精度浮動小数点数 | -1.79769×10308~1.79769×10308 |
種類 | 格納される値 | 対応している範囲 |
CHAR | 固定長の文字列 | 255文字まで |
VARCHAR | 可変長の文字列 | 1~65532バイトまで SHIFT_JISなら256文字 |
TEXT | 長い文字列 | 65535文字まで |
データ型 | 格納される値 | 対応している範囲 |
DATETIME | 日付と時刻 | yyyy-mm-dd hh:mm:ss |
DATE | 日付 |
yyyy-mm-dd
|
TIME | 時刻 |
hh:mm:ss
|
---
mysql> status
--------------
mysql Ver 14.14 Distrib 5.6.34, for Linux (x86_64) using EditLine wrapper
Connection id: 2942
Current database: hogehoge
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.6.34-log MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 5 hours 30 min 23 sec
Threads: 1 Questions: 20689 Slow queries: 0 Opens: 75 Flush tables: 1 Open tables: 62 Queries per second avg: 1.043
--------------
■テーブルの文字コードを変更する。
mysql > alter table テーブル名 charset = utf8
■カラム構造の確認
---
■テーブルの削除方法
mysql> desc tagutagu;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| ID | varchar(10) | YES | | NULL | |
| Name | varchar(10) | YES | | NULL | |
| Age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
もしくは
mysql> desc tagutagu\G
*************************** 1. row ***************************
Field: ID
Type: varchar(10)
Null: YES
Key:
Default: NULL
Extra:
*************************** 2. row ***************************
Field: Name
Type: varchar(10)
Null: YES
Key:
Default: NULL
Extra:
*************************** 3. row ***************************
Field: Age
Type: int(11)
Null: YES
Key:
Default: NULL
Extra:
3 rows in set (0.00 sec)
■レコードの挿入(INSERT)
mysql> insert into tagutagu (ID,Name,Age) values ('A101','pikachu',5) ,('A102','hitokage',10) ,('A103','zenigame',20) , ('A104','danefusha',30) ,('A105','myutwo',100);
Query OK, 5 rows affected (0.04 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select * from tagutagu;
+------+-----------+------+
| ID | Name | Age |
+------+-----------+------+
| A101 | pikachu | 5 |
| A102 | hitokage | 10 |
| A103 | zenigame | 20 |
| A104 | danefusha | 30 |
| A105 | myutwo | 100 |
+------+-----------+------+
5 rows in set (0.01 sec)
■レコードの削除(テーブルの中身を削除)
mysql> select * from テーブル名;
■特定テーブルの全レコードの参照(SELECT)
mysql> select * from テーブル名;
■特定カラムの参照(SELECT)
mysql> select * from VM_INFO where os = 'CentOS release 6.6';
■テーブルのコピー(Create)
---
■テーブルのカラム+データのコピー方法(Create)
---
■データのカラム構造のみをコピー方法
---
■データのみをコピーする方法
---
■特定のカラムをコピーして別カラムに上書きコピーする。
mysql> UPDATE tabel-name SET `コピー先カラム` = `コピー元カラム`
■実行中のプロセス確認
mysql> show processlist;
+----+------+-----------+---------------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+---------------+---------+------+-------+------------------+
| 4 | root | localhost | tagutagu-db01 | Sleep | 903 | | NULL |
| 5 | root | localhost | tagutagu-db01 | Query | 0 | init | show processlist |
+----+------+-----------+---------------+---------+------+-------+------------------+
2 rows in set (0.00 sec)
■空文字、NULLのみをSELECTする。
---
■複数条件(and, or)でSELECTする。
---
■ユーザ作成
ALLは全てのDB操作を意味する。*.*は全てのデータベース、tableを意味する。
※localhostと%は区別されるので、ローカルとリモート全て許可する場合には、localhostと%で二回実行する。
mysql> GRANT ALL PRIVILEGES ON *.* TO tagutagu@"localhost" IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
よく使いそうな許可アクションのパラメータ
権限 | 意味 |
ALL | GRANT OPTION以外全て許可 |
ALTER | ALTER TABLEを許可 |
CREATE | CREATE TABLEを許可 |
DELETE | DELETEを許可 |
DROP | DROP TABLE を許可 |
INDEX | CREATE INDEX , DROP INDEXを許可 |
INSERT | INSERTを許可 |
REPLICATION SLAVE | スレーブ側のレプリケーションに必要な動作を許可 |
SELECT | SELECTを許可。 |
UPDATE | UPDATEを許可 |
■シェルからSQLを実行する。
[root@www:~]# mysql -u root -p -e 'select * from DB_name.Tbl_name;'
Copyright © 2021 たぐたぐ.com. All rights reserved.