MySQL4.0なんですけど
カラム名にマルチバイト文字はいいんでしょうか?
SQL文は発行できるんですけど、、正式なサポートはありますか?
ちなみに、文字コードはEUCです
942 :
938:04/03/16 11:32 ID:???
>>944 ハァ?
釣るなよ。
俺のはunique属性つけたらMULって出るし。
クライアントによって表示される文字が違うってか?
>>945 not null付けてないフィールドにuniqueインデックスを指定すると、desc tablename
で「Key」の欄がMULになるね。
not nullを付けてると、PRIかUNIになる。
948 :
947:04/03/16 13:42 ID:???
>>947は4.1.1-alphaで確認したので、他のバージョンでは違うかも。
>>947 ああ、NOT NULLか。それは忘れていた、スマソ
#そういやNOT NULLなんてしたことないなぁ・・
950 :
941:04/03/16 13:59 ID:???
あの、僕は
952 :
941:04/03/16 14:45 ID:???
ということは、正式にサポートしてないってことでいいんですね?
いいんですね?
>>952 カラム名にマルチバイト文字を使おうと思ったことがありません
ですから調べたことがありません。
よって知りません。
>ということは、正式にサポートしてないってことでいいんですね?
>
>いいんですね?
ご自分でご判断ください。
954 :
941:04/03/16 15:22 ID:???
使えね
955 :
NAME IS NULL:04/03/16 15:31 ID:q69hCdAh
RedHat7.3に、MySQL4.0.18をrpm -i mysql... でインストールしました。
で、どうすりゃいいの?
rpm -e mysql...
958 :
941:04/03/16 15:48 ID:???
>>957 使える
何でもいいのか、thx。日本語にできてよかった
>>941 マルチバイトのカラム名とかは、バッククォートで括りゃ
確かに動作してるように見えるし、大方支障はないと思うけど
使ってるファイルシステムにも絡む部分だったり、よっぽどのことがない限り
余計な問題を避けるために最初から使わない。他のDBMSからの移行でも
DBMS変更にまつわる修正作業に含めちまって、変更するのが普通だぞ。
本などの例で日本語で記述してるのは、判りやすく説明するためで
別に著者も実際に日本語で書くのを薦めたりしちゃいないよ。
961 :
941:04/03/16 21:50 ID:???
>>960 そうですか。
テスト成績を保存するDBを作ってるんですけど
DBのカラム名に教科名を日本語で入れたら楽なんだけどなぁ。。
今は、カラム名を英語で書いてます、Japanese,Math等。
そして、subjectと言うテーブルに
Japanese->国語
Math->数学
とやってるので、
2回テーブルからデータ取得しないといけないんで面倒なんですよね。。。
>>961 そういうときは迷わず日本語で書いた方がいい
多言語対応するつもりも無いだろうし
いまさら多バイト文字がダメンじゃ処理系なら
黒く塗りつぶせ
>>961 モデリングっていうか、カラムの構成が間違ってるような気がする…
>>963 ドウイ。
>>961 自分の分だけなのかクラス全員分なのか知らんけど、カラム名をsubjectにして
1人分に対して教科数分のレコードを作ったら?
教科マスタみたいなテーブルには
1->国語
2->数学
って入れとく。
965 :
941:04/03/16 23:20 ID:???
>>963 そうなんですか。。
test_2003_4テーブル(2003年度4回目、つまり学年末試験)
No | Japanese | Math | Digital | English1 | English2 |
---------------------------------------------
1 54 84 70 98 100
2 51 21 100 75 43
test_date_infoテーブル
TableName | JpName |
---------------------------
2003_3 2003年後期中間
2003_4 2003年学年末
test_subject_info
ColmnsName | JpName |
--------------------------
Japanese 国語
Math 数学
Digital デジタル回路
English1 英語T
English2 英語U
こういうような感じなんですが
>>965 本来的な話だと正規化したほうがいいよね
それならカラム名の問題も出てこないし。
でも、Excelから入れる程度のデータ量っぽいので
無理に正規化しないほうがいいのかも。
967 :
941:04/03/17 00:35 ID:???
>>966 正規化、とはどういう風にすればいいのでしょうか。
DBは何分無知なもので・・・
是非ご教授お願いします。
>>965 げぇ、ExcelからCSVでそのまま持ってきましたね?w
あくまで私見、として見てほしいんですけど
scoredata テーブル
No | StudentID | InfoID | SubjectID | scorel |
--------------------------------------
1 1010 20033 1 54
2 1010 20033 2 84
3 1010 20033 3 70
4 1010 20033 4 98
5 1010 20033 5 100
6 1011 20033 1 51
7 1011 20033 2 21
8 1011 20033 3 100
9 1011 20033 4 75
10 1011 20033 5 43
date_infoテーブル
ID | Name |
---------------------------
20033 2003年後期中間
20034 2003年学年末
subject_info テーブル
ID | Name |
---------------------------
1 国語
2 数学
3 デジタル回路
4 英語T
5 英語U
student_info テーブル
ID | Name |
---------------------------
1010 モナー
1011 ギコ
969 :
NAME IS NULL:04/03/17 00:36 ID:8f9bk80H
LinuxとPHPとMySqlをはじめたばかりですが、
<?php
$ID= mysql_connect("localhost","","");
if($ID != FALSE)
{
print "The connection to the server was made successfully.";
}
else
{
print "The connection to the server failed.";
}
mysql_close($ID);
?>
という文を書き実行すると、Call to undefined function, mysql_connect
とでてきます。mysql_connectという関数を認識していないみたいですが、
ウィンドウズの方で同じ文を書き実行すると正しく表示されます。
Linuxのほうのmysqldは起動しています。アパッチもきちんと動いてます。
Red Hat Linux 9をフルでインストールして、その後の設定は行って
いません。何が原因でmysql_connectという関数がよびだされないんでしょうか?
970 :
941:04/03/17 00:38 ID:???
>>968 >げぇ、ExcelからCSVでそのまま持ってきましたね?w
え?、これ手打ちですけど・・・
なんか、テーブル同士の関連付け?みたいな、そんな高度なもの全然知らなくて、テーブルは切って考えてました。。
InfoIDはそうすれば一つにまとめまればきれいですね。
始めたばかりのときに、問い合わせのWHEREもしらなかったので試験日ごとにテーブル分けてました。
>>968のつづき。
んで
select Name.student_info,Name.date_info,Name.subject_info,score from scoredata
left join student_info on StudentID=ID.student_info
left join date_info on Info_ID=ID.date_info
left join subject_info on SubjectID=ID.subject_info
where StudentID = 1010;
アドリブで手打ちしたので動作確認してない→動かなかったらスマソ
これやらないと、RDBを使ってる意味がない…
972 :
941:04/03/17 00:54 ID:???
left join〜ってのがそういうことですね。なるほど、勉強になります
973 :
971:04/03/17 01:08 ID:???
>>972 強引にMySQLの話題に戻すと、注意点は
・日本語入ってるカラムはバイナリ指定が吉。
・日本語入ってるカラムは主キーにしないw
ってところかなぁ。
ガイシュツだけど、2バイトコードは悪さする&多言語対応は考えられないので
>969
マニュアル嫁
975 :
941:04/03/17 01:10 ID:???
>>973 主キーにはしてませんね。ユニークキーにはしてますけど。
バイナリがいんですか、varcharでやってました・・・
976 :
971:04/03/17 01:39 ID:???
>>969 マニュアル嫁2
MySQLはインストール直後にrootのPass設定しなくちゃダメだわさ。
そんなことは、どんな解説本にも出ているわさ。
んで、最悪でもrootのアカウントとPassは入れとかなくちゃ動かないわさ。
(ふつうは、別アカウント作って制限かけるけどナー)
なんでWindowsでは動いてるの?
そっちのほうがおかしいぞ
977 :
NAME IS NULL:04/03/17 07:37 ID:AGUZPTGB
>>969 RedHat9は触ってないから推測だが、PHPが--with-mysqlオプション付きで
コンパイルされているのかな。phpinfo()の情報見てみれ。
ソフトエイジェンシーからLAMPパッケージを取ってきて入れ替えて見るのが
良いかと
>>976 あれっ、LinuxだとMySQLユーザのrootにpasswd必須だっけ?
取り合えずWindowsは、ビルトインユーザのrootにはpasswdは無くても動く。
# passwdを無しで使うシチュエーションもそんなにないが。
>>969 件のPHPの吐いてる Call to undefined functionは
>>977 の考えてる理由かな。
Windows版はMySQLエクステンションをPHP本体に静的に組み込み済み。
RHLの方はphp-mysql*.rpmパッケージにより、後で動的に組み込む必要があるが
それが上手くできてない。本当はフルインストで入る筈だけどね。
因みに動的組み込んだエクステンションは、phpinfoのconfigureのところでは表示されない。
RHL純正rpmのPHP本体だとマルチバイト機能も不足してるから、必要ならsrpmを使って
再ビルドして組み込まないと駄目。
貴方くらいだと素直にソフトエイジェンシーのrpmを取ってきた方が良いよ。
979 :
978:04/03/17 09:41 ID:???
980 :
NAME IS NULL:04/03/17 09:46 ID:vWVqCFS9
次スレ、まだぁ?
テンプレにGPLについての簡単解説載せてくれ
984 :
981:04/03/17 14:52 ID:???
梅
埋
産
(゚д゚)ウマ-