ラベル MySQL の投稿を表示しています。 すべての投稿を表示
ラベル MySQL の投稿を表示しています。 すべての投稿を表示

2016年3月24日木曜日

副問合わせがUNIONされている場合のSELECT

副問い合わせが UNION 結合されている場合、そのまま SELECT するとエラー(#42000Every derived table must have its own alias)になる。
これを回避するためには、副問い合わせに別名を付与する必要がある。
sakila のデータを利用して検証する。
容易に UNION 結合を実現するために、同じテーブルに対して違う条件で抽出したものを結合する。
select * from country where country like 'N%' 
union 
select * from country where country like '%N'
この問合せに対して SELECT すると、エラーが発生する。
副問い合わせに別名を付与すると、問題なく抽出される。
select * from (
select * from country where country like 'N%' 
union 
select * from country where country like '%N') N

2014年12月2日火曜日

MySQL でユーザの権限を調べる

MySQL でユーザの権限を確認したい場合は、以下のコマンドを発行する。
SHOW GRANTS for [ユーザ名];

2014年9月26日金曜日

MySQL のサンプルデータベース Sakila をインストールする

テストなどのため、サンプルデータベースを構築するが、一から作るのはかなり大変な作業だ。 そこで MySQL が提供しているサンプルデータベース Sakila を導入する。

まず、MySQL Documentation: Other MySQL Documentation の Example Databases より sakila database (requires MySQL 5.0 or later) をダウンロードし、適当なフォルダに展開する。
mysql に接続し、source コマンドで先ほど展開した SQL ファイルを実行する。
mysql -u root -p
source (格納ディレクトリ)/sakila-schema.sql;
source (格納ディレクトリ)/sakila-data.sql;

2014年3月14日金曜日

Windows 8.1 における settings.py の編集上の注意点

Windows 8.1 において、localhost は ::1 といった IPV6 アドレスとなっている。
実際、ping localhost とコマンドプロンプトで入力した場合、ループバックアドレスとして、[::1] が表示されている。 

django から MySQL へ接続する場合、settings.py の DATABASES ディクショナリ内にある HOST 項目が空白もしくは localhost になっている場合、上記のループバックアドレスが利用され、_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)") といったエラーが発生する。

 これを回避するために、HOST 項目に 127.0.0.1 といった IPV4 形式のループバックアドレスを設定する。

2013年7月6日土曜日

MySQL でテーブル構造を複写する

単純にテーブル構造を複写するのであれば、以下のようなSQLを入力する。
このとき、抽出条件に全データが適合しないような条件を指定した場合、テーブル構造のみ複写される。
create [作成テーブル名] as select * from [複写元テーブル名] where [抽出条件];
上記SQLの場合、インデックスなどの情報が欠落する。
それらを合わせて複写する場合は、以下のSQLを使用する。
このとき必要に応じて、insert 文などを利用して、複写元のデータを移行する。
create [作成テーブル名] like [複写元テーブル名];