Help us understand the problem. What is going on with this article?

SQL テーブルの作成・編集編

データベース、テーブルの作成、編集

SQLはデータベースに指令を出して得たい情報などを取得できる言語なので、

まずはデータベースありきです。

データベース内では様々なテーブルがあり、それら各々のテーブルから、またテーブル同士を結合させるなどして情報を取得します。

データベース、テーブルを作ることもSQLではできるので、まずはそこからまとめていきます。

なお、コードの内容については今読んでる参考書のものを引用させて頂きます。

使用するRDBMSはSQL serverを想定しています。

データベースを作る

CREATE DATABASE データベース名;

下記ではshopというデータベースを作りました。

CREATE DATABASE shop; 

テーブルを作る

CREATE TABLE テーブル名
(カラム名 データ型   制約の設定);

下記、shohinというテーブルを作りました。

その下は、例えばshohin_idカラムで、データ型はCHAR型、さらにNOT NULL制約をつけています。制約については付けなくてもOK。付ければデータの整合性は高められます。反面、制約をかけるのでデータの使い勝手が悪くなるということも。

一番下のPRIMARY KEYは主キーです。今回はshohin_idを主キーにしました。

CREATE TABLE shohin
(shohin_id CHAR(4) NOT NULL,
shohin_mei VARCHAR(100) NOT NULL,
shohin_bunrui VARCHAR(32) NOT NULL,
hanbai_tanka INTEGER ,
shiire_tanka INTEGER ,
torokubi DATE ,
PRIMARY KEY (shohin_id)
);

テーブルの削除

DROP TABLE テーブル名;
DROP TABLE Shohin;

テーブルの更新

カラムの追加

ALTER TABLE テーブル名 ADD カラム名 データ型
ALTER TABLE Shohin ADD shihin_mei_kana VARCHAR(100);

カラムの削除

ALTER TABLE テーブル名 DROP COLUM カラム名

※追加の時は新規なのでデータ型も指定しますが、削除する時はすでにデータ型はわかっているので指定は不要。

ALTER TABLE Shohin DROP COLUMN shohin_mei_kana;

テーブルにデータを登録

先ほどまではカラムでしたが、1つのデータ、つまりレコードを追加します。

INSERT INTO テーブル名 VALUES(カラムに対応する値、カラムに対応する値・・・);

下記の()の中の値は、上記「テーブルを作る」で作ったshohinテーブルのカラム(shohin_id, shohin_mei, shohin_bunrui, hanbai_tanka, shiire_tanka, tourokubi)にそれぞれ対応します。順番はカラム通りに追加されるので、このように全てのカラムに値を入れる際、特に順番やカラム名を指定する必要はありません。

INSERT INTO Shohin VALUES('0001', 'Tシャツ', '衣服', 
1000, 500, '2009-09-20');

もし、一部のみデータを登録したい場合は、下記のように、どのカラムにどういう値を入れたいという指定をすることができます。逆に、これが基本です。もちろん、全部登録したい時にもカラム名も全部書いても同じですが、上記コードのように省略もできます。一部だけの時はちゃんと指定しないとどのカラムに入れたらいいのか分からないので登録できません。

INSERT INTO Shohin 
 (shohin_id, shohin_mei)
VALUES('0001', 'Tシャツ)
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away