私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレMySQL 総合 Part17
mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ○
レスフィルター : (試験中)
>>850
なので、日本は例外的にPostgreSQLが大きなシェアを持っている。
けど、やっぱりLAMPってことでMySQLがかな~りもてはやされたからねい。
日経うんちゃら読んでわかったつもりになった担当者がMySQLを強制
というのは普通にあった。
なので、日本は例外的にPostgreSQLが大きなシェアを持っている。
けど、やっぱりLAMPってことでMySQLがかな~りもてはやされたからねい。
日経うんちゃら読んでわかったつもりになった担当者がMySQLを強制
というのは普通にあった。
PostgreSQLは品質が良いからバグが少ないのか
ユーザが少ないからバグが抽出しきれていないのかが
ちょっと分からない
ユーザが少ないからバグが抽出しきれていないのかが
ちょっと分からない
正規化するための主キーの設定と検索速度?、今後のメンテナンス?で
悩んでいるため質問させて下さい。
重複しないカラムとして「ショップ名」があります。
(東京店、大阪店、....)
ショップ名を中心に各店舗の人数とか売上とか細かい詳細があるため
複数のテーブルに分けて正規化します。
自分ではショップ名が重複しないから主キーにすれば良いかと考えますが
こういう場合でもあえてIDみたいな数値型(INT型?)のカラムを作って
それを主キーにした方が良いのでしょうか?
(auto_incrementにすればさらに楽だから?)
悩んでいるため質問させて下さい。
重複しないカラムとして「ショップ名」があります。
(東京店、大阪店、....)
ショップ名を中心に各店舗の人数とか売上とか細かい詳細があるため
複数のテーブルに分けて正規化します。
自分ではショップ名が重複しないから主キーにすれば良いかと考えますが
こういう場合でもあえてIDみたいな数値型(INT型?)のカラムを作って
それを主キーにした方が良いのでしょうか?
(auto_incrementにすればさらに楽だから?)
>>854
目糞鼻糞w
目糞鼻糞w
追記
MySQLで各テーブルを見る時に
ショップ名が入っていた方が分かり易いというのもあります。
ただ将来絶対にショップ名が変わらないという保証はないので
そういう意味でメンテナンス的に?数値にした方がいい??
MySQLで各テーブルを見る時に
ショップ名が入っていた方が分かり易いというのもあります。
ただ将来絶対にショップ名が変わらないという保証はないので
そういう意味でメンテナンス的に?数値にした方がいい??
主キー列を更新するっていうのが筋悪なので
名前が変わることのある店名のようなものは主キーにしないのが定石。
名前を主キーにすると外部キーをつけたときにメンテナンスしづらくなるし、
RDBMSによってはそもそも主キー列が更新できないものもある(TimesTenとか)
なので店舗IDを主キーにするのがふつうで、これをauto_incrementにするかどうか。
auto_increment列は売り上げとか日々データが増えるテーブルに対して
つけるものだと考えているので、私なら店舗IDはauto_incrementにしない。
名前が変わることのある店名のようなものは主キーにしないのが定石。
名前を主キーにすると外部キーをつけたときにメンテナンスしづらくなるし、
RDBMSによってはそもそも主キー列が更新できないものもある(TimesTenとか)
なので店舗IDを主キーにするのがふつうで、これをauto_incrementにするかどうか。
auto_increment列は売り上げとか日々データが増えるテーブルに対して
つけるものだと考えているので、私なら店舗IDはauto_incrementにしない。
mysqlについて質問です
よろしくお願いします
table_a
|orders_id|orders_date|
| 1 |20100101 |
| 2 |20100101 |
| 3 |20100101 |
table_b
|orders_id|shop_kind|
| 1 | 0 |
| 3 | 1 |
table_bのshop_kindが1以外のものと、table_bにorders_idは無いがtable_aにorders_idが存在するレコードを抽出したいのですが、クエリをどう記述すればいいかわかりません
以下のSQLのXXXXXXXに何か入れればできそうなのですが、どうすればいいですか?
select ta.orders_id from table_a ta left join table_b tb on (ta.orders_id = tb.orders_id) where (tb.shop_kind !='1' or XXXXXXX);
結果はorders_idが1と3のものが取れればいいです
よろしくお願いします
table_a
|orders_id|orders_date|
| 1 |20100101 |
| 2 |20100101 |
| 3 |20100101 |
table_b
|orders_id|shop_kind|
| 1 | 0 |
| 3 | 1 |
table_bのshop_kindが1以外のものと、table_bにorders_idは無いがtable_aにorders_idが存在するレコードを抽出したいのですが、クエリをどう記述すればいいかわかりません
以下のSQLのXXXXXXXに何か入れればできそうなのですが、どうすればいいですか?
select ta.orders_id from table_a ta left join table_b tb on (ta.orders_id = tb.orders_id) where (tb.shop_kind !='1' or XXXXXXX);
結果はorders_idが1と3のものが取れればいいです
MySQLで、INSERTしようとすると
「the table 'table_name' is full ERROR 1114」
と出て登録できなくなりました。
MySQLのバージョンが5.1で、ENGINEは、NDBCLUSTERです。
tmp_table_sizeとmax_heap_table_sizeをデフォルトの16Mから
200Mへ変更してみても同じエラーになります。
パッと見よく分からない質問かもしれませんが、
こんなことが原因の可能性があると思う方がいましたら
教えてください。お願いします。
「the table 'table_name' is full ERROR 1114」
と出て登録できなくなりました。
MySQLのバージョンが5.1で、ENGINEは、NDBCLUSTERです。
tmp_table_sizeとmax_heap_table_sizeをデフォルトの16Mから
200Mへ変更してみても同じエラーになります。
パッと見よく分からない質問かもしれませんが、
こんなことが原因の可能性があると思う方がいましたら
教えてください。お願いします。
MySQL_Cluster や NDBCLUSTER をわからずに言うけど
保存用ディレクトリのあるパーティションが
いっぱいとかじゃないの?
メモリテーブルならどこのサイズなんだろうかな...
保存用ディレクトリのあるパーティションが
いっぱいとかじゃないの?
メモリテーブルならどこのサイズなんだろうかな...
tmp_table_sizeとmax_heap_table_sizeはMEMORYストレージエンジンの設定だから
NDBとは関係ないパラメータ、のはず
Sun Micro.のときはよく宣伝してたけど
正直MySQL Cluster使ってる人は超少ないと思う
NDBとは関係ないパラメータ、のはず
Sun Micro.のときはよく宣伝してたけど
正直MySQL Cluster使ってる人は超少ないと思う
username、pointというカラムがあるテーブルがあるとして、
ランキングの順位をつけて出力するSQLはどのようにかいたら
うまくいくでしょうか。
3位が4名いても次は4位となるランキングとなってます。
現在のところは select username,point from table order by point asc;
でプログラム側で処理しておりますが、全てSQL側で処理ができれば
便利だと思い、質問させていただきました。
よろしくお願いいたします。
ランキングの順位をつけて出力するSQLはどのようにかいたら
うまくいくでしょうか。
3位が4名いても次は4位となるランキングとなってます。
現在のところは select username,point from table order by point asc;
でプログラム側で処理しておりますが、全てSQL側で処理ができれば
便利だと思い、質問させていただきました。
よろしくお願いいたします。
ビューは普通にSELECT文を発行した結果返ってくる結果を
1つのテーブルに見せかけるだけのもの
当然、データは最新のものになるよ
1つのテーブルに見せかけるだけのもの
当然、データは最新のものになるよ
質問させてください。
table_main
+---------+-----------+
| main_id | main_name |
+---------+-----------+
| 1 | NAME1 |
| 2 | NAME2 |
| 3 | NAME3 |
+---------+-----------+
table_sub
+---------+----------+
| main_id | have_num |
+---------+----------+
| 1 | 10 |
| 2 | 10 |
| 2 | 20 |
| 3 | 10 |
| 4 | 20 |
+---------+----------+
このようなテーブルがあったとします。
この中から、たとえば「have_numを 10 と 20 両方もつ main_id の main_nameを取得する」
という SQL 文はどのように書けばよいのでしょうか。
サブクエリなど勉強中でいまいち方法が思いつきません。
お詳しいかた教えていただけましたら幸いです。
バージョンは5です。
table_main
+---------+-----------+
| main_id | main_name |
+---------+-----------+
| 1 | NAME1 |
| 2 | NAME2 |
| 3 | NAME3 |
+---------+-----------+
table_sub
+---------+----------+
| main_id | have_num |
+---------+----------+
| 1 | 10 |
| 2 | 10 |
| 2 | 20 |
| 3 | 10 |
| 4 | 20 |
+---------+----------+
このようなテーブルがあったとします。
この中から、たとえば「have_numを 10 と 20 両方もつ main_id の main_nameを取得する」
という SQL 文はどのように書けばよいのでしょうか。
サブクエリなど勉強中でいまいち方法が思いつきません。
お詳しいかた教えていただけましたら幸いです。
バージョンは5です。
試してはいない。
SELECT tm.main_name
FROM
table_main tm,
table_sub tsa,
table_sub tsb
WHERE
tsa.have_num = 10
AND tsb.have_num = 20
AND tsa.main_id = tsb.main_id
AND tsa.main_id = tm.main_id
SELECT tm.main_name
FROM
table_main tm,
table_sub tsa,
table_sub tsb
WHERE
tsa.have_num = 10
AND tsb.have_num = 20
AND tsa.main_id = tsb.main_id
AND tsa.main_id = tm.main_id
>>878
ありがとうございます!
have_numをもつ条件をさらに増やすとなると、
同様に SELECT する同一テーブルがどんどん増えてしまうのですが、
効率をよくするよい方法はありませんよね…?
ありがとうございます!
have_numをもつ条件をさらに増やすとなると、
同様に SELECT する同一テーブルがどんどん増えてしまうのですが、
効率をよくするよい方法はありませんよね…?
もしかしたら、この辺でどうだろ?
SQL質疑応答スレ 9問目
http://pc11.2ch.net/test/read.cgi/db/1252492296/6
6 :NAME IS NULL :2009/09/09(水) 19:37:35 ID:???
よくある質問3
(問)
ID HOGE
01 A
01 B
01 C
02 A
03 B
HOGEをAもBもCも持っている、ID:01だけ取り出すにはどうすればよかですか
(答1)
SELECT id
FROM TableName
WHERE hoge in ('A','B','C')
GROUP BY id
HAVING count(DISTINCT hoge) = 3
;
(答2)
select *
from TableName T1
where not exists (select *
from (values 'A', 'B', 'C') T2 (HOGE)
where not exists (select *
from TableName T3
where T1.ID = T3.ID
and T2.HOGE = T3.HOGE
)
)
;
※valuesの部分(Table Value Constructor)はDBMSによって文法がかなり違うので注意
SQL質疑応答スレ 9問目
http://pc11.2ch.net/test/read.cgi/db/1252492296/6
6 :NAME IS NULL :2009/09/09(水) 19:37:35 ID:???
よくある質問3
(問)
ID HOGE
01 A
01 B
01 C
02 A
03 B
HOGEをAもBもCも持っている、ID:01だけ取り出すにはどうすればよかですか
(答1)
SELECT id
FROM TableName
WHERE hoge in ('A','B','C')
GROUP BY id
HAVING count(DISTINCT hoge) = 3
;
(答2)
select *
from TableName T1
where not exists (select *
from (values 'A', 'B', 'C') T2 (HOGE)
where not exists (select *
from TableName T3
where T1.ID = T3.ID
and T2.HOGE = T3.HOGE
)
)
;
※valuesの部分(Table Value Constructor)はDBMSによって文法がかなり違うので注意
>>880
ありがとうございます!
このような方法があるのですね。
大変勉強になりました。
さらに、これを発展させて、
table_main
+---------+-----------+
| main_id | main_name |
+---------+-----------+
| 1 | NAME1 |
| 2 | NAME2 |
| 3 | NAME3 |
+---------+-----------+
table_sub
+---------+---------+
| main_id | item_id |
+---------+---------+
| 1 | 1 |
| 2 | 1 |
| 2 | 2 |
| 3 | 1 |
| 4 | 2 |
+---------+---------+
table_item
+---------+-----------+
| item_id | item_name |
+---------+ ----------+
| 1 | アイテム1 |
| 2 | アイテム2 |
+---------+-----------+
「アイテム1 と アイテム2 の両方もつ main_id の main_nameを取得する」
という風に複雑になると、どのようにやればいいのでしょうか。
まず item_name に対応した item_id を取得し、
それを両方もつものを >>880 の方法で調べる……
という風な方法は思いつきましたが、
1つの SQL 文で記述する方法がわかりませんでした。
お詳しい方教えていただけましたら助かります。
ありがとうございます!
このような方法があるのですね。
大変勉強になりました。
さらに、これを発展させて、
table_main
+---------+-----------+
| main_id | main_name |
+---------+-----------+
| 1 | NAME1 |
| 2 | NAME2 |
| 3 | NAME3 |
+---------+-----------+
table_sub
+---------+---------+
| main_id | item_id |
+---------+---------+
| 1 | 1 |
| 2 | 1 |
| 2 | 2 |
| 3 | 1 |
| 4 | 2 |
+---------+---------+
table_item
+---------+-----------+
| item_id | item_name |
+---------+ ----------+
| 1 | アイテム1 |
| 2 | アイテム2 |
+---------+-----------+
「アイテム1 と アイテム2 の両方もつ main_id の main_nameを取得する」
という風に複雑になると、どのようにやればいいのでしょうか。
まず item_name に対応した item_id を取得し、
それを両方もつものを >>880 の方法で調べる……
という風な方法は思いつきましたが、
1つの SQL 文で記述する方法がわかりませんでした。
お詳しい方教えていただけましたら助かります。
インポートについての質問です。
最新MySql Windows番にて、csvをインポートしようとすると
ERROR 1292 (22007): Incorrect datetime value: '2010/05/20 00:00:00
2' for column 'Date' at row 1
と出るのですが、日付データの最後についてる 2 の意味が分かりません。
使用したSQL文は以下のとおりです。
LOAD DATA INFILE "FileName.csv"
INTO TABLE TableName
FIELDS TERMINATED BY "," ENCLOSED BY '"'
LINES TERMINATED BY "/r/n";
Dateはテーブルの最後のフィールドで、他のフィールドのエラーは解決しましたが
このエラーだけ解決できません。エディタでcsvを開いたら"でくくられてないのに
取り込んでみたら"でくくられていたりと、いろいろと躓きまくっています・・・
どうか助言をお願い致します。
最新MySql Windows番にて、csvをインポートしようとすると
ERROR 1292 (22007): Incorrect datetime value: '2010/05/20 00:00:00
2' for column 'Date' at row 1
と出るのですが、日付データの最後についてる 2 の意味が分かりません。
使用したSQL文は以下のとおりです。
LOAD DATA INFILE "FileName.csv"
INTO TABLE TableName
FIELDS TERMINATED BY "," ENCLOSED BY '"'
LINES TERMINATED BY "/r/n";
Dateはテーブルの最後のフィールドで、他のフィールドのエラーは解決しましたが
このエラーだけ解決できません。エディタでcsvを開いたら"でくくられてないのに
取り込んでみたら"でくくられていたりと、いろいろと躓きまくっています・・・
どうか助言をお願い致します。
自己レスです解決しました。
LINES TERMINATED BY "/r/n"; を
LINES TERMINATED BY "\r\n";
に書き換えたところうまくゆきました。
スレ汚し失礼しました。
LINES TERMINATED BY "/r/n"; を
LINES TERMINATED BY "\r\n";
に書き換えたところうまくゆきました。
スレ汚し失礼しました。
パスワードを知ればよろし。
どうしても分からないなら、mysql.userテーブルの該当の ユーザ@マシンのパスワードを消してしまう。
(これはrootとかのパスワードが分からないと出来ないだろうけど)
どうしても分からないなら、mysql.userテーブルの該当の ユーザ@マシンのパスワードを消してしまう。
(これはrootとかのパスワードが分からないと出来ないだろうけど)
なるほど ありがとうございます
たしかにOracleだと他のポートも必要でしたよね
たしかにOracleだと他のポートも必要でしたよね
コマンドプロンプトでSelect文を実行すると
件数が多くなると全体を見れ無くなるんですが
txtファイルに出力するしかないですか?
件数が多くなると全体を見れ無くなるんですが
txtファイルに出力するしかないですか?
とりあえず、コマンドプロンプトのプロパティを開いて、レイアウトタブを選択して、
その中の画面バッファのサイズの高さを増やしてみよう。
その中の画面バッファのサイズの高さを増やしてみよう。
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
みんなの評価 : ○類似してるかもしれないスレッド
- MySQL 総合 Part12 (1001) - [94%] - 2008/1/30 17:34 ○
- MySQL 総合 Part13 (996) - [94%] - 2008/6/10 21:02 ☆
- MySQL 総合 Part14 (1001) - [94%] - 2008/11/23 10:17 ☆
- MySQL 総合 Part15 (1001) - [94%] - 2009/4/20 12:15 ☆
- MySQL 総合 Part18 (986) - [94%] - 2011/1/17 15:46
- MySQL 総合 Part19 (982) - [94%] - 2011/6/9 2:33
- MySQL 総合 Part26 (860) - [89%] - 2023/2/2 9:30
- MySQL 総合 Part20 (995) - [89%] - 2011/10/17 4:48
- MySQL 総合 Part21 (1001) - [89%] - 2011/12/25 22:16
- MySQL 総合 Part22 (1001) - [89%] - 2012/7/10 16:45
- MySQL 総合 Part23 (992) - [89%] - 2013/8/11 17:00
- MySQL 総合 Part24 (1010) - [89%] - 2015/2/14 4:46
- MySQL 総合 Part25 (947) - [89%] - 2017/6/18 6:30
- MySQL vs PostgreSQL Part2 (941) - [31%] - 2022/5/26 1:30 ○
トップメニューへ / →のくす牧場書庫について