しいしせねっとわーく
[技術資料室] [フォーマット辞典]

SQL全般の入門

データベースって何っすか?

最初はSQLって何、データベースって何、JDBCって何するの? でした。
プログラムしか作ってなかったので、どういうものかなぁ・・・と思っていろいろ調べてみました。
最初に読んだのって何だったかな・・・。
で、だいたいデータベースはリレーショナルなんだということはわかってきましたが、SQLっていうのはもちろん知りませんから、JavaからJDBC使ってどうやって使えば何が出来るんだろ・・・って全然わかりませんでした。
OODBとかOORDBとかいうのも、最初に知ってしまったので、また余計にこんがらがってたんですが。
表が作れます。がデータベースです。
C言語の構造体と同じようなもの、というのはオブジェクト指向のときと同じようです。では何が違うんだ?です。
また、表計算のようなものとの違いもよく分かっていなかったりします。
プログラミング言語でもないんでしょ?でSQLのことを調べてみることになったんだっけかな?
データベースとプログラミング言語の間に、SQLという別の言語があることがわかります。
こいつは、forループとか、そういうことはできません。単に、C言語の関数にまとまっててもいいんじゃないの?と最初は思ってました。
とりあえず複雑です。C言語の中で、コマンドプロンプト相手のようなコマンドをまた別に書かないと行けないんですから。

必要なシステム

データベースをはじめるために、必要なものは、次のようなものです。

データベース・ソフトウェア
ユーザインターフェイスとなる部分
プログラミング言語 + データベース用のインターフェース(JavaのJDBC等)

まずは、データベース用のソフトウェアです。
○○データベースというような、もともとデータを含めてつくられているCD-ROMデータベースのようなものもありますが、あれとは違い、自分でデータを作っていくものを格納する、入れ物だけのソフトです。
汎用的なものは、クライアント/サーバ的なつくりをしていて、まぁ、フリーソフトから、高価な製品までいろいろあります。
PostgreSQLや、MySQL、IBMのDB2、名前だけは知っているかもしれないOracle などが、そのためのサーバソフトウェアです。

次は、ユーザーインターフェイスとなる部分、クライアントソフトです。
大抵のデータベースソフトウェアには、簡易クライアントのようなものも付いています。
また、サーバとクライアントに分かれていないようなソフトも、あります。
このクライアントソフトで、データベースにデータを追加したり、検索したりといったことが行えます。
ここで使うことになるのが、SQLという言語というか、簡易コマンドみたいなものです。

データベースのデータ構造

データは、テーブル(table)というものに格納されます。C言語等々でいうと、構造体やクラスの配列みたいなものですね。番号はついていませんが。
表計算の表のようでもあります。
テーブルをいくつか集めたものが、データベースなのです。

なにができる?

データベースの強いところは、検索です。複数のテーブル

いきなり飛んで
書式

テーブルを作る

create table テーブル名 (列名 型, ...);

キー付きにする

create table テーブル名 (列名 型, ... [primary key (列名,...)]);
(PostgreSQLでは alter でキー属性の付加はできないらしい?)

データを削除する

delete from テーブル名

テーブルを削除する

drop table テーブル名

alter table PostgreSQLではちょっとしか使えない

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

whereで使えるもの

列名 LIKE '%xxx'