はじめに
pythonとかPHP、javascriptなどとは一線を画す感じ。癖が強くてすぐに忘れそうなのでメモ。
最初は網羅的にメモしようと思ったがやはり面倒なので、覚えにくそうなところや大事だと思ったところ、あるいは検索してもあまりヒットしないもののみメモ。
環境は、面倒だったのでWindows10に直接インストール。VirtualBoxとか使っていない。とりたてて不便は感じない。
クエリ
データベースへrootで接続。
1 |
> mysql -u root -p |
コマンドを途中まで打ってEnterしてしまい、次の入力を促されたとき、キャンセルして最初からコマンドを打つには
1 |
-> \c |
現在選択しているユーザー、データベースを表示。
1 2 |
> select user(); > select database(); |
データベース一覧、テーブル一覧、ユーザー一覧を確認。
1 2 3 |
> show databases; > show tables; #データベースを選択後に > select user, host from mysql.user; |
ユーザー一覧だけ覚えるのが難しいのだが、show databases;としたときの一覧にmysqlが存在する。これは要するにmysqlというデータベースのなかのuserテーブルからuserとhostを引っ張ってきている。
localhostから接続してくるdbuserというユーザーをつくって、それにtodosというデータベースに関するすべての権限を与える。
1 2 |
create user dbuser@localhost identified by 'password'; grant all on todos.* to dbuser@localhost; |
ちなみに↑の2行をまとめて以下のようにできると解説している記事もみるが、現在はできないみたい。
1 |
grant all on todos.* to dbuser@localhost identified by 'password'; |
ユーザーとデータベースの削除
1 2 |
> drop database データベース名; > drop user dbuser@localhost; |
複数のクエリをqueries.sqlというファイルにまとめて一気に実行するにはパイプで流し込む。あるいはMySQLサーバーにログインした状態で実行するには
1 2 |
> source queries.sql; > \. queries.sql; #なぜか自分の環境ではエラーになるのでsourceを使う。winでは使えないということ? |
usersテーブルからscoreの上位3人のレコードをとってくる。「order by score desc」でscoreカラムについて降順にソートしつつ「limit 3」で上3つを抽出。
1 |
select * from users order by score desc limit 3; |
パスワードを設定する。
1 2 |
set password for ユーザ名@ホスト名 = '新しいパスワード'; set password for ユーザ名@ホスト名 = password('新しいパスワード'); #ググるとこれがでてくるがエラーになる。新しいバージョンでは使えなくなった?? |
まだまだlikeだのwhereだのgroup byだのhavingだの内部結合だの外部結合だのviewだのトリガーだのいろいろあるが、お勉強として理解するのは難しすぎてつらい。あとは実践しつつ、今回お勉強としてアタマに登録した索引を頼りにググって使いながら覚えていく感じか。
メモ
「sql server vss writer」という謎のサービスを自動起動しないようにした。このさきなんかまずいことが起こったら、とりあえずこのサービスを起動してみる。
ちょいググった感じではバックアップをとるためのサービス。WindowsマシンのMySQLは練習用なので、たぶんこのさき必要になることはなさそう。