アクセス講座
トップ > テーブル操作
まずテーブルを作成しデータを入れます。
テーブル名:T_ひらがな |
||
ID | 文字数 | データ |
01 | 1 | あ |
02 | 1 | い |
03 | 1 | う |
04 | 1 | え |
05 | 1 | お |
11 | 3 | みかん |
12 | 3 | りんご |
13 | 3 | ぶどう |
14 | 2 | かき |
下のクエリ式を入力し、実行。
select * from T_ひらがな |
[T_ひらがな]がテーブル名。 全フィールドを表示 |
select ID from T_ひらがな |
ID列のデータのみ表示。 |
テーブル名やフィールド名は別名をつけることが出来ます。
別名で表示したい場合や、テーブルを結合するときなどに使用します。
select データ as 文字 from T_ひらがな as T_平仮名 |
[T_ひらがな]がテーブル名。 それぞれ以下のように変換 [T_ひらがな] → [T_平仮名] [データ] → [文字] |
条件を加えるときは [ where ] を使う。
select * from T_ひらがな where データ = "あ" |
データが"あ"である行を表示する。 |
複数条件をつけるときは[ and ] や [ or ]を使用する。
select * from T_ひらがな where データ = "あ" or データ = "う" |
"あ"と"う"の行を表示する。 |
or 条件を簡単に書くには[ in ]を使用する。
select * from T_ひらがな where in データ = ("あ", "う" ) |
"あ"と"う"の行を表示する。 |
含む文字を表示するときは[ like ]を使用する。
SELECT * FROM T_ひらがな WHERE データ like "*ん*" |
"ん"を含むデータが表示される。 |
範囲を指定するときは[ between ]を使用する。
select * from T_ひらがな where between 文字数 = 1 and 文字数 = 3 |
文字数が1~3の間の行が表示される。 |
■並べ替え
並べ替えるときは [ order by ]を使う。
select * from T_ひらがな order by ID 『同文』 select * from T_ひらがな order by ID asc |
IDが昇順で表示される。 |
降順で表示するには[ desc ]を付け加える。
select * from T_ひらがな order by ID desc |
IDが降順で表示される。 |
2つのフィールドから順番をしていするには"カンマ"を挟んで入力する。
select * from T_ひらがな order by ID ,文字数 |
ID,文字数順に昇順で表示される。 |
■グループ化
グループ化するときは[ group by ]を使う。
select 文字数, count(*) as 件数 from T_ひらがな group by 文字数 |
文字数ごとに行件数を表示する。 count(*)は件数表示のための文 |
■グループ化後、条件表示
グループ化したテーブルに条件を加えるには[ having ]を使用する。
select count(*) as 件数 from T_ひらがな group by 文字数 having count(*) > 1 |
件数が1より大きいデータのみ表示する。 |
■データ格納
データの入力は[ insert into ]を使用する。
insert into T_ひらがな(ID , 文字数 , データ) values("20" , 4 , "コーヒー") 『同文』 insert into T_ひらがな values("20" , 4 , "コーヒー") |
[T_ひらがな]にデータを一行加える。 フィールド名はすべてデータが記入されている場合のみ省略できる。 テキスト型のデータには[ " ](ダブルコーテーション)で囲む。 |
■データ更新
データ更新には[ updete ~ set ]を使用する
update T_ひらがな set データ = "ちょこ" where ID = "11" |
[T_ひらがな]テーブルのIDが"11"であるデータを "ちょこ"に変更する。 ちなみに条件を指定しないと全ての行で変換が有効となる。 |
複数指定するには"カンマ"を挟んで入力する。
update T_ひらがな set データ = "まめ",文字数 = 2 where ID = "11" |
[T_ひらがな]テーブルのIDが"11"であるデータを "まめ"に、文字数を"2"に変更する。 |
■データ削除
データ削除するには[ delete table]を使用する。
delete table from T_ひらがな where ID = "20" 『同文』 delete from T_ひらがな where ID = "20" |
[T_ひらがな]テーブルのIDが"11"であるデータを 削除する。 ちなみに条件を指定しないと全ての行が削除される。 |
■テーブル結合(Join)
2つのテーブルを結合します。その為にもう一つテーブルを作成しましょう。
テーブル名:T_カタカナ |
||
ID | 文字数 | データ |
01 | 1 | ア |
02 | 1 | イ |
03 | 1 | ウ |
04 | 1 | エ |
06 | 1 | カ |
create table T_カタカナ(ID varchar(50) , 文字数 int , データ varchar(50)
) insert into T_カタカナ values("01",1,"ア") ・・・ |
結合するためには[ inner join ~ on ]を使用する。
select * from T_ひらがな inner join T_カタカナ on T_ひらがな.ID = T_カタカナ.ID 『同文』 select * from T_ひらがな as a inner join T_カタカナ as b on a.ID = b.ID 『同文』※注意:アクセスでのみ実行可能 select * from T_ひらがな as a , T_カタカナ as b where a.ID = b.ID |
inner join の後に加えたいテーブルを入力する。 on の後に結合要素となるフィールド名を入力する。 別名を使用し、入力することも可能。 両テーブルで一致するデータのみ表示される。 最後の文はアクセスで実行可能ですが、処理が遅いためお勧めしません。 |
表示するフィールドを選択するには"*"の代わりにフィールド名を入力する。
select a.ID , a.文字数 , a.データ as ひらがな , b.データ as カタカナ from T_ひらがな as a inner join T_カタカナ as b on a.ID = b.ID |
表示するフィールド名は、どのテーブルのフィールドなのかを書くこと。 書かないとアクセスに怒られます。 |
前のテーブルに後ろのテーブルを結合するには[ left join ]を使用する。
select * from T_ひらがな as a left join T_カタカナ as b on a.ID = b.ID |
[T_ひらがな]のテーブルを基盤に[T_カタカナ]が加わります。 一致しないデータには"Null"が入ります。 |
後ろのテーブルに前のテーブルを結合するには[ right join ]を使用する。
select * from T_ひらがな as a right join T_カタカナ as b on a.ID = b.ID |
[T_カタカナ]のテーブルを基盤に[T_ひらがな]が加わります。 一致しないデータには"Null"が入ります。 |
両テーブルの要素を全て結合するには[ outer join ]を使用する。
select * from T_ひらがな as a , T_カタカナ as b 『同文』※注意:アクセスでは使えません。 select * from T_ひらがな as a outer join T_カタカナ as b on a.ID = b.ID |
両テーブルが相互に結合されます。 前者はアクセス以外で実行できません。 一致しないデータには"Null"が入ります。 |
テーブル定義が同じもの同士を結合し、行を増やしたい場合に使用します。
[ union ]を使用します。
select * from T_ひらがな union select * from T_カタカナ 『同文』 select * from T_ひらがな union all select * from T_カタカナ |
select文を単にunionで繋ぐだけです。 |