mySQL 覚書(Windows版)

広告

広告

mysql 5.0.0 の覚書

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_01
  1. インストールが終われば、とりあえず環境変数にパスを追加しておく
  2. PATHに「;c:\mysql\bin」を追加
  3. 「C:\mysql\bin\WinMySQLAdmin.exe」を起動してとりあえずのrootIDとpwを入力しておく
  4. 設定iniファイル「C:\WINNT\my.ini」が作成されているので、sjis環境で使うために[mysqld]の下辺りに以下の文句を付け加える
default-character-set=sjis

インストール直後のログイン&ローカルからのrootパスワード作成

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_02
c:\>mysql -u root

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 448 to server version: 5.0.0-alpha-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> grant all on *.* to root@localhost identified by 'password';
Query OK, 0 rows affected (0.08 sec)

mysql.exeを使用し、mysqlに接続する

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_03
c:\>mysql -u root -p
Enter password: password
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 448 to server version: 5.0.0-alpha-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

データベースの一覧を表示する

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_04
mysql> show databases;
+-----------+
| Database  |
+-----------+
| mysql     |
| test      |
+-----------+
3 rows in set (0.00 sec) 

mysql>

使用するデータベースを選択する

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_05
mysql> use mysql;
Database changed

mysql>

データベースの作成・削除

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_06
mysql> create database dummy;
Query OK, 1 row affected (0.00 sec) 

mysql> drop database dummy;
Query OK, 0 rows affected (0.00 sec)

mysql>

テーブルの作成

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_07

前もって作成するデータベースを「use」コマンドにてアクティブにしておく。

create table テーブル名 ( フィールド定義, ... )

フィールド名 フィールド型 [not null | null] [default 初期値] [unique] [auto_increment] [primary key]

数値型の種類
フィールド名フィールド名を指定する。
フィールド型フィールドのデータ型を指定する。
  • M:表示桁数
  • D:小数点以下の表示桁数
数値型
  • tinyint[(M)]:-128〜127(符号なし : 0〜255)
  • smallint[(M)]:-32768〜32767(符号なし : 0〜65535)
  • mediumint[(M)]:-8388608〜8388607(符号なし : 0〜16777215)
  • int[(M)]:-2147483648〜2147483647(符号なし : 0〜4294967295)
  • bigint[(M)]:-9223372036854775808〜9223372036854775807(符号なし : 0〜18446744073709551615)
  • float[(M,D)]:単精度浮動小数点数
  • double[(M,D)]:倍精度浮動小数点数
unsignedオプション
マイナス値がない。
zerofillオプション
数値がMに満たない場合、M桁になるよう0で埋められる。
文字列型
  • ソートされる時に文字として、大文字小文字の区別なしで比較される。
  • binaryオプションを付けると、文字コードとして比較される。
  • binaryと同様に、textオプションは文字として、blobオプションは文字コードとして認識される。
  • char(M) [binary]:固定長文字列(最大長 : 255B)
  • varchar(M) [binary]:可変長文字列(最大長 : 255B)
  • tinyblob/tinytext:可変長(最大長 : 255B)
  • blob/text:可変長(最大長 : 65535B)
  • mediumblob/mediumtext:可変長(最大長 : 16777215B)
  • longblob/longtext:可変長(最大長 : 4294967295B)
日付時間型
日付時間型は、文字列、数値で値を入れる事ができる。文字列で入れる場合、「YYYY-MM-DD HH:MM:SS」の形式にする。
  • date:0000-00-00(YYYY-MM-DD)
  • datetime:0000-00-00 00:00:00(YYYY-MM-DD HH:MM:SS)
  • timestamp[(M)]:00000000000000(YYYYMMDDHHMMSS)
  • TIMESTAMP(2):YY
  • TIMESTAMP(4):YYMM
  • TIMESTAMP(6):YYMMDD
  • TIMESTAMP(8):YYYYMMDD
  • TIMESTAMP(10):YYMMDDHHMM
  • TIMESTAMP(12):YYMMDDHHMMSS
  • TIMESTAMP(14):YYYYMMDDHHMMSS
  • time:00:00:00(HH:MM:SS)
  • year[(2|4)]:年表示桁数の選択(デフォルトは4桁)。
空文字許可
  • not null:空文字列を許可しない
  • null:空文字列を許可する
デフォルトは「null」
初期値フィールドの初期値を設定する(default 0/default 'default')
インデックス
  • unique インデックス名 ( フィールド名1, フィールド名2... )
  • uniqueはフィールド内でのインデックスを設定する。
  • 同時に複数指定し、その組合せでインデックスとする事もできる。
  • インデックス名は省略すると、最初に指定したフィールド名がインデックス名となる。
自動裁番レコードが追加される度に、+1された値をフィールドに追加する。 auto_incrementはprimary keyと一緒に指定しなくてはならない。
主キー フィールドをテーブルの主キーにする。 primary keyを指定すると、そのフィールドにはnot nullが付加され、更にインデックスが自動的に作成される。 主キーもインデックスのように、複数フィールドで指定することができる。

テーブルの削除

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_08
mysql> drop table dummy_table;
Query OK, 0 rows affected (0.03 sec)

mysql>

テーブルの一覧を表示

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_09
mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv    |
| db              |
| func            |
| help_category   |
| help_keyword    |
| help_relation   |
| help_topic      |
| host            |
| proc            |
| tables_priv     |
| user            |
+-----------------+
11 rows in set (0.02 sec)

mysql>

フィールドの一覧を表示

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_010
mysql> desc db;
+-----------------------+---------------+------+-----+---------+-------+
| Field                 | Type          | Null | Key | Default | Extra |
+-----------------------+---------------+------+-----+---------+-------+
| Host                  | char(60)      |      | PRI |         |       |
| Db                    | char(64)      |      | PRI |         |       |
| User                  | char(16)      |      | PRI |         |       |
| Select_priv           | enum('N','Y') |      |     | N       |       |
| Insert_priv           | enum('N','Y') |      |     | N       |       |
| Update_priv           | enum('N','Y') |      |     | N       |       |
| Delete_priv           | enum('N','Y') |      |     | N       |       |
| Create_priv           | enum('N','Y') |      |     | N       |       |
| Drop_priv             | enum('N','Y') |      |     | N       |       |
| Grant_priv            | enum('N','Y') |      |     | N       |       |
| References_priv       | enum('N','Y') |      |     | N       |       |
| Index_priv            | enum('N','Y') |      |     | N       |       |
| Alter_priv            | enum('N','Y') |      |     | N       |       |
| Create_tmp_table_priv | enum('N','Y') |      |     | N       |       |
| Lock_tables_priv      | enum('N','Y') |      |     | N       |       |
+-----------------------+---------------+------+-----+---------+-------+
15 rows in set (0.06 sec)

mysql>

テーブルの編集

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_011

create tableで作成したテーブルは、alter tableによって各種定義を以下のように変更する事ができる。

フィールド定義の変更
alter table [テーブル名] modify
フィールド名とフィールド定義の変更
alter table [テーブル名] change [旧フィールド名] [新フィールド名]
フィールドの追加
alter table [テーブル名] add [フィールド名] [フィールド定義] [first | after フィールド名]
フィールドの削除
alter table [テーブル名] drop [フィールド名]
フィールドの初期値の設定
alter table [テーブル名] alter [フィールド名] set default [初期値]
フィールドの初期値の削除
alter table [テーブル名] alter [フィールド名] drop default
主キーの設定
alter table [テーブル名] add primary key([フィールド名], ...)
主キーの削除
alter table [テーブル名] drop primary key
インデックスの設定
alter table [テーブル名] add index [インデックス名] ([フィールド名], ...)
インデックスの削除
alter table [テーブル名] drop [インデックス名]
テーブル名の変更
alter table [旧テーブル名] rename [新テーブル名]

テキストファイルにSQL文を記入し、実行

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_012
mysql>  source c:\dummy.sql

mysql>

ユーザアカウント・権限の作成

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_013
grant 権限[(フィールド名[, フィールド名 ...])][, 権限[(フィールド名[, フィールド名 ...]) ... ]
 on データベース名.テーブル名
 to ユーザ名[@ホスト名]
 [identified by 'パスワード']
 [with grant option]
権限の種類
権限・フィールド名
  • all:ユーザ管理(grant)以外の全ての権限を付与
  • usage:権限付与なし
  • create:テーブル作成(create table)の権限を付与
  • alter:テーブル変更(alter table)の権限を付与
  • drop:テーブル削除(drop table)の権限を付与
  • index:インデックス作成/削除(create index/drop index)の権限を付与
  • file:ファイルアクセス(select ... into outfile/load data infile)の権限を付与
  • select/insert/update/delete:テーブルに対する操作の権限を付与
データベース.テーブル名 on [データベース名].[テーブル名]
権限を付与するデータベースと、テーブル名を指定する。 (上記権限・フィールド名と連携)
ユーザ・ホスト名 to [ユーザ名]@[ホスト名]
権限を付与するユーザを指定する。 MySQLがインストールされている端末の場合、ホスト名はlocalhostとなり、 特定の端末の場合は、その端末のPC名(又はIPアドレス)を記述する。 localhost以外の全ての端末からの場合は書かないか、'%'とする。
パスワード identified by 'パスワード'
パスワードを設定する。 ユーザの新規作成の場合、記述しないとパスワードの無いユーザになる。 既にパスワードが設定されており、ユーザの権限を追加する場合は、省略すると既存のパスワードが使われる。
grant with grant option
ユーザ管理(grant)の権限を付与する。
mysql> grant all on dummy.* to guest@localhost identified by 'guest';
Query OK, 0 rows affected (0.03 sec)

mysql>

ユーザ権限の削除

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_014
mysql> revoke alter on dummy.* from guest@localhost;
Query OK, 0 rows affected (0.01 sec)

mysql>

ユーザ権限の表示

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_015
mysql> show grants for root@localhost;
1 row in set (0.06 sec)

mysql>

ユーザの削除

最終更新
2003-08-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/software/mysql.html#a_016

ユーザを削除する場合、システムの管理に使用しているデータベース、「mysql」から直接削除する。 mysqlでユーザ管理に使用されているテーブルは、「use」「db」「tables_priv」「columns_priv」である。 これらのテーブルに「user」「host」というフィールドがそれぞれにあるので、この中から指定の「ユーザ名@ホスト名」を削除することになる。

mysql> delete from user where user='guest' and host='localhost';
Query OK, 1 row affected (0.03 sec)

mysql> delete from db where user='guest' and host='localhost';
Query OK, 1 row affected (0.03 sec) 

mysql> delete from tables_priv where user='guest' and host='localhost';
Query OK, 0 rows affected (0.03 sec) 

mysql> delete from columns_priv where user='guest' and host='localhost';
Query OK, 0 rows affected (0.03 sec) 

mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec) 

mysql>

広告

Copyright (C) 2003-2004 七鍵 key@do.ai 初版:2003年7月7日 最終更新:2003年8月21日