最低限知っておきたいSQLの基本操作一覧
今は、SQLを勉強中です。
SQLとは、RDBMS(データベース)を操作するための言語です。
今日は、私の備忘録も兼ねて基本操作をこの記事に書きたいと思います。
目次
スポンサーリンク
ユーザに関して
ユーザ関連の操作は、rootでRDBMSにログインする必要があります。
ユーザの作り方
ユーザを作るには、create user を使用します。
MariaDB [(none)]> create user sample_user; Query OK, 0 rows affected (0.00 sec)
上のサンプルコードでは、sample_user というユーザを作っています。
ユーザのパスワードの設定方法
ユーザのパスワードを設定するには、set password を使用します。
MariaDB [(none)]> set password for sample_user = password('sample_password'); Query OK, 0 rows affected (0.00 sec)
上のサンプルコードでは、sample_user というユーザに sample_password というパスワードを設定しています。
ユーザのホスト名を設定
ユーザのホスト名を設定するには、rename user を使用します。
MariaDB [(none)]> rename user 'sample_user'@'%' to 'sample_user'@'localhost'; Query OK, 0 rows affected (0.00 sec)
上のコードではsample_user のホスト名を localhost に設定しています。
いくつか注意点があります。まずユーザ名とホスト名は’ ‘ で括ります。@ は ‘ ‘ で括ってはいけません。
初期状態では、ユーザのホスト名は%となっています。これは、任意のホスト名で接続できるという意味です。
ユーザの一覧表示
ユーザ一覧を表示するときは、mysqlデータベースのuserテーブルから抽出して表示します。
MariaDB [(none)]> select user, host, password from mysql.user; +-----------------+-----------------------+-------------------------------------------+ | user | host | password | +-----------------+-----------------------+-------------------------------------------+ | sample_user | localhost | ***************************************** | +-----------------+-----------------------+-------------------------------------------+ 1 rows in set (0.00 sec)
パスワードは暗号化されて表示されます。
ユーザの削除
ユーザを削除するときは、drop を使用します。
MariaDB [(none)]> drop user 'sample_user'@'localdomain'; Query OK, 0 rows affected (0.00 sec)
上のコードは、sample_user を削除しています。
特定のユーザでのログイン方法
特定のユーザでのログインをするときは、オプションで-u, -p を使用します。
[sample@sample-server ~]$ mysql -u sample_user -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 7 Server version: 5.5.47-MariaDB MariaDB Server Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
-u の後に ユーザ名を付け加えます。
ホスト名を指定してログインする方法もあります。「-h (ホスト名)」を加えてログインします。特に指定がなければ、localhostでログインされます。
データベース・テーブルに関して
データベースの作り方
データベースを作るには、create database を使用します。
MariaDB [(none)]> create database sample_database; Query OK, 1 row affected (0.00 sec)
上のコードでは、sample_database というデータベースを作成しています。
データベースの一覧表示
データベースを一覧表示するには、show databases を使用します。
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | sample_database | +--------------------+ 3 rows in set (0.00 sec)
これで、一覧が表示されます。
データベースを使用する方法
データベースを使用する(切り替える)には、use を使用します。
MariaDB [(none)]> use sample_database; Database changed MariaDB [sample_database]>
コードを入力した後は、[ ] の中身が sample_database になっていることがわかります。これは今、sample_database を使用しているという意味です。
テーブルの作り方
テーブルを作るときは、親となるデータベースを選択していなければなりません。
テーブルを作成するには、create tableを使用します。なお、列を決定する必要があります。
MariaDB [sample_database]> create table sample_table; ERROR 1113 (42000): A table must have at least 1 column MariaDB [sample_database]> create table sample_table( -> id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT, -> last_name VARCHAR(50), -> first_name VARCHAR(50), -> age TINYINT UNSIGNED, -> PRIMARY KEY(id)); Query OK, 0 rows affected (0.08 sec)
上のコードでは、id、ラストネーム、ファーストネーム、年齢を列としてテーブルを作成しています。
型や主キーなど細かいことについては、この場での説明はしません^^;
テーブルを一覧表示する方法
テーブルを一覧表示するには、show tables を使用します。
MariaDB [sample_database]> show tables; +---------------------------+ | Tables_in_sample_database | +---------------------------+ | sample_table | +---------------------------+ 1 row in set (0.00 sec)
テーブルの列を表示する方法
テーブルの列を表示するには、show clumns を使用します。
MariaDB [sample_database]> show columns from sample_table; +------------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+-----------------------+------+-----+---------+----------------+ | id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment | | last_name | varchar(50) | YES | | NULL | | | first_name | varchar(50) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | +------------+-----------------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec)
上のコードでは、sample_database の sample_table の列を一覧表示しています。
権限について
権限をユーザに付与する方法
権限をユーザに付与するには、grant を使用します。
使い方は以下です。
grant (権限) on (データベース名).(テーブル名) to '(ユーザ名)'@'(ホスト名)';
実際に使ってみましょう。
MariaDB [(none)]> grant all on sample_databese.sample_table to 'sample_user'@'localhost'; Query OK, 0 rows affected (0.00 sec)
上のコードでは、sample_user に sample_database の sample_table に関して、全て(all)の権限を与えています。
権限に関しては、allの他に、以下のようなものがあります。
コマンド | 内容 |
all | 権限の操作を除いた全ての権限を付与する |
create | テーブルの作成を可能にする |
create user | ユーザの作成や削除などを可能にする |
delete | テーブル内のデータの削除を可能にする |
drop | テーブルの削除を可能にする |
select | テーブルからデータの取り出しを可能にする |
show databases | データベースの一覧表示を許可する |
update | データの書き換えを可能にする |
grant option | ユーザへの権限操作を可能にする |
ユーザの権限の確認する方法
ユーザの権限を確認するには、show grants を使用します。
MariaDB [(none)]> show grants for 'sample_user'@'localhost'; +------------------------------------------------------------------------------------------------------------------ --+ | Grants for sample_user@localhost | +------------------------------------------------------------------------------------------------------------------ --+ | GRANT USAGE ON *.* TO 'sample_user'@'localhost' IDENTIFIED BY PASSWORD '*********************************** ' | | GRANT ALL PRIVILEGES ON `sample_databese`.`sample_table` TO 'sample_user'@'localhost' | +------------------------------------------------------------------------------------------------------------------ --+ 2 rows in set (0.00 sec)
上のコードは、かなり形が崩れいていると思いますが(T_T)
とりあえず、権限の確認はできています。
ユーザの権限を削除する方法
権限を削除するには、revoke を使用します。
MariaDB [(none)]> revoke all on sample_database.sample_table from 'sample_user'@'localhost'; Query OK, 0 rows affected (0.00 sec)
権限を反映する方法
権限を反映するには、flush privileges を使用します。
MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec)
なお、権限を反映する必要があるときは、スキーマのテーブルを直接編集したときなので、grant で権限を付与したときは flush privileges を使用する必要はありません。
スポンサーリンク
関連記事