Servlet/JSP 応用編03 データベース

データベースとは

データの集まりのことである。また、ただの集まりではなく、検索、更新が行いやすい形式に整理されている。このデータベースを構築、操作するソフトウェアがデータベース管理システム(DBMS)と呼ぶ
データベースの表をテーブルという。テーブルの横方向に並んだ格子群を行、縦方向に並んだ格子群を列という。図で表すと次のようになる。

番号 品名 価格
1 あああ 100
2 いいい 200
3 ううう 300

SQL

SQLとは、データベースを操作するためのプログラミング言語である。SQLを使えば、テーブルの作成、行の追加、検索などが可能となる。また、SQLで記述したひとまとまりの処理のことをSQL文と呼ぶ。このSQL文をデータベースに対し、実行し、結果を利用者に返す。

テーブルの作成、データの操作

データベースの中にテーブルを作成する。テーブル名は「product」とする。
テーブルを作成するには、create table文が必要となる。書き方は下記の通りである。

create table テーブル名(

  列名1 データ型 制約,

  列名2 データ型 制約,

  ・

  ・ 

  ・

);

列の定義はカンマで区切り、最後にはセミコロンをつける。データ型は格納するデータの種類を指定する。次に、制約とは、列やテーブルに格納するデータに対して、制限を設定するための機能。

データの追加には、insert文を使用する。使用例は以下である。

insert into テーブル名 values(列1の値, 列2の値,...);

テーブルの削除には、drop table文を使う。使用例は以下である。

drop table テーブル名;

では、実際にテーブルを作成し、データを追加していく。プログラムは以下である。

drop table product if exists;

create table product (
    id int auto_increment primary key
    name varchar(100not null
    price int not null
);

insert into product values(null'まぐろ'100);
insert into product values(null'サーモン'100);
insert into product values(null'えび'100);
insert into product values(null'いか'100);
insert into product values(null'えんがわ'100);
insert into product values(null'あなご'100);
insert into product values(null'たまご'100);
insert into product values(null'ほたて'100);
insert into product values(null'赤貝'100);
insert into product values(null'つぶ貝'100);
insert into product values(null'サラダ軍艦'150);
insert into product values(null'ねぎとろ軍艦'150);
insert into product values(null'ねぎとろ巻'150);
insert into product values(null'アボガド巻'150);
insert into product values(null'トロ'200);
insert into product values(null'いくら'200);
insert into product values(null'うに'200);

 1行目はdrop table文を使用している。意味は「productというテーブルがあるなら、削除する」であるが、存在していないので、意味はない。

次に、create table文を使用。列名は「id」「name」「price」で、型は「int」、「varchar(100)」、「int」である。「varchar(100)」は可変長100桁の文字列である。制約は、「auto_increment , primary key」、「not null」、「not null」である。

「auto_increment」は行を追加したときに、自動的に番号を付けてくれるというものである。「primary key」は主キー制約である。idが主キーになるということである。「not null」はこの列をnullにできないことを示している

次に、insert文を使い、データ追加していく。idにはnullを、nameには、適当な品を入れる。priceは価格を入れていく。

 

では、テーブルが作成され、データも追加できたので、このテーブルから検索を行う。検索には、select文を使う。使い方は以下である。

select 列名 from テーブル名 [where 条件]

今回は簡単にテーブル全てを検索してみる。

select * from product;

「*」は全てという意味である。「product」というテーブルから全て検索することである。結果は以下のとおりである。

f:id:kouki-matsuura:20200909185043p:plain

追加したデータがすべて表示されているのが分かる。

次は、条件をつけて検索をする。

select * from product where id >= 15;

これは、idが15以上の全てを検索するというもの。結果は以下となる。

f:id:kouki-matsuura:20200909185543p:plain

「ID」を見ると、しっかりと15以上のものが表示されている。

次は、データを更新する。

update テーブル名 set 列名=値 [where 条件];

では、nameが「いくら」のpriceを120にする。

update product set price=120 where name='いくら';

と、書けば、いくらの値段が120となる。

実際に動かしてみる。

f:id:kouki-matsuura:20200909190242p:plain

ちゃんと更新している。

最後に削除してみる。delete文を使う。

delete from テーブル名 [where 条件];

select文などと同じように使うことができる。idが10より小さいものと、idが14より大きいものを消す。

delete from product where id<10 or id>14;

これで、先ほどの条件に当てはまるデータを消すことができる。結果を見てみる。

f:id:kouki-matsuura:20200909191100p:plain

ちゃんと消されていることが分かる。

おわりに

今回は、データベースのテーブル作成とデータの操作を紹介した。基本的なものばかりだが、これでほとんどの操作が可能となる。次回からは、このデータベースとjavaを連携されていく。