2009/04/03

データ型<よく使うものだけ~>

「フィールド」…テーブルを構成する項目のデータ
「カラム」…実際に入力されたレコードを構成する項目のデータ

データベース名やテーブル名、カラム名には日本語を使わない!

■数値型■
INT正負の整数(-2147483648~2147483647)
DOUBLE小数点以下(「○E+△(○×10の△乗)」)
■文字列型■
VARCHAR(最大文字数)文字データ(255文字まで)
TEXT(最大文字数)文字データ(65535文字まで)
■日付・時刻型■
DATETIME日付と時刻 YYYY-MM-DD HH:MM:SS
DATE日付のみ YYYY-MM-DD

MySQLのコマンドいろいろ【テーブル操作編】

■テーブルの作成
create table テーブル名 (カラム名1 データ型1, カラム名2 データ型2 ...);
主キーを設定してテーブルを作成する場合、
create table テーブル名 (カラム名 データ型 primary key...);
主キーはレコードを厳密に特定できるように
・値の重複がない
・何のデータも入力しない(null)ことはできない
主キーの代わりに、一意キーunique)を指定することもできる
一意キーは、重複はできないがnullを入力することは可能
自動的に連続番号が入力されるauto_incrementは、主キーに適する
例:create table renzoku (a INT AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10));

■すべてのテーブルの表示
show tables;
文字セットを指定してテーブルを作る場合、
(Shift_JISを指定してテーブルを作成)
create table テーブル名 (カラム名1 データ型1, カラム名2 データ型2 ...) charset=sjis;

■他のデータベースへのアクセス
select * from データベース名.テーブル名;

■テーブルのカラム構造の確認
desc テーブル名;
[見方]
null…何も入力しなくても許す!
default…何も入らなければこの値
Field…カラム名
Type…データ型

■データの挿入
insert into テーブル名 values(データ1,データ2...);
設定したカラムの順に、データを「,」で区切って記述
※文字列データは「"(ダブルクォーテーション)」「'(シングルクォーテーション)」で囲む

■カラム名を指定してデータを挿入する
insert into テーブル名 (カラム1,カラム2...) values(データ1,データ2...);

■一度にデータを入力する
insert into テーブル名 (カラム1,カラム2...) values(データ1,データ2...),(データ1,データ2...),(データ1,データ2...);

■データの表示
select カラム1,カラム2... from テーブル名;
全部のカラムの場合、
select * from テーブル名;

MySQLのコマンドいろいろ【データベース操作編】

■MySQLモニタの起動
mysql -u ユーザー名 -pパスワード
(※-pの後には半角スペースを入れない)
-----
mysql -u ユーザー名 -p
Enter password:
の方が、パスワードを盗み見られてしまうことがにため、より安全

■MySQLモニタの終了
exit(あるいは 
quit)

■新規ユーザーの作成
create user 新規ユーザー名 identified by '新規パスワード';

■ユーザー権限を設定
grant 与える権限 on データベース名.テーブル名 to ユーザー名;
[与える権限について]
・全権限 「ALL」
・指定する場合 「例)SELECT,UPDATE」
・全データベースの全テーブル 「*.*」


■ユーザーの削除
drop user ユーザー名;

データベースの作成
create database データベース名;

■データベースの一覧を表示
show databases;

■使うデータベースを指定する
use データベース名
(※SQL文ではないので最後に「;」は不要)
¥U データベース名

■現在使用しているデータベースの表示
select database();
データベースをあらかじめ選択して、MySQLモニタを起動するには、
mysql データベース名 -u root -p
とすればよい

Shift_JISでやっていくワケ【5C問題】

日本語を利用するため!
…なんだけど、それ以外の文字コードでは日本語に対応するターミナルソフト(例:コマンドプロンプト)が必要だったり、またShift_JISはWindowsでは初心者でも扱いやすいものだそう。

ただし、文字コードの中に「5C」が含まれてる文字では、エスケープ処理されて「¥」がついたり、文字化けすることがある。
代表的なものでは、 「十、申、貼、能、表、予、ソ」 など。


設定の変更はc:\xampp\mysql\bin内の「my.cnf」というファイルをメモ帳で開いて以下のように変更する。
(30行目付近)
[mysqld]
...
old-passwords
character-set-server = sjis
#collation-server = latin1_general_ci
skip-character-set-client-handshake


とりあえずはShift_JISで行きます。

2009/04/02

基礎からのMySQL


ようやくRuby①の本が終わりました…。(時間かかりすぎ)

そして今日からスタートです!!
データベースは初めてだけど、前にRuby on RailsやPHPをやったときにデータベースをちょこっと触っていたのもあって、今のところ順調です。このまま行けますように・・・☆

今回はxamppを使ってやりまーす。

2009/03/25

オブジェクト指向プログラミング

Ruby以前のお勉強 「オブジェクト指向プログラミング」について

そもそもプログラミング方法は2つある。
・手続き型プログラミング
  何らかのシナリオにしたがって順番に処理を記述するプログラミング方法
・オブジェクト指向プログラミング
  データを中心にモジュール化してプログラムを構成するプログラミング方法
  オブジェクト指向プログラミングで、その処理対象となるデータを「オブジェクト」という。

Rubyはオブジェクト指向プログラミング言語である。

2009/03/11

IE6に負ける。。。

どのブラウザでも同じように表示させるのは、とても難しい。
いまさらだけど、痛感している。

結局「中央可変の3段組みレイアウト」は、方法その3(テーブル)を使うことになった。
やっぱりテーブルは強い!崩れない!
なんとなく避けてきたけど、すべてのブラウザに対応できるコーディングを考えたときテーブルは必要な技術だと思った。

でもどうしてほかの方法ではできないのだろう・・・
いつか分かるといいなぁ。

Ruby①はじめてのプログラミング

これはいい!!

私はプログラム素人ですが、この本を読んで、今までいまいち曇り空だった部分がいっぱい解消できたのだ^-^
パソコンのいろはからハードウェアの構造、プログラムとは?ってとこから細かく解説してくれる。
特に文字コードとかコンソールの使い方などは、私にはすごくためになった。
最初からこの本に出会っていれば、もっと理解できたのになぁ~

どうやら3番まであるらしい。
今度こそ挫折せずにRailsを頑張りたい☆

2009/03/10

IEでボーダーが表示されない!?

例の案件をやっていて、ふと気付くとIEだけボーダーが表示されていない!!
しかもIE6もIE7も両方とも。。。
他のブラウザではバッチリなのに、全くやってくれます=3 フゥ。

いろいろ調べた結果、これで解消されました。

★症状★
IEでfloat内のコンテンツ、もしくはfloatに接する部分に指定したborderが一部表示されなくなる
★対処法★
borderを指定した要素にline-height:1emを指定する

なぜか今回の場合、line-height:1.2emとかにしてもダメだった。
このバグ、Peekabooっていうらしい。
勉強になります。

中央可変の3段組みレイアウト

仕事つながりで、CSSコーディングの依頼をもらった。
久々に気合いが入る。

が、しかし!今回は予想以上に険しい感じ。
相変わらずIE6に悩まされます…
というわけで、今回のメイン「中央可変の3段組みレイアウト」についての覚書き。

■方法その1■
ネガティブマージンで作る

<div id="wrapper">
<div id="container">
<div id="main">メインコンテンツ</div>
</div>
<div id="left">左コンテンツ</div>
<div id="right">右コンテンツ</div>
</div>


#container {
float:left;
width:100%;
}
#main {
margin-left:180px;
margin-right:230px;
background:yellow;
}
#left {
width:180px;
margin-left:-100%;
float:left;
background:red;
}
#right {
width:230px;
margin:-230px;
float:left;
background:blue;
}

■方法その2■
左カラムはfloat:left、右カラムはfloat:rightを指定


<div id="left"左コンテンツ></div>
<div id="right"右コンテンツ></div>
<div id="main"メインコンテンツ></div>

#left {
float:left;
width:180px;
background:red;
}
#right {
float:right;
widht:230px;
background:blue;
}
#main {
margin-left:180px;
margin-right:230px;
background:yellow;
}

■方法その3■
テーブル(width="100")を使って、真ん中のカラムはwidth:100%を設定

<table>
<tr>
<td id="left" valign="top">左コンテンツ</td>
<td id="main" valign="top">メインコンテンツ</td>
<td id="right" valign="top">右コンテンツ</td>
</tr>
</table>


table {
width:100%;
background:green;
border-collapse:collapse;
}
td#left {
width:180px;
background:red;
}
td#main {
background:yellow;
}
td#right {
width:230px;
background:blue;
}

いろいろあるんだなぁ。
今回は1の方法を採用してみまーす!